Centos

如何配置 vsftpd 以使用被動模式

  • December 10, 2019

每當我安裝vsftpdcentos,我只為使用者設置監獄環境,其餘的是預設配置vsftpd。我創建使用者並嘗試連接filezilaftp 客戶端,但我無法使用被動模式連接。我總是將其更改transfer settings為活動模式以成功連接到ftp server否則我得到

Error: Failed to retrieve directory listing

那麼有沒有辦法改變vsftp.conf文件中的任何指令,我們可以用被動模式連接到伺服器?

要為 vsftpd 配置被動模式,您需要在 vsftpd.conf 中設置一些參數。

pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090

這將啟用被動模式並將其限制為使用 11 個埠進行數據連接。這很有用,因為您需要在防火牆上打開這些埠。

iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT

如果在測試後一切正常,那麼保存防火牆的狀態

service iptables save

這將更新/etc/sysconfig/iptables文件。

要做到這一點是 CentOS 7,你必須使用新的 firewalld,而不是 iptables:

找到您的區域:

# firewall-cmd --get-active-zones
public
 interfaces: eth0

我的區域是“公共”,所以我將我的區域設置為公共,添加埠範圍,然後我們重新載入:

# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload

建立連接時會發生什麼

  • 您的客戶端在埠 21 上連接到 vsftpd 伺服器。
  • 伺服器響應客戶端,告訴它從上面指定的範圍連接到哪個埠。
  • 客戶端在指定埠上建立數據連接,會話繼續。

這裡對不同的 ftp模式有很好的解釋。

引用自:https://serverfault.com/questions/421161