ADJ網路實驗室
打印

[分享] 解決 Firewall 後面架設 VSFTP 的連線逾時(Timeout)情形

解決 Firewall 後面架設 VSFTP 的連線逾時(Timeout)情形

如果 FTP Server 在 IP 分享器後面,在本地端的網域不會出問題,但是外面的 FTP Client 連進來非常容易出現 Connection Timeout 的狀況。

這時有二種選擇,一種是強迫 FTP Client 使用 PORT 連線,也就是關閉 PASV。

這時就必須設定 FTP Server 了。若是 Proftp 在 PASV 無法連線時會自己轉成 PORT 模式,所以比較不會有問題。vsftp 則必須設定 vsftpd.conf 的 pasv_enable=NO 。

如果只是消極的關閉 PASV ,那大概也不用這篇文章了。^^

所以我們走第二種選擇開啟 PASV 的話,vsftpd.conf 也必須做設定。
複製內容到剪貼板
代碼:
pasv_enable=YES
pasv_min_port=65400
pasv_max_port=65410  
上範例是開啟 65400~65410 Port 給 PASV 使用。

需要注意的是 pasv_min_port 跟 pasv_max_port 這二個必須在有設定 pasv_enable=YES 的情況下才會生效。也就是在 vsftpd.conf 內沒有 pasv_enable=YES 這一行的話,會出現 OOPS 的參數無效錯誤。

接著開放 Linux 上的防火牆... 使用以下的指令:
複製內容到剪貼板
代碼:
iptables -A INPUT -p tcp --dport  65400:65410 -j ACCEPT
總之,如果 vsftp 是架設在 IP 分享器後面,不論用不用 PASV 都必需作設定,不然 Timeout 的狀況就會一直發生,相信上面的設定可以解決大多數人的困擾。

資料參考來源:
http://www.neo.com.tw/archives/000461.html





TOP

ARTERY.cn