Tunneln der FTP-Verbindung von zu Hause aus, wo der Server nur lokale IP-Adressen akzeptiert

11

Ich muss bei der Arbeit auf einen FTP-Server zugreifen, aber der Server akzeptiert nur lokale IPs. Ich kann von meinem Heimcomputer aus nicht darauf zugreifen. Ich konnte über PuTTY in meine Unix-Arbeitsmaschine ssh und von dort aus erfolgreich eine Konsolen-FTP-Verbindung zum FTP-Server öffnen.

Ich könnte das durcharbeiten, aber ich würde es lieber nicht tun, da es für mich sehr umständlich ist. Ich würde es vorziehen, eine FTP-Verbindung über PuTTY über den Arbeitscomputer zu tunneln, damit ich meinen bevorzugten FTP-Client FileZilla verwenden kann, um meine FTP-Anforderungen auf dem Server zu erfüllen. Dies geschieht natürlich über Port 21.

Ich weiß, dass PuTTY Port-Weiterleitungen über ssh durchführen kann. Ich bin mir nur nicht sicher, wie ich es verwenden soll.

Home -> Arbeit -> Server.

zufällig
quelle
Das Hochladen und Herunterladen über eine SOCKS-Proxy-Verbindung unterscheidet sich von Natur aus nicht. Der große Unterschied besteht darin, dass Ihre Heim-Internetverbindung im Vergleich zur Download-Leistung (eingehend) wahrscheinlich eine schlechte Upload-Leistung (ausgehend) aufweist. Wir würden wahrscheinlich mehr Protokolle benötigen, um es diagnostizieren zu können.
EightBitTony
Ich bin zu dem Schluss gekommen, dass ich wahrscheinlich ganz bei einem anderen Problem bin und daran arbeiten werde, eine neue Frage zu erstellen, die sich mit diesem speziellen Problem befasst. Vielen Dank für Ihre Hilfe EightBitTony!
Ben Jacobson
Möglicherweise möchten Sie Ihr Server Fault-Konto mit denselben Anmeldeinformationen wie hier registrieren, um diese Frage zurückzufordern @ben
random

Antworten:

13

Verwenden Sie einen SOCKS-Proxy.

PuTTY-Fenster

Der Quellport ist jetzt (lokal) ein SOCKS-Proxy. Konfigurieren Sie FileZilla so, dass es als SOCKS-Proxy verwendet wird (siehe unten). Dadurch wird eine Verbindung zu dem Host hergestellt, zu dem Sie ssh (Ihre Arbeitsmaschine), und von dort aus wird eine Verbindung zu einer beliebigen IP-Adresse hergestellt, die Sie ihm geben. Funktioniert für alles, was SOCKS unterstützt, und dazu gehört auch FTP.

Der Rest der PuTTY-Konfiguration bleibt unverändert. Konfigurieren Sie die Ports (wie gezeigt) und verbinden Sie diese PuTTY-Sitzung über SSH mit Ihrem Workcomputer.

So muss die FileZilla-Option aussehen:

Geben Sie hier die Bildbeschreibung ein

Wenn Sie das Ziel für die FTP-Verbindung eingeben, verwenden Sie die IP-Adresse und nicht den Hostnamen, da die DNS-Auflösung möglicherweise noch lokal erfolgt und Sie dies nicht möchten.

Das Ganze ist sicher und unsichtbar - es sieht aus wie eine einfache SSH-Verbindung zu allem anderen im Netzwerk.

NB: Wenn Sie dies über die Befehlszeile tun möchten, können Sie PuTTYs verwenden plink.exe, um Folgendes zu tun:

plink -ssh -D 9090 [email protected]

Dies wird erreicht, ohne dass ein PuTTY-Profil erstellt oder die GUI verwendet werden muss.

EightBitTony
quelle
Ich mag diese Art, es ein bisschen mehr zu tun als meine Antwort. Sie können den SOCKS-Proxy in filezilla unter "Generic Proxy" einstellen und daran denken, ihn im "passiven Modus" zu verwenden.
Philip Couling
2

Erstens ist es viel einfacher / wohl besser, SCP zu verwenden. Da Sie über SSH verfügen, haben Sie häufig auch SCP-Zugriff. Aber ich kenne dein Netzwerk nicht so zur Frage ...

Stellen Sie zunächst sicher, dass Ihr Client für die Verwendung von FTP im ACTIVE-Modus eingestellt ist. Ich wollte die Verwendung des passiven Modus vorschlagen, aber Sie können nicht steuern, welche Ports verwendet werden.

Zweitens: Begrenzen Sie die Anzahl der Ports, die Ihr FTP-Client im aktiven Modus verwendet, auf eine Handvoll. Weniger als 10 wäre gut. Und hier ist warum.

Drittens erstellen Sie für alle diese Ports eine Remote-Port-Weiterleitung.

Das sollte es zum Laufen bringen

Philip Couling
quelle
2

So durchsuchen Sie das Dateisystem des internen Servers (hinter NAT), mit FileZilla oder mit Nautilus File Manager - mithilfe von SFTP (SSH-Sitzung auf TCP-Port 22) über den Gateway- Server (außerhalb von NAT):

  1. Erster Lauf im Terminal:

sudo ssh -L 9090: {Hostname oder IP des internen Servers}: 22 root @ {Hostname oder IP des Gateway-Servers}

  1. Dann erstellen Sie eine neue Verbindung.

    In FileZilla:

    • Host: sftp: //127.0.0.1
    • Benutzername / Passwort: Die Anmeldeinformationen des internen Servers.
    • Port: 9090 (gleicher Port wie im Terminalbefehl).

Oder in Nautilus:

sftp://127.0.0.1:9090/Anschließend werden Sie aufgefordert, interne Serveranmeldeinformationen einzugeben.

Jetzt sollten Sie in der Lage sein, das interne Server-Dateisystem zu durchsuchen.


Geben Sie hier die Bildbeschreibung ein

Hinweis: Wie Sie sehen können, muss SOCKS Proxy weder in Putty noch in FileZilla eingerichtet werden :)

Noam Manos
quelle
Vielen Dank! Genau das habe ich gesucht!
Lorenzo-s