在 CentOS 上搭建 FTP / FTPS 服务器 后,通常需要配置 firewalld(CentOS 7/8/9 默认) 或 iptables 来放行相应端口。下面分情况说明。
常见 FTP 模式:
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
✅ 这会放行:
⚠️ 但 被动模式端口还不够
编辑 vsftpd 配置:
sudo vi /etc/vsftpd/vsftpd.conf
添加或修改:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
保存后重启:
sudo systemctl restart vsftpd
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
sudo firewall-cmd --reload
如果是 FTPS(显式/隐式):
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
sudo firewall-cmd --reload
SSL 不改变防火墙端口。
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT
service iptables save
service iptables restart
如果 FTP 无法连接:
sudo setsebool -P ftpd_full_access on
查看状态:
getsebool -a | grep ftp
# 查看防火墙状态
firewall-cmd --list-all
# 查看 vsftpd 状态
systemctl status vsftpd
# 测试端口
telnet 服务器IP 21
如果你能告诉我:
我可以给你 更精确的配置示例。