为什么某些FTP被动模式响应有时会因关闭括号的方式而改变。
我希望对PASV命令的FTP响应为:
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2)\r\n
相反,我得到了:
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2\r\n\r\n
结束括号,另外还有\ r \ n而不是
我正在为专有平台编写软件,而我正在使用我无法修改的FTP库。如果没有那个结束,那个图书馆显然不起作用。
从Internet访问服务器(在NAT中)时会出现此问题。在本地网络中,结束括号就在那里。
示例:从LAN我得到:
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2)\r\n
其中h1,h2,h3,h4
是私有IP地址h1.h2.h3.h4
来自互联网:
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2\r\n\r\n
其中h1,h2,h3,h4
是公共IP地址h1.h2.h3.h4
,但请注意缺少的结束括号和其他\r\n
尝试了IIS FTP和Filezilla,结果是一样的。此外,IP地址和端口是正确的(我已经通过在该IP /端口上打开另一个telnet连接来测试它。)
不幸的是,我没有关于服务器所在网络的更多细节。
这种行为可能是什么原因?路由器,防火墙?可以解决吗?我排除了FTP服务器本身,因为从服务器本地网络内部连接时响应是正确的。
谢谢。