Ftp
為什麼 vsftpd(防火牆後)返回其內部 ip 地址作為 pasv 地址?
我在另一個 Debian 防火牆後面的 Debian 伺服器上使用 vsftpd。natting 是正確的,我可以從外部連接到 ftp 伺服器。但是,當客戶端發出
PASV
命令時,ftp 伺服器返回其內部 IP (192.168.0.19)。我沒有
pasv_address
在 conf 文件中設置指令,以便“地址取自傳入連接的套接字”(從手冊中複製)。在我看來,當外部客戶端發出問題時PASV
,應該返回防火牆的外部 IP 地址,而當內部客戶端連接時,應該返回內部 FTP 伺服器的 IP。當我將
pasv_address
指令設置為防火牆的外部 IP 時,一切都在外部工作,但隨後在內部中斷。當我將其設置為內部 IP 地址或註釋掉 時pasv_address
,內部客戶端工作但外部客戶端不工作。有人對此有任何見解嗎?
**編輯1:**這是伺服器端日誌文件:
Thu Sep 7 10:36:15 2017 [pid 9093] FTP command: Client "x.x.x.x", "USER yyy" Thu Sep 7 10:36:15 2017 [pid 9093] [yyy] FTP response: Client "x.x.x.x", "331 Please specify the password." Thu Sep 7 10:36:15 2017 [pid 9093] [yyy] FTP command: Client "x.x.x.x", "PASS <password>" Thu Sep 7 10:36:15 2017 [pid 9092] [yyy] OK LOGIN: Client "x.x.x.x" Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP response: Client "x.x.x.x", "230 Login successful." Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP command: Client "x.x.x.x", "OPTS utf8 on" Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP response: Client "x.x.x.x", "200 Always in UTF8 mode." Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP command: Client "x.x.x.x", "PWD" Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP response: Client "x.x.x.x", "257 "/"" Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP command: Client "x.x.x.x", "CWD /DownloadProduction/" Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP response: Client "x.x.x.x", "250 Directory successfully changed." Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP command: Client "x.x.x.x", "TYPE A" Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP response: Client "x.x.x.x", "200 Switching to ASCII mode." Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP command: Client "x.x.x.x", "PASV" Thu Sep 7 10:36:15 2017 [pid 9094] [yyy] FTP response: Client "x.x.x.x", "227 Entering Passive Mode (192,168,0,19,192,27)."
**編輯 2:**我能夠使用 ProFTPD 完成這項工作。這是伺服器故障案例:防火牆後面的 ProFTPd 伺服器返回 WAN 和 LAN 連接的內部 IP 地址
如果您位於外部防火牆後面,則傳入連接實際上來自外部防火牆。所以伺服器IP地址就是它的內部IP地址。您所描述的是一種“正確”的行為。FTP 伺服器不知道(也不能知道)防火牆的外部 IP 地址。
您可以做的是為 FTP 伺服器分配兩個 IP 地址。一種外用,一種內服。並配置FTP伺服器返回防火牆外部IP地址,用於對外部IP地址的連接;和內部 IP 地址用於內部 IP 地址上的連接。
雖然我不確定,如果 vsftpd 確實允許這樣的配置。ProFTPD 可以。