我有2个服务器,一个作为网关/路由器,另一个作为服务器。 我使用iptables来转发以下端口: 65500-65600 。 当我连接Filezilla或Total Commander ,ftp客户端知道10.10.0.1表示内部IP地址并切换到外部IP地址。 但是, Notepad++的NPPftp插件连接到服务器,但是当它切换到被动模式时,它会尝试内部IP地址并冻结。
输出:
220 ProFTPD xxx Server [10.10.0.1] -> USER www 331 Password required for www -> PASS *HIDDEN* 230 User www logged in -> TYPE A 200 Type set to A -> MODE S 200 Mode set to S -> STRU F 200 Structure set to F -> PWD 257 "/" is the current directory Connected -> CWD / 250 CWD command successful -> PASV 227 Entering Passive Mode (10,10,0,1,255,222). -> LIST -al Failure retrieving contents of directory /
有没有办法从iptables返回被动端口的外部IP地址?
从doc http://www.proftpd.org/docs/howto/NAT.html ,有一个MasqueradeAddress地址使用,你要定义的端口范围允许(或使用像MadHatter说conntrack_ftp模块)
在新版本中,你不需要任何伪装。 对于主动和被动传输的可能性,您需要在客户端和服务器端打开下一个端口:
然后更新FTP以使用无源端口范围60000-65535。 然后在客户端使用被动模式(NAT的IP情况下)其他明智的主动将工作以及。 详细信息和说明 – http://sysadm.pp.ua/linux/proftpd-ubuntu-16-04.html