Linux
防火牆後的 ProFTPd 伺服器返回內部 IP 地址
我有兩台伺服器,一台作為網關/路由器,另一台作為伺服器。我使用 iptables 埠轉發以下埠:
21
,20
,65500-65600
. 當我使用Filezilla
or連接時Total Commander
,ftp 客戶端知道它10.10.0.1
代表內部 IP 地址並切換到外部 IP 地址。但是,NPPftp
外掛 fromNotepad++
連接到伺服器,但是當它切換到被動模式時,它會嘗試內部 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 地址?
從文件http://www.proftpd.org/docs/howto/NAT.html,有一個 MasqueradeAddress 地址要使用,你要定義允許的埠範圍(或者像 MadHatter 說的那樣使用 conntrack_ftp 模組)
在新版本中,您不需要任何偽裝。對於主動和被動傳輸的可能性,您需要在客戶端和伺服器端打開下一個埠:
- 輸入: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