通过NAT在端口2000上运行的FTP服务器无法在被动模式下工作

时间:2017-02-28 08:04:51

标签: ftp port portforwarding nat passive-mode

我在其中一台LAN连接到我的路由器的Windows上运行FILE-Zilla ftp服务器。我试图通过添加端口转发规则(NAT),使用路由器WAN IP (WAN到LAN)从路由器外部的网络访问FTP服务器路由器。根据以下配置,我在这里有2个案例。 1st正在运行 2nd不是 (处于被动模式)。

  

注意:我在Windows 7防火墙中添加了自定义入站规则   ftp服务器正在运行的地方。

配置#1

Filezilla FTP server port: 21
Passive port range: 50000-51000

NAT - external port: 21
NAT - internal port: 21

Windows firewall inboud rule port allow port: 21, 50000-51000

Client connecting to: <Wan IP>:21

如果客户端尝试使用主动/被动模式

进行连接,则此功能正常

配置#2

Filezilla FTP server port: 2000
Passive port range: 50000-51000

NAT - external port: 21
NAT - internal port: 2000

Windows firewall inboud rule port allow port: 2000, 50000-51000

Client connecting to: <Wan IP>:21

仅当客户端设置为活动模式时,此功能才有效。 客户端无法使用被动模式配置。客户端可以连接并且登录成功但是在服务器端以错误消息结束,没有任何目录列表。

227 Entering Passive Mode (192,168,1,2,195,85)
  

注意:两种情况都在LAN-LAN网络中工作。

1 个答案:

答案 0 :(得分:1)

我的猜测是配置#1的工作原理只是因为NAT足够智能,可以从服务器转换PASV响应中的IP地址。但它可能仅适用于标准FTP端口。

您应该告诉FileZilla FTP服务器它的外部IP地址。转到编辑&gt;设置&gt;被动模式设置&gt; IPv4特定&gt;被动模式传输的外部服务器IP地址

目前,您的FTP服务器正在将其内部IP地址发送到客户端。而且客户端显然无法连接到IP地址。

让NAT转发被动端口范围内的端口(50000-51000)。

虽然更改会破坏LAN-LAN连接。要同时允许LAN和WAN连接,请检查NAT是否可以配置为转换非标准端口的IP地址。虽然翻译只适用于未加密的连接。你不应该使用未加密的连接!

最后一个选项是使用扩展被动模式(EPSV),如果您的客户允许的话。在扩展被动模式下,响应中没有IP地址。 FTP客户端使用FTP服务器的主IP地址进行数据连接。