FTP-Dateien über Zwischensprung-Server

481
Rayniery

In meiner Firma greifen wir über einen Jump-Server auf unsere entfernten elektronischen Geräte zu. Wenn wir Dateien von den Geräten herunterladen müssen, tun wir Folgendes:

  1. ssh jump.server.com
  2. wget ftp // device_ip / filepath (dies lädt die Datei auf den Jump-Server herunter)
  3. scp den Sprungserver vom lokalen Rechner, um die Datei abzurufen.

Ich versuche dies zu vereinfachen, indem ich die ssh-Portweiterleitung verwende, um die Datei direkt von den Remote-Geräten auf unseren Computer herunterladen zu können. Ich folgte dieser Antwort :

ssh -L 9000:device_ip:21 jump.server.com wget ftp://localhost:9000/filepath 

Ich erhalte jedoch die folgende Fehlermeldung:

227 Entering Passive Mode (10,192,1,16,19,129). trying to connect to 10.192.1.16 port 4993 Closed fd 4 Closed fd 3 couldn't connect to ipaddress port 4993: Connection timed out Giving up. 

Das Problem ist nicht der passive Modus, den wget verwendet, da er bei Verwendung der alten Methode funktioniert.

Irgendwelche Vorschläge, woran das Problem liegen könnte? Unsere Computer laufen mit Ubuntu, wenn das hilft.

0

1 Antwort auf die Frage

2
Steffen Ullrich

FTP verwendet Port 21 für die Steuerverbindung, benötigt jedoch für die eigentliche Datenübertragung zusätzliche Verbindungen über verschiedene, dynamisch vereinbarte Ports. Dies macht es unmöglich, FTP einfach über eine einzige TCP-Verbindung zu tunneln, egal ob im aktiven oder im passiven Modus.

Wenn Ihr FTP-Client das SOCKS-Protokoll unterstützt, versuchen Sie möglicherweise, ssh als SOCKS-Server mit der -DOption einzurichten und dann im passiven FTP-Modus zu verwenden.

Eine andere Möglichkeit wäre, sich nicht anzumelden, die Datei abzurufen und zurück zu übertragen, sondern alles auf einmal zu tun:

$ ssh user@remote wget -O - ftp://host/file > file 
Außerdem ist das FTP-Aushandlungsverfahren [umfasst die IP-Adresse] (https://mywiki.wooledge.org/FtpMustDie#You.27re_Firewalled_Too.3F_Oh.2C_Crap.21). Durch das Tunneln passt die Adresse nicht. Kamil Maciorowski vor 5 Jahren 1