Auf welchem ​​Server soll ich den Befehl zur SSH-Portweiterleitung ausführen?

Auf welchem ​​Server soll ich den Befehl zur SSH-Portweiterleitung ausführen?

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)

ABkann sich über die öffentliche IP von B verbinden und kann sich über die private IP von C Bverbinden , kann sich aber nicht direkt verbinden mitCAC

Jetzt möchte ich C:2345von 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 1234Port in der Firewall geöffnet werden. Stellen Sie dann von außen Beine 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:123410.0.0.3:2345CC


Ein einfacherer und wesentlich sichererer Weg, um von Anach 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:1234ein her A, um zum Port 2345auf zu gelangen C. CSie sehen den von eingehenden Datenverkehr B. Diese Verbindung ist nur für verfügbar A, daher ist diese Methode viel sicherer als die vorherige.

AWenn Sie anderen Computern (z. B. aus dem lokalen Netzwerk ) die Verbindung ermöglichen möchten , sollten Sie -gdie 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 Aentsprechend 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:2345auf 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.

verwandte Informationen