首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >200端口命令成功。考虑使用PASV。425未能建立连接

200端口命令成功。考虑使用PASV。425未能建立连接
EN

Stack Overflow用户
提问于 2013-10-22 11:12:13
回答 6查看 163.6K关注 0票数 30

我在Ubuntu12.04LTS中安装了FTP服务器。

现在,当我试图通过命令行ftp.exe从Windows 7连接到FTP服务器时,我成功地连接了,但无法获得目录列表。我搞错了

代码语言:javascript
运行
复制
200 PORT command successful. Consider using PASV.
425 Failed to establish connection. 
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-12-02 15:49:09

在使用passive之前尝试使用ls命令。

从FTP客户端,检查FTP服务器是否支持被动模式,登录后键入quote PASV

下面是连接到具有无源模式的vsftpd服务器的示例

vsftpdpasv_enable=NO

代码语言:javascript
运行
复制
# 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> 

vsftpdpasv_enable=YES

代码语言:javascript
运行
复制
# 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> 
票数 21
EN

Stack Overflow用户

发布于 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的作者)

票数 16
EN

Stack Overflow用户

发布于 2016-01-20 12:10:40

实际上,您的Windows防火墙正在阻止连接。您需要从Administrator将这些命令输入到cmd.exe中。

代码语言:javascript
运行
复制
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

如果有什么问题发生,那么您可以通过以下方法进行还原:

代码语言:javascript
运行
复制
netsh advfirewall firewall delete rule name="FTP" program=%SystemRoot%\System32\ftp.exe
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19516263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档