LFTP mode actif avec des serveurs qui ne reconnaît pas la commande PORT
Je suis à l'aide de LFTP pour transférer des fichiers à partir d'un serveur, qui, malheureusement, ne reconnaît pas la commande PORT. Je n'ai pas de contrôle sur le serveur (je ne sais pas en détail sur quel serveur) et je dois utiliser le mode actif.
C'est la ligne de commande comme:
lftp -e 'debug 10;set ftp:passive-mode off; set ftp:auto-passive-mode no; ls; bye;' -u user,password ftp://ftp.site.com
C'est la sortie de débogage:
<--- 200 Using default language en_US
---> OPTS UTF8 ON
<--- 200 UTF8 set to on
---> OPTS MLST modify;perm;size;type;UNIX.group;UNIX.mode;UNIX.owner;
<--- 200 OPTS MLST modify;perm;size;type;UNIX.group;UNIX.mode;UNIX.owner;
---> USER xxxxx
<--- 331 Password required for xxxxx
---> PASS xxxxxx
<--- 230 User xxxxx logged in
---> PBSZ 0
<--- 200 PBSZ 0 successful
---> PROT P
<--- 200 Protection set to Private
---> PORT 172,16,133,11,146,168
<--- 500 Illegal PORT command
---> LIST
---> ABOR
---- Closing aborted data socket
---- Chiusura del socket di controllo
Il semble que LFTP renonce à se connecter à des données de prise, car le serveur distant ne prend pas en charge la commande PORT. Est-il un moyen de convaincre LFTP pouvez toujours vous connecter à port 20? Par FTP manuel, évidemment, pas de problème.
OriginalL'auteur Marco | 2013-02-22
Vous devez vous connecter pour publier un commentaire.
La question, je pense, n'est pas que le serveur FTP ne prend pas en charge la
PORT
de commande (il le fait), mais plutôt, il n'aime pas l'adresse IP/port que votre client FTP est de l'envoyer dans lePORT
commande.indique au serveur pour se connecter à l'adresse 172.16.133.11, port 37544. La partie intéressante est l'adresse IP: c'est un RFC 1918 adresse (c'est à dire c'est un adresse de réseau privé). Qui, à son tour, suggère que votre client FTP est dans un LAN, quelque part, et se connecte à un serveur FTP à l'aide d'un public adresse IP.
Que serveur FTP distant ne peut pas se connecter à une adresse de réseau privé; par définition, la RFC 1918 adresse ne sont pas publiquement routables.
Ainsi, il pourrait très bien être que le serveur FTP est une tentative de connexion à l'adresse/port donné dans votre
PORT
de commande, ne parvient pas, donc c'est pourquoi le serveur FTP d'échec de la commande, disant:De faire un
PORT
travail commande avec ce serveur FTP, vous avez besoin de découvrir les public adresse IP que le serveur peut se connecter, à portée de votre ordinateur client. Disons que cette adresse est1.2.3.4
. Ensuite, vous devez dire àftp
utiliser cette adresse dans sonPORT
de commande, à l'aide de laftp:port-ipv4
option.Les Chances sont, cependant, que l'adresse IP publique est l'adresse d'un NAT/routeur/pare-feu, et que NAT/routeur/pare-feu ne sera pas autoriser les connexions, à partir du monde extérieur à haute numérotées de port (par exemple 37544), afin d'être acheminés vers une machine du LAN. C'est l'un des problèmes avec active les transferts de données FTP, c'est à dire FTP transferts de données qui utilisent la
PORT
(ouEPRT
) commandes: ils ne sont pas considérés comme des "pare-feux".Espérons que cette aide!
OriginalL'auteur Castaglia