Centos
如何配置 vsftpd 以使用被動模式
每當我安裝
vsftpd
時centos
,我只為使用者設置監獄環境,其餘的是預設配置vsftpd
。我創建使用者並嘗試連接filezila
ftp 客戶端,但我無法使用被動模式連接。我總是將其更改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模式有很好的解釋。