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


17

我正在练习ftp,但遇到问题:ls命令在ftp>上不起作用。为什么?我在2台远程服务器上进行了检查,但是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时,我得到的输出都是不同的


3
使用被动模式。检查ftp客户端的手册页以了解如何启用它。
斯特凡Chazelas

如何知道我的终端正在运行什么ftp客户端?
拉维

@stephane谢谢!我运行man ftp并找到-p用于被动模式的选项。如前所述man ftp,ftp是Internet标准文件传输协议的用户界面:因此它是界面,而不是ftp客户端!!!我了解的是ftp客户端使用此接口(ftp)传输文件。
拉维

Answers:


26

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

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

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

您可能希望切换到更好的FTP客户端,例如ncftplftp


谢谢!!但是为什么突然出现这个问题。伯爵我能够在ftp>上运行ls。但是昨天,我在我的远程服务器(我的VPS)上安装了vsftpd,还在.netrc我的本地机器上编辑了文件(只是在.netrc中将哈希放在行的开头)。就这样,在我遇到ls问题之后。ls早些时候运行良好,而从昨天开始运行不正常可能是什么原因?
拉维

你是正确的建议lftp。我对此有经验。lftp真的很棒 我还要补充一点,我刚才检查过lftp,它运行正常,没有ls问题。ls此处(在lftp中)正确显示输出。
拉维

3

完整的“ ftp 500非法PORT命令”的完整解决方案。单击以下链接: 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连接。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.