Ich versuche, die Portweiterleitungsfunktionen von PuTTY zu nutzen, um eine Verbindung von meinem Heim-PC (unter Windows 11) zu einer AWS Lightsail-Instanz (unter Ubuntu LTS 20.04) herzustellen, die ich bereitgestellt und eingerichtet habe. Die Idee besteht darin, die für die Instanz verfügbare Internetverbindung über meinen Heim-PC zu nutzen – ähnlich wie die Verwendung eines Proxyservers oder VPN für den Internetzugang.
Gehen Sie von folgenden Parametern aus:
- Öffentliche IP-Adresse der AWS-Instanz:
x.x.x.x
- Private IP-Adresse der AWS-Instanz:
Y.Y.Y.Y
- SSH-Port:
22
6088
Ich habe den Port sowohl auf Kontoebene als auch auf Instanzebene geöffnet- Öffentliche IP-Adresse meines lokalen PCs (Router-IP):
a.a.a.a
- Private IP-Adresse meines lokalen PCs:
b.b.b.b
Mein bisheriges theoretisches Verständnis ist, dass ich PuTTY für die Remote-Portweiterleitung des Ports 6088 der Remote-Lightsail-Instanz an den entsprechenden lokalen Port 6088 meines Heim-PCs verwenden sollte.
Ich habe (erfolglos) versucht, von meinem PC aus auf das Remote-Internet zuzugreifen, nachdem ich die Proxy-Einstellungen des Heim-PCs auf konfiguriert hatte localhost:6088
. Ursprünglich hatte ich geplant, über ein VNC-Client-Server-Schema auf die Remote-Instanz zuzugreifen, aber auch das hat nicht funktioniert.
Nach einigem Googeln bin ich zu dem Schluss gekommen, dass AWS auch Instanzen speziell für den Aufbau von VPN-Netzwerken anbietet und diese den von mir in Betracht gezogenen Anwendungsfall ermöglichen.
Kann mir jemand den richtigen Weg empfehlen?
Antwort1
Sie haben den Weiterleitungsmodus rückwärts. Bei der „Remote“-Weiterleitung wird der Server zum Listener; Verbindungen werden an die Serveradresse: den Serverport (möglicherweise an localhost:6088 innerhalb des Servers oder an serverip:6088 von anderen Hosts aus) hergestellt und an Ihr Clientsystem weitergeleitet.
Was Sie versuchen, ist das genaue Gegenteil davon. Es würde also eher den Weiterleitungsmodus "Lokal" beinhalten, bei dem die SSHKlientist der Listener für Port 6088 (und die Firewall-Regeln des AWS-Servers sind irrelevant).
Sowohl der Modus „Remote“ als auch der Modus „Lokal“ sind fest definierte Funktionen. Das heißt, die App kann nicht angeben, wohin sie eine Verbindung herstellen möchte. Sie leitet immer nur an das angegebene Ziel weiter. Wenn Sie beispielsweise eine „Lokale“ Weiterleitung haben, bei der der lokale Port 6088 und das Remote-Ziel google.com:443 ist, dannjedenDie Verbindung zu localhost:6088 wird an google.com:443 weitergeleitet und nirgendwo anders hin.
(Das bedeutet auch, dass selbst wenn „Lokal“ oder „Remote“Warden passenden Modus, würden Sie den Port nicht verwenden inProxyKonfiguration – Sie würden es direkt verwenden, als wäre es der eigentliche Dienst.)
Stattdessen benötigen Sie den dritten Modus in PuTTY – „Dynamische“ Weiterleitung – der zwar immer noch in derselben Kategorie wie „Lokal“ liegt, PuTTY jedoch wie einen SOCKS-Proxy agieren lässt. Mit einer „dynamischen“ Weiterleitung auf Port 6088 können Sie Ihren Browser so konfigurieren, dass er localhost:6088 als SOCKS-Proxy verwendet und den AWS-Server durchsuchen kann.
PuTTY kann nur als SOCKS-Proxy fungieren. Firefox und Chrome können Proxys verwenden, die SOCKS sprechen, viele andere Apps jedoch nicht. Es kommt relativ häufig vor, dass Apps „HTTP CONNECT“, aber kein SOCKS unterstützen.
Da PuTTY keine Funktion hat, um das zu emulieren, müssen Sie möglicherweise einenrealHTTP-Proxyserver (z. B. Squid oder Privoxy) auf dem AWS-Server, dann verwenden Sie die „lokale“ Weiterleitung, um über SSH darauf zuzugreifen. (Oder machen Sie es wie Tor und führen Sie Privoxy/Polipo lokal aus und richten Sie es auf den „dynamischen“ Port von PuTTY aus, indem Sie „Browser→HTTP→Privoxy→SOCKS→PuTTY→SSH→AWS“ wählen.)
Alle oben genannten können nur TCP-Verkehr verarbeiten. Wenn Sie UDP für irgendetwas benötigen (oder selbst wenn Sie einen
ping
Proxy verwenden möchten), funktioniert keiner dieser Proxy-Typen.In diesem Fall müssen Sie einen kompletten VPN-Tunnel zwischen Ihrem PC und dem AWS-Server einrichten. (SSH kann das unter Windows nicht und ist dafür im Allgemeinen nicht sehr gut geeignet; stattdessen würden Sie OpenVPN oder Tailscale oder WireGuard oder etwas Ähnliches verwenden.) Sie benötigen hierfür keinen speziellen Servertyp.
(Es gibt Servertypen, die sich nicht zum Einrichten eines VPN eignen, nämlich die extrem billigen „VPS“, die von einigen Anbietern angeboten werden und die nichts weiter als getarnte OpenVZ-Container sind, obwohl selbst diese normalerweise zumindest OpenVPN hosten können. Ich glaube nicht, dass AWS so etwas hat; alle ihre VPS sind voll funktionsfähige virtuelle Server.)