Linux 下 FTP Server 配置失败的原因有很多,通常并不是“一个原因”,而是配置、权限、防火墙、SELinux、服务本身等因素叠加。下面我按最常见原因 → 排查思路给你梳理一下,你可以对照看是哪一类。
systemctl status vsftpd
常见表现:
telnet ip 21 不通解决:
systemctl start vsftpd
systemctl enable vsftpd
FTP 用 21 端口(控制)+ 动态端口(数据)
# firewalld
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
# 或 iptables
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
⚠️ 被动模式(PASV)还需要放行被动端口范围。
即使配置对了,SELinux 也会直接拒绝。
检查:
getenforce
临时关闭测试:
setenforce 0
长期解决:
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
FTP 登录失败、上传失败,多半是权限。
示例:
/home/user 权限 755)检查:
ls -ld /home/ftpuser
vsftpd 限制:
userlist_enable=YES
userlist_deny=NO
很多客户端卡在“列出目录失败”。
vsftpd 示例:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙也要开:
firewall-cmd --add-port=30000-31000/tcp --permanent
常见错误:
检查语法:
vsftpd /etc/vsftpd/vsftpd.conf
你可以按顺序确认:
vsftpd 是否安装并运行你可以直接贴出:
/etc/vsftpd/vsftpd.conf 关键配置我可以逐行帮你找问题。