¡El comando ls en ftp> no funciona!

17

Estaba practicando ftp pero enfrenté un problema: el comando ls no funciona en ftp>. ¿Por qué? Verifiqué en 2 servidores remotos, pero ls tampoco funcionó y di una salida diferente cuando se ejecutó ls. Consulte a continuación las 2 cajas remotas.

A continuación se muestra mi servidor remoto donde instalé vsftpd hoy.

ravbholua@ravbholua-Aspire-5315:~$ ftp rs
Connected to ravi.com.
220 (vsFTPd 3.0.2)
Name (rs:ravbholua): 
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/ravbholua"
ftp> ls
500 Illegal PORT command.
ftp: bind: Address already in use
ftp> 

Lo siguiente es para una máquina remota diferente donde tengo que enviar algunos archivos. Pero como ls en ftp> no funciona, ¿cómo transferiré archivos de mi casilla local a esa casilla porque no puedo confirmar sin ls si los archivos se han transferido o no?

ravbholua@ravbholua-Aspire-5315:~$ ftp 125.21.153.140
Connected to 125.21.153.140.
220---------- Welcome to Pure-FTPd [TLS] ----------
220-You are user number 1 of 10 allowed.
220-Local time is now 04:34. Server port: 21.
220-This server supports FXP transfers
220 You will be disconnected after 2 minutes of inactivity.
Name (125.21.153.140:ravbholua): peacenews
331 User peacenews OK. Password required
Password:
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200-FXP transfer: from 123.63.112.168 to 10.215.10.80
200 PORT command successful

Tenga en cuenta que para la máquina anterior, una vez que ejecuté ls en ftp>, el mensaje no volvió.

En ambas máquinas remotas, obtuve resultados diferentes cuando ejecuté ls en ftp>

Ravi
fuente
3
utilizar el modo pasivo Consulte la página del manual de su cliente ftp para saber cómo habilitarlo.
Stéphane Chazelas
¿Cómo saber qué cliente ftp se está ejecutando en mi final?
Ravi
@stephane gracias! Corrí man ftpy encontré la -popción para usar en modo pasivo. Como se man ftpmenciona que ftp es una interfaz de usuario para el protocolo de transferencia de archivos estándar de Internet: ¡así que es la interfaz y no el cliente ftp! Lo que entiendo es que el cliente ftp usa esta interfaz (ftp) para transferir archivos.
Ravi

Respuestas:

26

FTP es un protocolo antiguo. Se basa en dos conexiones TCP: una conexión de control sobre la cual se intercambian comandos y conexiones de datos para el contenido de los archivos y también para la salida de comandos como ls. Lo que sucede aquí es que la conexión de control está establecida, pero las conexiones de datos no están pasando.

Por defecto (modo activo), las conexiones de datos se establecen desde el remitente al receptor. Para la salida dels , el servidor envía los datos, por lo que el servidor intenta abrir una conexión con el cliente. Esto funcionó bien cuando se inventó FTP, pero hoy en día, los clientes a menudo están detrás de un firewall o NAT que puede o no admitir FTP activo. Cambie al modo pasivo, donde el cliente siempre inicia la conexión de datos.

Consulte el manual de su ftpcomando para ver cómo cambiar al modo pasivo de forma predeterminada. Para una cosa de una sola vez, escribir el comandopassive generalmente hace el truco.

Es posible que desee cambiar a un cliente FTP más agradable como ncftp o lftp .

Gilles 'SO- deja de ser malvado'
fuente
¡¡Gracias!! Pero, ¿por qué de repente se produjo este problema? Eariler pude ejecutar ls en ftp>. Pero ayer instalé vsftpd en mi servidor remoto (mi VPS) y también edité el archivo .netrcen mi casilla local (simplemente había puesto hash al comienzo de la línea en .netrc). Eso es todo y luego, después del problema de ls que he estado enfrentando. ¿Cuál puede ser la razón por la que ls estaba funcionando bien antes y desde ayer no funciona?
Ravi
Tienes razón al sugerir lftp. Tengo experiencia trabajando con eso. lftpEs realmente asombroso. También me gustaría agregar que acabo de comprobarlo lftpy funciona perfectamente sin problemas con ls. lsaquí (en lftp) está mostrando la salida correctamente.
Ravi
3

Solución completa completa para el comando "ftp 500 Illegal PORT command". Haga clic en el siguiente enlace: http://www.ucodice.com/articles/ftp-500-illegal-port-command/ .

Extracto

Intentando conectar el servidor ftp y obtener el comando 500 Illegal port. Este problema puede ocurrir cuando el programa ftp no está configurado para el modo pasivo.

Puede obtener fragmentos de error como:

COMMAND:>              [3/11/2015 1:17:05 PM] PORT 192,168,0,101,196,215    
                       [3/11/2015 1:17:05 PM] 500 Illegal PORT command.    
ERROR:>                [3/11/2015 1:17:05 PM] Syntax error: command unrecognized.    
ERROR:>                [3/11/2015 1:17:05 PM] Failed to establish data socket.

Para resolver este problema, puede definir el puerto o ftp en el archivo de configuración del servidor ftp y definir la dirección IP o el servidor PASV.

Verifique el archivo de configuración para ver las configuraciones a continuación.

pasv_enable=YES
pasv_promiscuous=YES
pasv_max_port=Enter the max port range allowed on your server.
pasv_min_port=Enter the min port range allowed on your server.
pasv_address=Ip Address of your server.

Después de eso, reinicie el servicio ftp y verifique la conexión ftp.

Manoj Kumar
fuente