Socket Verbindung über Proxy Server



  • Hallo,

    ich finde nirgends im Internet eine Info oder Anleitung wie man eine TCP Socket Verbindung über einen Proxy Server machen kann.

    Ich will z.B. eine Verbindung mit einem FTP Server oder POP3 Server machen, aber das über einen Proxy Server um meine Anonymität zu gewährleisten. Der Proxy Server agiert in diesem Falle als Anon-Proxy Server.

    Hat einer ne Ahnung wie man sowas generell macht? Ich würde gerne die Technik, die man dabei anwendet, verstehen.

    Thx



  • Du musst einfach eine Socketverbindung zum Proxyserver aufbauen statt zum Server. Dem Proxy übergibst du dann den Anfragestring. Bei einer HTTP-Anfrage würdest du dem Proxyserver nach Aufbau der Socketverbindung zu diesem, beispielsweise folgende Anfrage geben:

    GET http://www.google.de/ HTTP/1.0\r\n
    Host: www.google.de\r\n
    User-Agent: agent-name\r\n
    \r\n
    


  • Ok, das ist jetzt aber nur für HTTP.

    Wie ist es denn mit der Verbindung zu einem FTP oder POP3 oder ähnlichem Server.

    Du hast mir hier direkt HTTP Direktiven hingeschrieben, die der Proxy Server sofort auswerten kann. Wie ist es aber mit einer normalen TCP Socket Verbindung. Das ist ja gerade das wichtige.

    Thx



  • Wie gesagt, die TCP-Verbindung wird einzig und allein zum Proxy aufgebaut. Also Host und Port entsprechend festlegen und dann deine Nachrichten an diesen schicken, die die Befehle enthalten.
    Also statt einer HTTP-Anfrage musste ne FTP-Anfrage nehmen (da ich sowas nur mit HTTP gemacht hatte, war das Beispiel auch mit einer HTTP-Anfrage, und an der Stelle benutzt du eine FTP-Anfrage stattdessen).

    Ich habe extra kein Quellcode gepostet, weil ich ne Verbindung zum Proxy nur über C++ gemacht habe mit dem Socket-Interface. Aber das Verbinden zum Proxyserver funktioniert ganz genauso wie zu jedem anderen Server auch, nur statt direkt zu einem Server zu connecten, geht die Connection zum Proxyserver.



  • Host und Port festlegen?

    z.B. gibt es einen Proxy Server 10.10.10.10 der auf Port 1080 lauscht.

    Ich mach ne TCP Verbindung zu diesem Server, als IP und PORT gebe ich beide obige an. Jetzt bin ich sofort mit dem Proxy Server verbunden.

    Und jetzt will ich mittels dieser Connection eine Verbindung zu einem FTP Server aufbauen.

    Wie geht das?

    Der ProxyServer parst meine Anfragen und weiss vom empfangenen Text was ich machen will? Nee, oder?

    Anstatt "GET / HTTP/1.0\r\n...." zu schicken, schicke ich etwas wie "FTP ftp.domain.de" oder wie? das wäre ja lustig.

    Aber der FTP Server, z.B. läuft auf 90.90.90.90 Port 21. Was schicke ich jetzt dem Proxy Server damit er mir eine Verbindnug zum 90.90.90.90 Port 21 aufbaut?

    Damit habe ich mich gestern die ganze Zeit in C# beschäftigt, aber ich habs net hinbekommen.



  • So ist es aber und wenn der Proxy FTP-fähig ist, sollte das auch funktionieren. Kenne mich mit FTP leider nicht so aus, um dir sagen zu können was du da abschicken musst, aber das ist eigentlich die gleiche Anfrage wie die, die du direkt an den Server senden würdest. Wenn es sich beim Port des Servers nicht um den Standardport gehts eigentlich ja so das man der URL per doppelpunkt den Port übergibt, also bspw. "google.de:8080".

    Also ich habe eben auch nochmal nachgesehen und ich bau einfach nur die Verbindung zum Proxy auf und sende diesem die HTTP-GET-Anfrage.

    Kannst ja auch nochmal gucken was hier steht, das ist die Aufgabe die ich bearbeitet hatte. Da steht es ganz unten:
    http://www.fh-wedel.de/~bek/c/praktika/seminar-iaws0506.html



  • Ok, danke.

    Dann muss ich einfach jetzt ne Liste von Proxy Servern finden, die mir FTP Verbindungen erlauben. Bzw. eine Liste mit möglichen Anfragen.

    du kennst nicht zufällig eine? 🙂

    Die, die ich bisher gefunden habe, sind nur normale Listen mit IP und PORT der Proxys. Mal sehen.

    Thx nochmal.


Anmelden zum Antworten