Linux 上 FTP Server 连不上,通常可以从 网络 → 服务 → 配置 → 防火墙/SELinux → 客户端方式 一步步排查。下面给你一个实用排查清单。
systemctl status vsftpd
# 或 proftpd / pure-ftpd,看你装的是哪个
没运行就启动:
systemctl start vsftpd
systemctl enable vsftpd
ss -lntp | grep -E '21|ftp'
:21 监听ftp localhost
或
telnet localhost 21
firewall-cmd --list-all
开放 FTP:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
iptables -L -n
确保 21 端口放行。
查看状态:
getenforce
如果是 Enforcing,试试:
setsebool -P ftp_home_dir on
setsebool -P ftpd_full_access on
或临时验证:
setenforce 0
能连了就说明 SELinux 限制的。
很多客户端连不上是因为 被动模式端口没开。
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
然后在防火墙放行:
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload
vsftpd 常见限制:
local_enable=YES
write_enable=YES
journalctl -u vsftpd -f
# 或
tail -f /var/log/vsftpd.log
连接失败时日志通常会直接说明原因。
先本机连 → 再看防火墙/SELinux → 最后查 PASV 被动端口
如果你愿意,可以把:
发出来,我可以直接帮你定位。