上周,当我通过 FTP 将网站文件上传到我们的服务器时,传输失败。从那时起,我就无法在工作时连接到服务器。
只要我在蜂窝网络上,我就可以在家里或使用手机上的 FTP 应用顺利连接。我无法从工作网络上的任何机器访问服务器。这也不是凭证问题。我总是收到错误消息说无法建立连接,并且从未提示我输入凭证。
我彻底改变了没有什么在我们的域控制器或防火墙/路由器上。它工作时打开的所有端口现在仍然打开。
我联系了我们的 ISP(托管网站/FTP 服务器),但他们没有发现任何问题。他们坚持认为一定是办公室里有什么东西阻碍了访问。由于 ISP 托管服务器,我无法重新启动它,也不知道服务器软件是什么。
我还测试了对其他 FTP 服务器(ea.com、nvidia.com 等)的访问,所以我知道端口 21 没有被阻止。我完全不知所措。任何帮助都非常感谢。
我在这里上传了一个 Wireshark 文件:http://www.cloudshark.org/captures/7dde165d4797?filter=ip.src%20%3D%3D%2066.118.64.208%20%7C%7C%20ip.dst%20%3D%3D%2066.118.64.208 来源和和为 FTP 服务器过滤了目标 IP 地址。结果发现每次连接尝试都有 2 个返回数据包。这是否能进一步解释问题?
我的防火墙/路由器是 Netgear ProSafe VPN 防火墙 FVS318v3。有人提到了 NAT 问题 - 我在日志中看到了几个这样的条目:
Fri, 2013-11-08 14:10:27 - [Unable to free TCP NAT port for 452b000e:52490 from LAN]
。
另外,我可以从我的网络 ping 该服务器,但是我无法通过端口 21 进行 telnet 访问。
Could not open connection to the host, on port [21]:Connect failed
答案1
如果端口 21 已打开,这听起来更像是防火墙问题。但话虽如此,您知道您使用的 FTP 服务器是否正在使用被动端口吗?某些 FTP 服务器和防火墙组合需要打开被动端口以及端口 21。
被动端口通常设置在 FTP 服务器端,范围是 49152 到 65534(例如来自 ProFTPD),但也可以手动设置为不同的范围,如 50000 到 60000。
在这种情况下,端口 21 会接受您的连接,但如果被动端口被阻止(在文件传输过程中会发挥作用),则不会发生文件传输。当我在几台服务器上设置 IPTables 时,我几次被坑了,并学到了惨痛的经验。必须在端口 21 之上考虑这些被动端口。