這時有二種選擇,一種是強迫 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
上範例是開啟 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
總之,如果 vsftp 是架設在 IP 分享器後面,不論用不用 PASV 都必需作設定,不然 Timeout 的狀況就會一直發生,相信上面的設定可以解決大多數人的困擾。資料參考來源:
http://www.neo.com.tw/archives/000461.html