ftp> 中的 ls 命令不起作用!

ftp> 中的 ls 命令不起作用!

我正在练习 ftp 但遇到一个问题: ls 命令不适用于 ftp> 。为什么?我检查了两台远程服务器,但 ls 都不起作用,并且在执行 ls 时给出了不同的输出。请参阅下面的 2 个远程盒。

下面显示了我今天安装了 vsftpd 的远程服务器。

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> 

下面是针对不同的远程计算机,我必须在其中发送一些文件。但是由于 ftp> 上的 ls 不起作用,我将如何将文件从本地盒子传输到该盒子,因为如果没有 ls 我无法确认文件是否已传输。

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

请注意,对于上述机器,一旦我在 ftp> 上运行 ls,提示就没有回来。

在两台远程计算机上,在 ftp> 上执行 ls 时,我得到了不同的输出

答案1

FTP 是一个古老的协议。它依赖于两个 TCP 连接:控制连接通过其交换命令,以及数据连接用于文件的内容以及命令的输出,例如ls.这里发生的情况是控制连接已建立,但数据连接未建立。

默认情况下(主动模式),从发送方到接收方建立数据连接。对于 的输出ls,数据是由服务器发送的,因此服务器尝试打开与客户端的连接。当 FTP 发明时,这种方法效果很好,但现在,客户端通常位于防火墙或 NAT 后面,这些防火墙或 NAT 可能支持也可能不支持主动 FTP。切换到被动模式,客户端始终发起数据连接。

检查命令手册ftp以了解如何默认切换到被动模式。对于一次性的事情,输入命令passive通常就可以解决问题。

您可能希望切换到更好的 FTP 客户端,例如网络文件传输协议或者远程传输协议

答案2

完整 “ftp 500 Illegal PORT command”的完整解决方案。点击以下链接:http://www.ucodice.com/articles/ftp-500-illegal-port-command/

摘抄

尝试连接 ftp 服务器并收到 500 非法端口命令。当 ftp 程序未配置为被动模式时,可能会出现此问题。

您可能会收到如下错误片段:

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.

要解决此问题,您可以在 ftp 服务器的配置文件中定义端口或 ftp,并定义 IP 地址或 PASV 服务器。

检查配置文件中的以下设置。

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.

之后重新启动 ftp 服务并检查 ftp 连接。

相关内容