遇到此问题的用户在第一次尝试该命令时意外点击了 Windows 防火墙提示上的取消以允许连接。
尝试使用“put”命令后,它挂在以下行:
200 PORT subcommand request successful
我尝试允许 ftp.exe 程序通过防火墙,无论是入站还是出站,但它仍然像上面一样挂起。我不确定是否有办法从第一次提示他时恢复提示,并这次点击允许。
经过一番挖掘,我了解到 ftp 程序正在尝试使用“主动 ftp 连接”,它会告诉服务器一个随机端口号来建立文件传输。
答案1
问题在于主动模式。当使用该模式时,服务器会尝试与客户端建立连接,但防火墙和 NAT 会阻止此操作。每个 SoHo 路由器都会对用户系统和互联网之间的流量进行 NAT。建议使用被动模式。
不幸的是,Windows 命令行 FTP 客户端 (ftp.exe) 不支持被动模式。不过,有许多免费 FTP 客户端对于 Windows 来说确实如此 - 在许多 Windows 中它甚至是默认设置。
以下是 StackOverflow 上讨论此问题的几篇帖子: