我在Ubuntu12.04LTS中安装了FTP服务器。
现在,当我试图通过命令行ftp.exe
从Windows 7连接到FTP服务器时,我成功地连接了,但无法获得目录列表。我搞错了
200 PORT command successful. Consider using PASV.
425 Failed to establish connection.
发布于 2013-12-02 15:49:09
在使用passive
之前尝试使用ls
命令。
从FTP客户端,检查FTP服务器是否支持被动模式,登录后键入quote PASV
。
下面是连接到具有无源模式的vsftpd服务器的示例
vsftpd
与pasv_enable=NO
# ftp localhost
Connected to localhost.localdomain.
220 (vsFTPd 2.3.5)
Name (localhost:john): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quote PASV
550 Permission denied.
ftp>
vsftpd
与pasv_enable=YES
# ftp localhost
Connected to localhost.localdomain.
220 (vsFTPd 2.3.5)
Name (localhost:john): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quote PASV
227 Entering Passive Mode (127,0,0,1,173,104).
ftp>
发布于 2015-03-03 13:10:03
您正在活动模式下使用FTP。
现在,由于防火墙和NAT,在活动模式下设置FTP可能会很麻烦。
很可能是因为您的本地防火墙或NAT,服务器无法连接回您的客户端来建立数据传输连接。
或者您的客户端不知道它的外部IP地址,而是向服务器(在PORT
命令中)提供一个内部地址,而服务器显然无法使用该地址。但是情况不应该是这样的,因为vsftpd默认拒绝与FTP控制连接的源地址不相同的数据传输地址( port_promiscuous
指令)。
请看我的文章主动模式的网络配置。
如果可能的话,您应该使用被动模式,因为它通常不需要客户端上的额外设置。这也是服务器建议您“考虑使用PASV”。PASV
是一个用于进入被动模式的FTP命令。
不幸的是,Windows命令行客户端( ftp.exe
)根本不支持被动模式.它使它在今天变得相当无用。
使用任何其他第三方Windows命令行客户端代替。大多数其他人支持被动模式。
例如,WinSCP FTP客户端默认为被动模式,并且有一个可用于转换Windows脚本到WinSCP脚本的指南。
(我是WinSCP的作者)
发布于 2016-01-20 12:10:40
实际上,您的Windows防火墙正在阻止连接。您需要从Administrator将这些命令输入到cmd.exe
中。
netsh advfirewall firewall add rule name="FTP" dir=in action=allow program=%SystemRoot%\System32\ftp.exe enable=yes protocol=tcp
netsh advfirewall firewall add rule name="FTP" dir=in action=allow program=%SystemRoot%\System32\ftp.exe enable=yes protocol=udp
如果有什么问题发生,那么您可以通过以下方法进行还原:
netsh advfirewall firewall delete rule name="FTP" program=%SystemRoot%\System32\ftp.exe
https://stackoverflow.com/questions/19516263
复制相似问题