在 CentOS 上搭建 FTP 服务(如 vsftpd)并“开启端口”,通常包含三步:安装/配置 FTP 服务、系统防火墙放行端口、SELinux 放行(如有)。下面以最常见的 vsftpd + CentOS 7/8/Stream 为例说明。
# 安装
yum install -y vsftpd
# 启动并设置开机自启
systemctl start vsftpd
systemctl enable vsftpd
30000-31000firewall-cmd --permanent --add-port=21/tcp
编辑 /etc/vsftpd/vsftpd.conf,添加:
pasv_min_port=30000
pasv_max_port=31000
然后防火墙放行:
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload
firewall-cmd --list-ports
CentOS 默认开启 SELinux,否则 FTP 可能无法连接。
# 允许 FTP 访问
setsebool -P ftpd_full_access on
# 如果是家目录 FTP
setsebool -P ftp_home_dir on
如不想用 SELinux(不推荐):
setenforce 0
# 永久关闭需修改 /etc/selinux/config
/etc/vsftpd/vsftpd.conf:
anonymous_enable=NO
local_enable=YES
write_enable=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
重启服务:
systemctl restart vsftpd
netstat -lntp | grep vsftpd
# 或
ss -lntp | grep vsftpd
如果你用的是 CentOS 6(iptables) 或 ProFTPD / Pure-FTPd,或者需要 云服务器安全组配置说明,可以告诉我,我给你对应方案。