Ubuntu 上 FTP Server 启动/连接失败 的原因很多,下面按「最常见 → 较少见」帮你系统梳理,并给出排查方法。
Ubuntu 默认 不带 FTP 服务。
常见服务:
vsftpd(最常用)proftpdpure-ftpd检查是否安装:
which vsftpd
systemctl status vsftpd
若未安装:
sudo apt update
sudo apt install vsftpd
sudo systemctl enable --now vsftpd
FTP 使用:
查看防火墙:
sudo ufw status
允许 FTP:
sudo ufw allow 21/tcp
sudo ufw allow 20/tcp
如果是 被动模式,还需在 vsftpd.conf 中指定端口并放行:
pasv_min_port=30000
pasv_max_port=31000
sudo ufw allow 30000:31000/tcp
常见错误配置:
listen=YES
listen_ipv6=YES # ❌ 两个同时开会失败
✅ 正确做法:
listen=YESlisten_ipv6=YES修改后:
sudo systemctl restart vsftpd
vsftpd 默认禁止某些用户登录:
/etc/ftpusers 中的用户(如 root)检查:
cat /etc/ftpusers
允许用户登录示例:
local_enable=YES
write_enable=YES
即使 Ubuntu 防火墙放行,云控制台安全组也必须开:
否则 100% 连不上。
云服务器常见现象:
解决(vsftpd):
pasv_address=你的公网IP
pasv_enable=YES
Ubuntu 默认 没有 SELinux,可忽略。 如果是 CentOS 才需要考虑。
systemctl status vsftpd
sudo ufw status
cat /etc/vsftpd.conf | grep -E "listen|pasv|local_enable"
然后本地测试:
ftp localhost
请告诉我:
我可以直接给你一份「可运行配置」。