vsftpd 設定 - 續

使用者連線 FTP時,常常發生無法列出目錄的情形

[R] 220 Welcome to XXXX FTP service.
[R] USER xxxxx
[R] 331 Please specify the password.
[R] PASS (hidden)
[R] 230 Login successful.
[R] SYST
[R] 215 UNIX Type: L8
[R] PASV
[R] 227 Entering Passive Mode (x,x,x,x,7,208)
[R] Opening data connection IP: x,x,x,x PORT: xxxx
[R] LIST -al
[R] 425 Failed to establish connection

經過判斷,有可能是因為開啟防火牆 ( iptables ) 關閉不必要的 port,導致 Passive Mode 所使用的 1024 以上的 port 被封鎖,所導致的情形。關於 Passive Mode 相關的討論,請見鳥哥的這一段文章

處理方式 一
修改 /etc/vsftpd.conf ,加入以下的設定:

pasv_enable=YES
pasv_max_port=5005
pasv_min_port=5000

並在 iptable 的設定裡面,加上以下規則

iptables -A INPUT -p tcp --dport 5000:5005 -j ACCEPT

就可以解決這個問題。

簡單說明:

將 vsftpd 啟動 Passive Mode ,限制所使用等待連線的 ports 在 5000-5005,然後開啟 iptables 裡面 port 5000-5005 可以被連接。

處理方式 二

Ftp client 端的軟體,請選擇預設模式或主動模式,不要使用被動模式 ( Passive Mode ),但是有一個缺點,有時候 list 要非常久。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *