我在其中一台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网络中工作。
答案 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地址进行数据连接。