我正在尝试通过 FTP 连接到服务器(上传新网站)。使用 FileZilla 时收到以下错误消息
Status: Connecting to xx.xx.xx.xx:21...
Status: Connection established, waiting for welcome message...
Response: 220 Microsoft FTP Service
Command: USER ***********
Response: 331 Password required for speyleis.
Command: PASS *********
Response: 230 User logged in.
Command: SYST
Response: 215 Windows_NT
Command: FEAT
Response: 211-Extended features supported:
Response: LANG EN*
Response: UTF8
Response: AUTH TLS;TLS-C;SSL;TLS-P;
Response: PBSZ
Response: PROT C;P;
Response: CCC
Response: HOST
Response: SIZE
Response: MDTM
Response: REST STREAM
Response: 211 END
Command: OPTS UTF8 ON
Response: 200 OPTS UTF8 command successful - UTF8 encoding now ON.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is current directory.
Command: TYPE I
Response: 200 Type set to I.
Command: PASV
Error: Connection timed out
Error: Failed to retrieve directory listing
奇怪的是,我的朋友(目前在中国)可以毫无问题地访问它。我通常可以毫无问题地访问服务器,所以甚至不知道为什么这会很困难。
答案1
看起来 FTP 服务器可能不支持被动模式 FTP (PASV)。我会将您的 FTP 客户端切换为主动模式(也称为 PORT 模式),看看您是否可以连接。
答案2
从 FEAT 响应来看,该服务器似乎不太可能不支持被动模式。我想知道我们是否只是看到了日志记录失败,即在客户端无法打开数据通道后服务器的 PASV 响应根本没有写入...所以我们看到的超时是打开数据通道的超时,而不是控制通道上的 timeone。
另一种可能性是“协议感知”防火墙配置错误。一些防火墙会监控 FTP 控制通道并扫描 PORT 或 PASV 命令,然后动态打开相应的端口。如果防火墙能正常工作,那就太好了。如果这是在笔记本电脑上,请将其带回家,然后看看它是否能正常工作。如果是办公室的台式机,请看看您是否能找到管理员,让他允许您将其放在 DMZ 上进行快速测试。