
Ich habe ein Macbook A
, einen öffentlichen Server B(public IP: 1.2.3.4, internal IP: 10.0.0.2)
, einen internen ServerC(internal IP: 10.0.0.3)
A
B
kann sich über die öffentliche IP von B verbinden und kann sich über die private IP von C B
verbinden , kann sich aber nicht direkt verbinden mitC
A
C
Jetzt möchte ich C:2345
von aus eine Verbindung herstellen A
. Ich denke also, dass ich die Portweiterleitung in durchführen kann B:1234=>C:2345
?
Welchen Befehl soll ich ausführen und auf welchem Server soll ich ihn ausführen?
Ich habe es versucht:
ssh -NfR 1234:localhost:2345 10.0.0.3
ssh -L 1234:0.0.0.0:2345 10.0.0.3
Beides funktioniert nicht.
Antwort1
Machengenauwas Sie angefordert haben ( B:1234=>C:2345
) dies sollte ausgeführt werden auf B
:
# Not recommended. Read along.
ssh -NgL 1.2.3.4:1234:localhost:2345 10.0.0.3
Außerdem muss der 1234
Port in der Firewall geöffnet werden. Stellen Sie dann von außen B
eine Verbindung zu her, um zu zu gelangen , als ob Sie sich von selbst verbinden würden (über die Loopback-Schnittstelle). Jeder kann eine Verbindung herstellen, also denken Sie daran, wenn der Server (egal welcher Server es ist) nicht durch ein Passwort geschützt ist oder so.1.2.3.4:1234
10.0.0.3:2345
C
C
Ein einfacherer und wesentlich sichererer Weg, um von A
nach zu gelangen C
, ist wie folgt. Er führt zwar nicht genau das aus, was Sie angefordert haben, aber wahrscheinlich ist es das, was Sie wollen. Auf A
:
ssh -NL 1234:10.0.0.3:2345 1.2.3.4
Stellen Sie dann eine Verbindung mit 127.0.0.1:1234
ein her A
, um zum Port 2345
auf zu gelangen C
. C
Sie sehen den von eingehenden Datenverkehr B
. Diese Verbindung ist nur für verfügbar A
, daher ist diese Methode viel sicherer als die vorherige.
A
Wenn Sie anderen Computern (z. B. aus dem lokalen Netzwerk ) die Verbindung ermöglichen möchten , sollten Sie -g
die Option verwenden und die Bindungsadresse angeben. Beispiel:
ssh -NgL A_LAN_address_here:1234:10.0.0.3:2345 1.2.3.4
Konfigurieren Sie in diesem Fall die Firewall A
entsprechend neu und stellen Sie dann eine Verbindung zu her A_LAN_address_here:1234
.
Antwort2
Auf dem Mac macht man zuerst
ssh -L2345:10.0.0.3:2345 10.0.0.2
Dadurch wird ein lokaler Port 2345 auf Ihrem Mac geöffnet, der eine direkte Verbindung zu :2345 auf 10.0.0.3 herstellt.
Dann greifen Sie einfach 127.0.0.1:2345
auf Ihrem Mac zu. Alles, was an diesen Port geht, wird über SSH getunnelt und geht an 10.0.0.3:2345
. Für diesen Server sieht es so aus, als käme es von 10.0.0.2
.