vsftpd 与 Debian 防火墙的兼容性要点
在 Debian 上,vsftpd 的兼容性主要取决于防火墙是否放行 FTP 控制连接(端口 21/TCP)、主动模式数据端口(端口 20/TCP) 以及为 被动模式(PASV) 显式开放的端口范围;若使用 FTPS,还需放行 990/TCP。Debian 常见防火墙为 ufw,也可直接使用 iptables 或 firewalld。正确配置后,vsftpd 可在各类防火墙环境下稳定工作。
防火墙放行与配置步骤
sudo ufw allow 20/tcp、sudo ufw allow 21/tcpsudo ufw allow 1024:1048/tcp(或更大范围如 30000:31000、49152:65535)sudo ufw enable、sudo ufw reloadsudo ufw status verbosesudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT、sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPTsudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1024:1048 -j ACCEPTsudo iptables-save > /etc/iptables/rules.v4sudo firewall-cmd --permanent --zone=public --add-port=20/tcp、sudo firewall-cmd --permanent --zone=public --add-port=21/tcpsudo firewall-cmd --permanent --zone=public --add-port=1024:1048/tcpsudo firewall-cmd --reloadvsftpd 配置与防火墙协同
pasv_enable=YESpasv_min_port=1024、pasv_max_port=1048ssl_enable=YES、force_local_data_ssl=YES、force_local_logins_ssl=YESsudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pemrsa_cert_file=/etc/ssl/private/vsftpd.pem、rsa_private_key_file=/etc/ssl/private/vsftpd.pemsudo systemctl restart vsftpd/var/log/vsftpd.logsudo ufw status verbose 或 sudo iptables -L -v -npasv_min_port/pasv_max_port 完全一致,否则被动模式数据连接会被拦截。常见问题与快速排查
pasv_min_port/pasv_max_port 与防火墙规则是否一致。sudo systemctl status vsftpd、端口占用 sudo netstat -tuln | grep 21、以及防火墙规则是否生效。/var/log/vsftpd.log,并用 sudo ufw status verbose 或 sudo iptables -L -v -n 复核规则。