访问 FTP 服务器

访问 FTP 服务器

我面临一个令人困惑的问题。在过去的一个月里,我使用了一台运行 Ubuntu Server 14.04 的 FTP 服务器,它运行得非常完美。在那段时间里,我一直在使用 2000 年代初的旧 Apple 路由器,所以需要升级。我升级到了新的、快速的 Linksys WRT1900ac。它的速度符合我的要求,但我遇到了一个小问题。我无法再远程访问 FTP 服务器了。当我将计算机连接到网络并使用服务器的本地 IP 地址时,它可以完美运行。不幸的是,当我尝试从路由器的 WAN IP 远程连接到服务器时,我收到连接超时错误。

服务器具有静态 IP 地址,无法连接到互联网。所有路由器 IP 和网关 IP 都已正确设置,但计算机仍然无法连接。这可能是一个问题。另一个问题是,可能是路由器导致了这个问题?我可以通过 ping 和 Linksys 的智能 WIFI 远程访问路由器,但 telnet 失败。也可能是路由器无法转发端口?我已经为 FTP 打开了端口 21,并尝试打开端口 20。

任何帮助都将不胜感激。提前谢谢您。

答案1

大多数人需要他们的家庭网关进行 NAT(特别是 NAPT),而 NAT 会破坏 FTP。

“被动模式”FTP 现在是大多数 FTP 客户端的默认模式,它是一种避免客户端 NAT 破坏 FTP 的变通方法。但是,如果 FTP 服务器位于 NAT 后面,则服务器端 NAT 会破坏被动模式 FTP,而传统 FTP(现在称为“主动模式”FTP)则可以正常工作。

NAT 网关可以包含称为 FTP 应用层网关 (ALG) 的特殊代码,这些代码基本上知道 FTP 的工作原理并确保 NAT 不会破坏它。真正优秀的 FTP ALG 可以解决两个都“NAT后面的客户端建立主动模式连接”和“NAT后面的服务器接收被动模式连接”的问题,但遗憾的是,许多人只是解决了“NAT后面的客户端”的情况。

Apple 一直擅长在其 AirPort 基站产品系列(包括 Extremes、Expresses 和 Time Capsules)中安装一个不错的 FTP ALG。他们的 ALG 涵盖客户端和服务器情况。您仍然需要设置端口映射以将端口 21 映射到特定的私有 IP 地址和端口,否则基站将不知道哪台机器是您的 FTP 服务器。

除了将您的家庭网关升级为具有合适的 FTP ALG 的网关之外,如果您强制您的 FTP 客户端使用传统的“主动”FTP 模式,您可能能够连接到您的服务器,但如果您的客户端也在 NAT 后面,除非客户端 NAT 具有合适的 FTP ALG,否则该客户端 NAT 可能会破坏它。

相关内容