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

通过NAT在端口2000上运行的FTP服务器不在被动模式下工作,ftp,port,portforwarding,nat,passive-mode,Ftp,Port,Portforwarding,Nat,Passive Mode,我在一台连接到路由器的局域网pc上运行windows上的文件Zilla ftp服务器。我试图通过在路由器中添加端口转发规则(NAT),使用路由器WAN ip(WAN到LAN)从路由器外部的网络访问FTP服务器。根据以下配置,我这里有2个案例。第一台工作,而第二台不工作(处于被动模式) 注意:我在Windows7防火墙中添加了自定义入站规则 ftp服务器正在运行的位置 配置#1 Filezilla FTP server port: 21 Passive port range: 50000-5100

我在一台连接到路由器的局域网pc上运行windows上的文件Zilla ftp服务器。我试图通过在路由器中添加端口转发规则(NAT),使用路由器WAN ip(WAN到LAN)从路由器外部的网络访问FTP服务器。根据以下配置,我这里有2个案例。第一台工作,而第二台不工作(处于被动模式)

注意:我在Windows7防火墙中添加了自定义入站规则 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
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
注:这两种情况都适用于LAN-LAN网络


我的猜测是,配置#1之所以有效,是因为NAT足够聪明,能够在服务器的
PASV
响应中转换IP地址。但它可能只对标准FTP端口执行此操作


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

当前,FTP服务器正在向客户端发送其内部IP地址。客户端显然无法连接到IP地址

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


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


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

如果使用TLS/SSL,配置1是否有效?测试使用的FTP客户端是什么?#1始终在没有TLS/SSL的情况下工作。我没有在这里使用TLS/SSL功能,它是未经检查的<代码>(000064)28/2/2017 15:44:29 PM-(未登录)(192.168.1.2)>认证TLS(000064)28/2/2017 15:44:29 PM-(未登录)(192.168.1.2)>502 SSL/TLS身份验证不允许(000064)28/2/2017 15:44:29 PM-(未登录)(192.168.1.2)>认证SSL(000064)28/2/2017 15:44:29 PM-(未登录)(192.168.1.2)>502不允许SSL/TLS身份验证,请启用并测试它。在Android.192.168.10.84中使用移动客户端和FTP是WAN ip,192.168.1.2是LAN,所以我应该在设置<代码>编辑>设置>被动模式设置>IPv4特定>外部服务器IP地址中给出192.168.10.84,我将首先尝试此设置,然后尝试TLS/SSL。给我点时间。。
227 Entering Passive Mode (192,168,1,2,195,85)