You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Telnet列出FTP目录?遇425数据连接错误求解决

FTP被动模式手动Telnet操作的关键遗漏点

嘿,我一眼就看出问题所在了——你用Telnet手动操作时,只完成了控制连接的命令,却没主动建立FTP被动模式需要的数据连接!这就是为什么NLST返回425 Can't open data connection错误的核心原因。

先给你捋清楚FTP被动模式的完整流程,你就明白漏了啥:

  • 你已经通过Telnet在21端口建立了控制连接,完成登录,这部分完全没问题
  • 发送PASV后,服务器返回了被动模式的IP和端口(比如你日志里的(192,168,11,24,205,245)),这个端口是需要你手动去建立新连接的
  • ftp命令是自动帮你做了「解析端口→建立数据连接→接收数据」这一系列操作,所以它能正常拿到目录列表

正确的手动Telnet操作步骤

按下面的步骤来,就能解决425错误:

  1. 保持你原来的控制连接窗口不变(已经登录成功的那个):
telnet -e _ 192.168.11.24 21
# 输入USER和PASS完成登录,发送SYST确认连接状态
  1. 在控制连接里发送PASV,得到类似这样的响应:
227 Entering Passive Mode (192,168,11,24,205,245)

把最后两个数字转换成实际端口:205 * 256 + 245 = 52725(这是FTP被动模式的标准端口计算规则)
3. 新开一个命令行窗口,建立数据连接:

telnet 192.168.11.24 52725
  1. 回到原来的控制连接窗口,发送NLST /命令

这时候你就能在新开的数据连接窗口里看到目录列表了,控制连接也会返回成功的响应:150 Opening data channel...226 Successfully transferred...


补充说明

因为你用ftp命令能正常工作,说明FileZilla Server的被动模式端口范围已经在防火墙里开放了,不用再调整服务器设置——只是Telnet手动操作需要你自己处理数据连接这一步,不像客户端那样自动化完成所有流程。

内容的提问来源于stack exchange,提问作者broadband

火山引擎 最新活动