我想知道为什么我的 FTP 服务器无法工作。我在一台旧电脑上托管了一个 Apache Web 服务器,并决定制作一个并行 FTP 服务器来将文件上传到网站。
所以我安装了 FileZilla(服务器,而不是客户端)。我配置了用户帐户、默认目录等。我转发了端口 20 和 21,但当我尝试访问它时,它超时了。如果我在 LAN 或 WAN 上,我输入适当的 IP 或动态地址,它会提示我输入密码。我输入了正确的密码,FileZilla 会验证它,然后它会尝试检索目录。
我还允许端口 20 和 21 通过防火墙(传入、传出、TCP、UDP 以确保安全)。
超时时间(约 15 秒)过后,它会因此出错。我已在 Chrome、Firefox、Windows Explorer 和 FileZilla 客户端中尝试过此操作。每次都会超时,但只有在连接到服务器并验证我的凭据后才会超时。
我想知道这里的问题是什么。我的 ISP 不会限制任何协议或端口,无论是 HTTP、BitTorrent 还是 FTP。这仅仅是因为上传速度慢吗?我的上传速度为 500 kB/s,所以我认为这不是问题所在。如果我在这里遗漏了什么,有人可以告诉我吗?我彻底扫描了互联网,仍然找不到其他人遇到此问题。
答案1
该问题很可能与您的 NAT/防火墙/路由器和 FTP 服务器的配置有关。
FTP 服务器有两种模式:主动和被动。(您可能正在使用主动模式,并且切换到被动模式对您来说也很有可能有效)。主动模式发起了从服务器到客户端的第二个连接,而路由器可能无法正确转换该连接。
看一下http://slacksite.com/other/ftp.html以获得更详细的解释。
(这可能对您没有帮助,但如果您使用的是基于 Linux 的路由器,则可以使用特殊的连接跟踪模块来解决这个问题 - nf_conntrack_ftp 和 nf_nat_ftp”它们被设计用于解决这些限制并与防火墙“配合良好”)