Ich habe zwei Server in IDC gehostet. Ich kann nur die Ports 20/21/22/23/3389 / 33101-33109 verwenden, um Verbindungen zwischen zwei Servern herzustellen. Das IDC-Netzwerkgerät blockiert alle anderen Pakete, deren Quell- oder Zielport nicht in der Liste / dem Bereich 20/21/22/23/80/3389 / 33101-33109 enthalten ist. Der Quellport von SSH ist jedoch zufällig.
Mit dem Befehl
kann man leicht einen Remote-Port angeben.ssh username@server -p remote_port
Gibt es also einen ssh
Befehlsparameter oder eine andere Möglichkeit, einen lokalen Quellport anzugeben, damit ich beispielsweise Port 33101 zum Herstellen der SSH-Verbindung verwenden kann?
quelle
Für einmalige oder ohnehin gelegentliche Situationen ist der ProxyCommand-Ansatz leicht sehr praktisch.
Wenn Sie jedoch mehrere gleichzeitige Verbindungen benötigen oder diesen Befehl häufig für die tägliche Arbeit verwenden müssen, können Sie stattdessen auch eine NAT-Regel (Network Address Translation) auf Ihrem Server festlegen.
Dies erfordert (normalerweise
root
) Superuser- Zugriff auf Ihrem Server, um zuerst die eine einzige NAT-Regel anzuwenden. Beachten Sie, dass es möglicherweise überhaupt nicht erlaubt (oder effektiv) ist, die NAT-Regel anzuwenden, selbst wenn Sie Superuser-Zugriff haben, wenn Ihr "Server" tatsächlich ein Container (wie ein Docker-Server) anstelle eines Computers ist.Wenn Sie von einem typischen Linux-System mit der
iptables
Suite sprechen , könnte die NAT-Regel, die auf Ihrem Server1 für Ihren Beispielfall angewendet werden soll, wie folgt lauten:Dieser Befehl weist den Linux-Kernel an, alle Verbindungen zum Port Server2-Port der Server2-IP-Adresse herzustellen , um ihn über einen Quellport zu löschen, der im Bereich 33101-33109 ausgewählt ist, der zu diesem Zeitpunkt verfügbar ist.
Sobald diese Regel eingeführt ist, stellen Sie einfach wie gewohnt eine Verbindung zu Ihrem Server2 her:
Sie können denselben
ssh
Befehl auch so oft gleichzeitig verwenden, wie Sie möchten, sofern in dem in der NAT-Regel angegebenen Bereich Ports verfügbar sind.Beachten Sie jedoch, dass ein
netstat
(oder ein gleichwertiger Befehl), der auf Ihrem Server ausgeführt wird, die lokale Adresse der Verbindung als unveränderte , zufällig ausgewählte Quellportnummer meldet , obwohl der tatsächliche Datenverkehr, der an Ihren Server2 gesendet wird, die geänderte Quellportnummer trägt .Um die NAT-Regel rückgängig zu machen, ist der Befehl bis auf eine
-D
Option anstelle von identisch-I
.Die automatische Anwendung der NAT-Regel beim Booten hängt davon ab, welche Linux-Distribution auf Ihrem Server vorhanden ist und ob bereits eine Firewall-Konfiguration vorhanden ist oder nicht.
Ich habe keine Erfahrung mit BSD-ähnlichen Systemen, aber ich vertraue darauf, dass es ein Äquivalent gibt.
quelle