vsftpd設置被動模式


完整配置

listen=yes
listen_port=21
max_clients=100
max_per_ip=10
local_max_rate=5120000
anonymous_enable=no
local_enable=yes
write_enable=no
chroot_local_user=yes
chroot_list_enable=yes
chroot_list_file=/etc/vsftpd/chroot_list
guest_enable=yes
guest_username=kingsoft
virtual_use_local_privs=yes
user_config_dir=/etc/vsftpd/user_config
pasv_enable=yes
pasv_min_port=4500
pasv_max_port=5000
tcp_wrappers=yes
xferlog_enable=yes
xferlog_file=/var/log/ftp/vsftpd.log
idle_session_timeout=600
data_connection_timeout=120
accept_timeout=60
connect_timeout=60
connect_from_port_20=no
local_umask=022
pam_service_name=vsftpd.vu
pasv_address=本機ip
pasv_addr_resolve=yes

說明:

主動模式
Port_enable=YES 開啟主動模式 Connect_from_port_20=YES 當主動模式開啟的時候 是否啟用默認的20端口監聽 Ftp_date_port=%portnumber% 上一選項使用NO參數是 指定數據傳輸端口
被動模式
PASV_enable=YES   開啟被動模式
PASV_min_port=%number% 被動模式最低端口
PASV_max_port=%number% 被動模式最高端口

iptables中開放這段端口

service iptables start 打開防火牆

iptables -I INPUT  -p tcp  --dport 10020:10040  -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT

 在被動模式,服務器做了NAT,例如雲主機,這時候我們用特定的IP訪問機器,其實還轉了一層。FTP客戶端訪問機器可能會沒響應。具體情況為登錄成功,但是list目錄和文件的時候卡住。

這時候我們用lsof -i:21

vsftpd   22411   nobody    0u  IPv4  68905      0t0  TCP 10.140.41.65:ftp->10.10.10.98:43380 (ESTABLISHED)
vsftpd   22411   nobody    1u  IPv4  68905      0t0  TCP 10.140.41.65:ftp->10.10.10.98:43380 (ESTABLISHED)

這時候可以看到機器的真正IP。

我們需要設置

pasv_address=本機ip【就是我們能訪問的外網IP】
pasv_addr_resolve=yes

這樣ftp客戶端就可以解析IP,訪問成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM