Wie kann auf den Port eines Reverse-SSH-Tunnels auf dem Host-Loopback-Gerät von einem Docker-Container aus zugegriffen werden?
Ich habe die Xdebug PHP-Erweiterung in einem Docker-Container installiert, in dem der PHP-FPM meiner Entwicklungs- und Testumgebung ausgeführt wird.
Ein Debugging-Client (der eingebaute PhpStorm) überwacht Port 9000 auf meinem lokalen Windows-Computer.
Wenn ich einen SSH-Server in meinem PHP-FPM-Container installiere und PuTTY verwende, um einen umgekehrten SSH-Tunnel zu erstellen, der von einem lokalen Port innerhalb des PHP-FPM-Containers auf Port 9000 auf meinem Windows-Computer zeigt, verbindet sich Xdebug einfach mit PhpStorm.
Aus offensichtlichen Gründen möchte ich jedoch nicht, dass ein SSH-Server in meinem PHP-FPM-Container ausgeführt wird. Ich kann jedoch nicht auf den Port meines Hosts zugreifen, wenn ich den Reverse-SSH-Tunnel erstelle, der vom Host (und nicht innerhalb eines Containers) auf meinen Windows-Computer verweist.
Um dies zu testen, habe ich Telnet im Container installiert. Wenn ich Telnet außerhalb eines Containers betreibe, ist es möglich, eine Verbindung zum Port herzustellen, aber innerhalb des PHP-FPM-Containers ist der Port nicht verfügbar, auch wenn ich versuche, eine Verbindung zu 127.0.0.1 oder 172.17.0.1 (der Docker-IP meines Hosts) herzustellen ).
Ich habe gelernt, dass dies sinnvoll ist, da es nicht möglich ist, innerhalb eines Containers auf das Loopback-Gerät zuzugreifen, wenn es im Bridge-Modus ausgeführt wird. Wenn ich den Container mit "--net = host" starte, ist es möglich, eine Verbindung über 127.0.0.1 herzustellen, aber aus Sicherheitsgründen brauche ich meine Container im Bridge-Modus.
Diese Antwort schlägt vor, "GatewayPorts yes" in meinen OpenSSH-Einstellungen festzulegen, aber ich möchte meine Reverse-Ports nicht der Öffentlichkeit zugänglich machen. Wie kann ich auf den Port (und nur diesen Port - nicht das gesamte Loopback-Gerät) des Reverse-SSH-Tunnels auf dem Loopback-Gerät des Hosts vom Docker-Container aus zugreifen?
0 Antworten auf die Frage
Verwandte Probleme
-
2
Protokollierung der Kommunikation zwischen zwei VMs
-
4
Ist es unter Linux iptables möglich, den Namen des Prozesses / Befehls zu protokollieren, der eine a...
-
3
Blockieren Sie den Zugriff eines Benutzers auf das Internet unter Linux
-
5
Welche Iptables-Regeln sind für die Weiterleitung einer Windows-Remotedesktopverbindung erforderlich...
-
2
Wie verwendet man FQDN in Firewall-Regeln für GNU / Linux?
-
1
Zugriff auf eine bestimmte URL blockieren
-
2
Wie installiere ich Xdebug auf Mac 10.6 Snow Leopard?
-
1
Eine Website, die keine Verbindung über eine freigegebene Verbindung herstellt
-
3
iptables-Syntax zum Weiterleiten von Remote-Desktop-Anforderungen an eine virtuelle Maschine auf dem...
-
2
Linux: wie man aria2 oder wget nur durch eth0 laufen lässt