解决Linux vsftpd被动模式连接问题,可按以下步骤操作:
-
启用被动模式:编辑配置文件
/etc/vsftpd/vsftpd.conf,添加或修改以下参数:pasv_enable=YES # 启用被动模式 pasv_min_port=10000 # 设置被动模式最小端口(建议10000+) pasv_max_port=10100 # 设置被动模式最大端口重启服务:
sudo systemctl restart vsftpd。 -
配置防火墙:
- iptables:开放被动模式端口范围,添加规则:
sudo iptables -A INPUT -p tcp --dport 10000:10100 -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 10000:10100 -j ACCEPT sudo service iptables save - firewalld:使用命令开放端口:
sudo firewall-cmd --permanent --add-port=10000-10100/tcp sudo firewall-cmd --reload
- iptables:开放被动模式端口范围,添加规则:
-
检查内核模块:加载FTP相关内核模块(部分系统需手动加载):
sudo modprobe ip_conntrack_ftp sudo modprobe ip_nat_ftp -
验证配置:
- 使用FTP客户端(如FileZilla)连接时,手动选择被动模式(若未自动识别)。
- 查看服务器日志
/var/log/vsftpd.log,确认无错误信息。
注意:确保被动模式端口未被其他服务占用,且客户端与服务器的网络连通正常。