我在本地网络的一个本地服务器上安装了FileZilla ftp服务器。我可以使用ftp命令成功地列出用户user的文件夹(实际上,我通过Microsoft在windows 10中安装了Ubuntu )。
ftp -p 192.168.11.24 21
Connected to 192.168.11.24.
220-FileZilla Server 0.9.60 beta
220-written by Tim Kosse (tim.kosse@filezilla-project.org)
220 Please visit https://filezilla-project.org/
Name (192.168.11.24:ms): user
331 Password required for user
Password:
230 Logged on
Remote system type is UNIX.
ftp> nlist /
227 Entering Passive Mode (192,168,11,24,203,217)
150 Opening data channel for directory listing of "/"
/crm-offers-browse-2018-03-08.xlsx
/log_file.txt
/model.png
226 Successfully transferred "/"如果我尝试使用telnet (我使用Wireshark嗅探了命令),那么nlist就不能工作。它返回425 Can't open data connection。我在这里错过了什么?

telnet -e _ 192.168.11.24 21
Telnet escape character is '_'.
Trying 192.168.11.24...
Connected to 192.168.11.24.
Escape character is '_'.
220-FileZilla Server 0.9.60 beta
220-written by Tim Kosse (tim.kosse@filezilla-project.org)
220 Please visit https://filezilla-project.org/
USER user
331 Password required for user
PASS user
230 Logged on
SYST
215 UNIX emulated by FileZilla
PASV
227 Entering Passive Mode (192,168,11,24,205,245)
NLST /
425 Can't open data connection for transfer of "/"发布于 2018-05-14 07:52:16
答案在这篇文章中有描述:Telnet与被动FTP。
不能使用Telnet客户端通过FTP协议检索文件。 虽然可以通过在Telnet控制台上键入FTP命令来模拟FTP客户端,但不能以这种方式进行文件传输。这是因为对于文件传输,您需要一个单独的数据传输连接,而Telnet客户端不能这样做。 这就是FTP服务器失败的原因。在活动模式下,它无法连接回客户端机器,因为没有监听。在被动多点中,它超时等待客户端连接到其数据端口。
https://stackoverflow.com/questions/50324402
复制相似问题