在 Ubuntu 上搭建 FTP Server(如 vsftpd、proftpd) 时,有不少“坑”是新手很容易踩的,下面按常见问题 → 原因 → 解决/建议来总结。
现象
原因
解决
sudo ufw allow 21/tcp
sudo ufw allow 20/tcp
# 被动模式端口范围也要放行
现象
Entering Passive Mode 失败原因
pasv_addressvsftpd 正确配置示例
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的公网IP
并放行端口:
sudo ufw allow 30000:31000/tcp
现象
常见原因
/sbin/nologin)检查
grep ftp /etc/passwd
vsftpd 默认不允许 nologin 用户登录(除非配置)
解决
local_enable=YES
或给用户合法 shell:
sudo usermod -s /bin/bash ftpuser
现象
原因
解决
write_enable=YES
目录权限:
sudo chown ftpuser:ftpuser /srv/ftp
sudo chmod 755 /srv/ftp
现象
原因
解决
allow_writeable_chroot=YES
或把家目录改为只读,子目录可写
现象
原因
snap install vsftpd建议
sudo apt remove vsftpd
sudo apt install vsftpd
journalctl -u vsftpd
常见:
✅ 推荐
# 直接用 ssh 用户
sftp user@ip
无需额外服务,防火墙只要 22
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=公网IP
如果你愿意,可以告诉我:
我可以直接帮你“排雷 + 给完整配置”。