
Das ist meine Situation:
Zwei Computer unter demselben Router, 192.168.1.101 und 192.168.1.102
Ich mache es gerne so: Beim Zugriff auf Port 22 unter 192.168.1.101 mit localhost wird der Datenverkehr an Port 22 unter 192.168.1.102 umgeleitet.
Mit anderen Worten, ich möchte den gesamten Datenverkehr vom lokalen Host an eine andere lokale IP weiterleiten.
Gibt es eine Lösung für mein Bedürfnis?
Antwort1
Wenn Sie Windows verwenden, können Sie den folgenden Befehl verwenden:
netsh interface portproxy add v4tov4 listenaddress=192.168.1.101 listenport=21 connectaddress=192.168.1.102 connectport=21
Ersetzen:
21
mit dem Port, den Sie weiterleiten möchten,192.168.1.101
mit deiner IP,192.168.1.102
mit der Ziel-IP.
Antwort2
Definieren Sie die Bedeutung von „localhost“ nicht neu. Dadurch werden die Dinge auf überraschende Weise kaputt gemacht.
Sehen Sie sich stattdessen die Optionen -L
und in an. Sie erleichtern die Umleitung eines Ports auf dem lokalen Computer zur IP-Adresse und zum Port eines Remotecomputers. Außerdem ist der Tunnel durch SSH gesichert.-R
ssh(1)
Beachten Sie, dass diese Tunnel nicht unbedingt spezifisch für SSH-/Shell-Datenverkehr sind. Sie können für beliebigen Datenverkehr verwendet werden.
Antwort3
Ich bin mir nicht sicher, ob das eine kluge Entscheidung ist. Viele Dienste, die auf dem lokalen Rechner ausgeführt werden sollen, verwenden entweder 127.0.0.1
(was mit Ihrer Änderung kein Problem wäre) oder localhost
(in diesem Fall würde Ihre Änderung alles durcheinander bringen), um eine Verbindung zu anderen Diensten auf demselben Rechner herzustellen. Und viele andere Pakete sind so konfiguriert.
Wenn der Zweck darin besteht, den gleichen Namen für die übergreifende Verbindung zu verwenden, unabhängig davon, auf welchem Rechner Sie sich befinden, würde ich eher empfehlen, hierfür einen anderen Namen zu verwenden. Statt "localhost" könnten Sie beispielsweise "crosshost" verwenden - und dabei den Hinweisen von Indrek folgen: Suchen Sie nach Ihrer hosts
Datei (unter Linux/Unix und wahrscheinlich auch Mac ist es /etc/hosts
, unter Windows ist es C:\Windows\System32\drivers\etc\hosts
(ohne Erweiterung - seien Sie also vorsichtig, Windows hat normalerweise bereits eine andere hosts.*
Datei in diesem Verzeichnis).NICHTKommentieren Sie die 127.0.0.1 localhost
Zeile aus und ändern Sie sie nicht - lassen Sie sie so wie sie ist. Fügen Sie einfach eine Zeile hinzu
192.168.1.101 crosshost
auf der Maschine 192.168.1.102 und ebenso mit der anderen Adresse auf der anderen Maschine. Jetzt können Sie sich beispielsweise ssh crosshost
von einer Maschine aus mit der anderen verbinden oder Dateien mit kopieren scp filename.ext crosshost:/path/to/put
oder was auch immer Sie beabsichtigen.