VSFTP在CentOS上的防火墙配置指南
一 环境判断与准备
systemctl status firewalld(若未运行,说明可能是 iptables 环境)。systemctl start vsftpd && systemctl enable vsftpdcp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak二 使用 firewalld 的配置(CentOS 7/8/9)
firewall-cmd --permanent --add-service=ftpfirewall-cmd --reloadfirewall-cmd --permanent --add-port=21/tcpfirewall-cmd --permanent --add-port=10060-10070/tcpfirewall-cmd --reloadfirewall-cmd --list-ports、firewall-cmd --list-services | grep ftppasv_min_port/pasv_max_port 一致。三 使用 iptables 的配置(CentOS 6 或手动管理 iptables 的环境)
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPTiptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10070 -j ACCEPTservice iptables save(或 iptables-save > /etc/sysconfig/iptables)service iptables restartiptables -L -n | grep -E 'dpt:(21|10060|10070)'。四 VSFTPD 与防火墙联动的关键配置
pasv_enable=YESpasv_min_port=10060pasv_max_port=10070firewall-cmd --permanent --add-port=2021/tcp && firewall-cmd --reloadyum install -y policycoreutils-python-utilssemanage port -a -t ftp_port_t -p tcp 2021listen_port=2021systemctl restart vsftpd。五 验证与常见问题处理
ss -tnlp | grep :21 或 netstat -antup | grep ftpftp your_ip,在客户端选择 被动模式(PASV) 测试列目录与传输。vsftpd.conf 的本地用户/匿名设置。pasv_min_port/pasv_max_port 一致;必要时改用更通用的端口段(如 49152–65535/tcp)。setsebool -P allow_ftpd_full_access 1),或将自定义端口加入 ftp_port_t 后再测试。