防火墙后面的 ProFTPd 服务器返回内部 IP 地址

防火墙后面的 ProFTPd 服务器返回内部 IP 地址

我有 2 台服务器,一台用作网关/路由器,另一台用作服务器。我使用 iptables 来转发以下端口:21、、2065500-65600当我使用Filezilla或连接时Total Commander,ftp 客户端知道10.10.0.1代表内部 IP 地址并切换到外部 IP 地址。但是,NPPftp插件从Notepad++连接到服务器,但当它切换到被动模式时,它会尝试内部 IP 地址并冻结。

输出:

220 ProFTPD x.x.x 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 地址?

答案1

来自文档http://www.proftpd.org/docs/howto/NAT.html,有一个 MasqueradeAddress 地址可以使用,并且您要定义允许的端口范围(或者像 MadHatter 所说的那样使用 conntrack_ftp 模块)

答案2

在新版本中,您不需要任何伪装。要实现主动和被动传输,您需要在客户端和服务器端打开以下端口:

  • 输入:TCP 20,21,60000-65535
  • 输出:TCP 20,21,60000-65535

然后更新 FTP 以使用被动端口范围 60000-65535。然后在客户端使用被动模式(如果是 NATed IP),否则主动模式也可以工作。详细信息和说明 -http://sysadm.pp.ua/linux/proftpd-ubuntu-16-04.html

相关内容