adj 2007-11-29 21:55
解決 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 也必須做設定。[code]pasv_enable=YES
pasv_min_port=65400
pasv_max_port=65410 [/code]上範例是開啟 65400~65410 Port 給 PASV 使用。
需要注意的是 pasv_min_port 跟 pasv_max_port 這二個必須在有設定 pasv_enable=YES 的情況下才會生效。也就是在 vsftpd.conf 內沒有 pasv_enable=YES 這一行的話,會出現 OOPS 的參數無效錯誤。
接著開放 Linux 上的防火牆... 使用以下的指令:[code]iptables -A INPUT -p tcp --dport 65400:65410 -j ACCEPT[/code]總之,如果 vsftp 是架設在 IP 分享器後面,不論用不用 PASV 都必需作設定,不然 Timeout 的狀況就會一直發生,相信上面的設定可以解決大多數人的困擾。
資料參考來源:
[url=http://www.neo.com.tw/archives/000461.html]http://www.neo.com.tw/archives/000461.html[/url]