Entwickler-Ecke

Internet / Netzwerk - Frage zu Indy-Kompos TunnelMaster/Slave


Hellcode - Fr 17.02.06 16:15
Titel: Frage zu Indy-Kompos TunnelMaster/Slave
Ich habe mir die Indy-Demos Version 9 heruntergeladen. Da ist eins welches mich sehr intessiert. Das über die TunnelMaster/Slave. Kann mir jemand vielleicht erklären was folgendes Code-Stück bedeutet:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
  Master := TIdTunnelMaster.Create(self);
  Master.MappedHost := '127.0.0.1';
  Master.MappedPort := 80;
  Master.LockDestinationHost := True;
  Master.LockDestinationPort := True;
  Master.DefaultPort := 9000;
  Master.Bindings.Add;

  Slave := TIdTunnelSlave.Create(self);
  Slave.MasterHost := '127.0.0.1';
  Slave.MasterPort := 9000;
  Slave.Socks4 := False;
  Slave.DefaultPort := 8080;
  Slave.Bindings.Add;


Danach werden Master und Slave nurnoch durch einen Klick auf einen Start-Button aktiviert. Viel mehr passiert nicht..

Ich würde gerne eine Anwendung schreiben, um Programme, die keinen Proxy unterstützen, doch mit einem solchen zu nutzen. Gehe ich richtig in der Annahme das das besagte Indy-Demo mich meinem Ziel ein Stück näherbringt?

Also ich habe TCPView während des Demos laufen lassen und folgendes festgestellt: Port 8080 wird aufgemacht, wenn man sich damit verbindet stürzt die Anwendung allerdings ab. Port 9000 wird ebenfalls geöffnet, und gleichzeitig wird eine Verbindung von einem beliebigen Port nach dorthin aufgebaut. Mehr passiert nicht. Meine Frage wie gesagt: Was hat es mit dem besagten Code-Stück auf sich und wie funktioniert es. Ich habe keine Hilfe zu dem Demo finden können..Vielen Dank im voraus!

Die Demo gibts überings hier: http://www.indyproject.org/Sockets/Download/index.en.iwp


digi_c - Fr 17.02.06 17:17

Also damit können Portzugriffe getunnelt werden, auch über PC Grenzen hinweg.
Hier würde ein Zugriff auf Port 80(normalerweise ja HTTP Server) auf Port 8080(normalerweise HTTP Proxy) umgeleitet werden.

Das was du bauen willst ist eine Art Socks Proxy. Einige Anwendungs-Programme unterstützen das von sich aus aber es gibt auch schon solche Programme wie du es bauen willst wie http2Socks glaube ich hieß das.

Aber Firmenfirewalls erkennen meist, was da für Datenverkehr fließt und blockieren den. Es sei den du packst alle in HTTP Anfragen und hast einen externen Rechner der das auseinanderfriemelt und wieder in normale Socks Sequenzen umsetzt. So oder so, du hättest z.B. bei P2P sehr schlechte Karten.


Hellcode - Fr 17.02.06 17:30

Vielen Dank soweit? Und wie könnte ich diese Daten auf Port 8080 dann abfangen? Wie gesagt ich konnte mich nicht verbinden..

Also mit P2P habe ich nichts zu tun und ich befinde mich auch nicht in einem Firmennetzwerk. Die Sache ist, dass ich habe viele selbstgeschriebene Internet-Progrämmchen, bei denen ich aber konsequent vergessen hab Proxy-Support zu integrieren..Ich würde gerne eine Anwendung schreiben, die Internetverkehr "ohne Wissen" der Anwendung umleitet. Könnte das besagte Stück Code mir bei dieser Aufgabe helfen? Mehr möchte ich gar nicht wissen ;)


digi_c - Sa 18.02.06 17:55

Prinzipiel: JA, du must eigentlich nichts weiter "abfangen" sondern IMHO den MappedPort einfach nur auf den Standartport deiner Anwendung biegen. Da die Clientports aber normalerweise zufällig gewähl werden(ebend irgendeiner der frei ist) wird es problematisch...

Aber erweitere lieber deine bestehenden Anwendungen, dann bruachst du keinen häßlichen Workaroung und hast gleichzeitig eine Begründung V2.0 schreiben ;)


Hellcode - Sa 18.02.06 19:12

Danke digi_c ! Ich bin nicht so häufig hier, aber ich habe schon öfters bemerkt dass du hier sehr vielen sehr gute Ratschläge gibst. Sehr nobel von dir :!:


digi_c - So 19.02.06 10:19

THX, mein Chef würde sagen ich habe Langeweile :lol: