我在通过 FileZilla 客户端连接到 FileZilla 服务器时遇到困难。但尝试在同一网络上连接到本地地址时,我能够成功连接(因此服务器可以正常运行)。
在这些测试中,FileZilla 客户端使用普通 FTP 的被动模式。
FileZilla 服务器日志
(000042)3/3/2017 1:46:15 AM - (not logged in) (xxx.xxx.xxx.xxx)> Connected on port 2121, sending welcome message...
(000042)3/3/2017 1:46:15 AM - (not logged in) (xxx.xxx.xxx.xxx)> 220-FileZilla Server 0.9.60 beta
(000042)3/3/2017 1:46:15 AM - (not logged in) (xxx.xxx.xxx.xxx)> 220-written by Tim Kosse ([email protected])
(000042)3/3/2017 1:46:15 AM - (not logged in) (xxx.xxx.xxx.xxx)> 220 Please visit https://filezilla-project.org/
(000042)3/3/2017 1:46:15 AM - (not logged in) (xxx.xxx.xxx.xxx)> USER admin
(000042)3/3/2017 1:46:15 AM - (not logged in) (xxx.xxx.xxx.xxx)> 331 Password required for admin
(000042)3/3/2017 1:46:15 AM - (not logged in) (xxx.xxx.xxx.xxx)> PASS ********
(000042)3/3/2017 1:46:15 AM - admin (xxx.xxx.xxx.xxx)> 230 Logged on
(000042)3/3/2017 1:46:15 AM - admin (xxx.xxx.xxx.xxx)> PWD
(000042)3/3/2017 1:46:15 AM - admin (xxx.xxx.xxx.xxx)> 257 "/" is current directory.
(000042)3/3/2017 1:46:15 AM - admin (xxx.xxx.xxx.xxx)> TYPE I
(000042)3/3/2017 1:46:15 AM - admin (xxx.xxx.xxx.xxx)> 200 Type set to I
(000042)3/3/2017 1:46:16 AM - admin (xxx.xxx.xxx.xxx)> PASV
(000042)3/3/2017 1:46:16 AM - admin (xxx.xxx.xxx.xxx)> 227 Entering Passive Mode (172,16,1,9,27,5)
(000042)3/3/2017 1:46:16 AM - admin (xxx.xxx.xxx.xxx)> MLSD
(000042)3/3/2017 1:46:26 AM - admin (xxx.xxx.xxx.xxx)> 425 Can't open data connection for transfer of "/"
FileZilla 客户端日志
Status: Connection established, waiting for welcome message...
Status: Logged in
Status: Retrieving directory listing...
Status: Directory listing of "/" successful
Status: Disconnected from server
Status: Resolving address of www.example.com
Status: Connecting to yyy.yyy.yyy.yyy:2121...
Status: Connection established, waiting for welcome message...
Status: Logged in
Status: Retrieving directory listing...
Status: Server sent passive reply with unroutable address. Using server address instead.
Command: MLSD
Response: 425 Can't open data connection for transfer of "/"
Error: Failed to retrieve directory listing
答案1
您很可能没有在服务器的防火墙上打开数据连接端口(或者没有在 NAT 上转发端口,如果有的话)。
检查 FTP 服务器正在使用哪些端口并打开/转发它们。
另一个问题是,您没有在 FTP 服务器中配置正确的外部 IP 地址。
FileZilla 客户端可以解决这个问题:
服务器发送了带有不可路由地址的被动回复。请改用服务器地址。
但这只是一种启发式方法,并非所有 FTP 客户端都会这样做。因此,即使这不是您当前遇到的问题,也请确保您也修复了这个问题。
查看用于被动模式传输的外部服务器 IP 地址上面截图中的部分。
请参阅我的文章FTP 的网络配置了解一些背景信息。
答案2
以下答案来自filezilla wiki:
https://wiki.filezilla-project.org/Setting_up_your_Router_to_Fix_the_%22425_code%22
总结起来有3个步骤:
- 设置密码模式端口范围。
- 在路由器上创建端口转发规则。
- 在 Windows 防火墙上创建一条规则,以允许从 FTP 服务器进出流量。
详情如下:
(000042)3/3/2017 1:46:16 AM - admin (xxx.xxx.xxx.xxx)> 227 Entering Passive Mode (172,16,1,9,27,5)
(000042)3/3/2017 1:46:16 AM - admin (xxx.xxx.xxx.xxx)> MLSD
(000042)3/3/2017 1:46:26 AM - admin (xxx.xxx.xxx.xxx)> 425 Can't open data connection for transfer of "/"
根据倒数第三行的日志信息
进入被动模式(172,16,1,9,27,5)
passmode使用的端口是27*256+5=6917
步骤 1,设置 Filezilla 服务器被动模式:
我的情况是 6000-6100
第 2 步,路由器端口转发设置:由于您要将公共 IP 路由到该服务器,因此您需要根据该端口范围在路由器上创建端口转发条目:
步骤 3,Windows 防火墙:接下来,检查您的 Windows 防火墙是否有允许来自 Filezilla 程序的流量的规则,如果没有,则创建一个