我在Ubuntu 12.04 LTS中设置了FTP服务器。200 PORT命令成功。考虑使用PASV。 425无法建立连接
现在,当我尝试通过命令行ftp.exe
从Windows 7连接到FTP服务器时,我成功连接,但无法获取目录列表。我得到错误
200 PORT command successful. Consider using PASV.
425 Failed to establish connection.
我在Ubuntu 12.04 LTS中设置了FTP服务器。200 PORT命令成功。考虑使用PASV。 425无法建立连接
现在,当我尝试通过命令行ftp.exe
从Windows 7连接到FTP服务器时,我成功连接,但无法获取目录列表。我得到错误
200 PORT command successful. Consider using PASV.
425 Failed to establish connection.
尝试使用ls
之前,使用passive
命令。
从FTP客户端,检查FTP服务器是否支持被动模式,登录后输入quote PASV
。
以下是连接示例与上下车
vsftpd
与pasv_enable=NO
被动模式下的vsftpd服务器:
# 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>
您正在使用FTP在一个活动模式。
由于防火墙和NAT的原因,在活动模式下设置FTP可能非常麻烦。
很可能是因为您的本地防火墙或NAT,服务器无法连接回您的客户端以建立数据传输连接。
或者您的客户端不知道其外部IP地址,而是向服务器提供内部地址(在PORT
命令中),该服务器明显无法使用。但情况并非如此,因为默认情况下vsftpd拒绝与FTP控制连接的源地址(port_promiscuous
指令)不同的数据传输地址。
请参阅我的文章Network Configuration for Active Mode。
如果可能,应该使用被动模式,因为它通常不需要在客户端进行额外的设置。这也是服务器通过“考虑使用PASV”提出的建议。 PASV
是用于进入被动模式的FTP命令。
不幸的是Windows FTP命令行客户端(ftp.exe
)完全不支持被动模式。现在它变得毫无用处。
改为使用任何其他第三方Windows FTP命令行客户端。大多数其他支持被动模式。
例如WinSCP FTP client默认为被动模式,并且有指导可用于转换Windows FTP script to WinSCP script。
(我的WinSCP的作者)
其实你的窗口防火墙阻止连接,所以你需要从管理员输入这些命令到CMD.EXE。
1)的netsh advfirewall防火墙添加规则名称= “FTP” DIR =在行动=允许程序=%SYSTEMROOT%\ System32下\ Ftp.exe的启用=是协议= TCP
2)的netsh advfirewall防火墙添加规则名称= “FTP” DIR =行动=允许程序=%SYSTEMROOT%\ SYSTEM32 \ Ftp.exe的启用= YES协议UDP =
如果万一出现问题,那么你可以通过这个回复:
1)netsh advfirewall防火墙删除规则名称=“FTP”程序=%SystemRoot%\ System32 \ ftp.exe
为我工作谢谢 –
'报价PASV'不会帮助。它只将服务器切换到被动模式。但不是客户。请参阅[如何在Windows命令提示符下使用被动FTP模式?](http://stackoverflow.com/q/18643542/850848) –
@MartinPrikryl我不确定您是否阅读我的答案。另外,似乎人们一直在编辑我的答案。但是,您对Windows命令提示符是正确的。 – Shannon
是的,我读了你的答案。这个问题是关于Windows'ftp.exe'(*我尝试通过命令行***从** Window 7连接到FTP服务器)。在Windows ftp.exe中,没有'passive'命令,甚至不支持被动模式。所以你的回答与这个问题无关。 –