Ich habe eine lokale SSH-Weiterleitung für den Port auf einem Remotecomputer eingerichtet:
ssh -N -L 127.0.0.1:3388:127.0.0.1:22 localhost
es funktioniert auf dem Remote-Computer selbst:
telnet localhost 3388
kehrt zurück
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4
Wenn ich diese Weiterleitung jedoch vom lokalen Computer aus verwende:
telnet remote.ip 3388
es schlägt fehl:
Trying remote.ip...
telnet: Unable to connect to remote host: Connection refused
Man könnte meinen, dass Port 3388 des Remote-Rechners durch die Firewall oder etwas anderes aus dem Netzwerk blockiert ist. Deshalb habe ich die SSH-Weiterleitung ausgeschaltet und einen HTTP-Server getestet, der auf Port 3388 des Remote-Rechners lauscht:
python3 -m http.server 3388
dann verbinde ich mich von meinem lokalen Rechner aus mit diesem Port:
telnet remote.ip 3388
Das Ergebnis gibt
Trying remote.ip...
Connected to remote.ip.
Escape character is '^]'.
quit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Error response</title>
</head>
<body>
<h1>Error response</h1>
<p>Error code: 400</p>
<p>Message: Bad request syntax ('quit ').</p>
<p>Error code explanation: HTTPStatus.BAD_REQUEST - Bad request syntax or unsupported method.</p>
</body>
</html>
Connection closed by foreign host.
was bedeutet, dass Port 3388 auf dem Remote-Rechner für meinen lokalen Rechner zugänglich ist. Warum also funktionieren sowohl die SSH-Weiterleitung als auch das Netzwerk einzeln einwandfrei, aber in Kombination schlägt es fehl? Weiß jemand, wie man das behebt? Danke.
Antwort1
Sie haben die lokale SSH-Weiterleitung so eingerichtet, dass sie nur auf dem Localhost-Port 3388 lauscht. Localhost ist von anderen Geräten im Netzwerk nicht erreichbar, weshalb Sie keine Remoteverbindung herstellen konnten.
Um den Weiterleitungsport anderen Computern im Netzwerk zugänglich zu machen, müssen Sie ihn an eine erreichbare Adresse wie 192.168.1.5 oder 0.0.0.0 (alle Schnittstellen) binden.
z.Bssh -N -L 0.0.0.0:3388:127.0.0.1:22 localhost