Ubuntu 上配置 FTP 服务器不算难,只要按步骤来,常见的 vsftpd 方案 15~30 分钟就能跑起来。难点主要在权限、防火墙、被动模式这几块,而不是安装本身。
下面给你一个清晰、实用的结论 + 快速上手方案。
✅ 简单场景(本地/内网/测试):不难
⚠️ 生产环境(公网/安全/多用户):需要理解权限和被动模式
✅ 推荐方案:vsftpd(最常用、稳定)
sudo apt update
sudo apt install vsftpd
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo nano /etc/vsftpd.conf
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
sudo useradd -m ftpuser
sudo passwd ftpuser
(可选)限制只能 FTP,不能 SSH:
sudo usermod -s /usr/sbin/nologin ftpuser
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
原因通常是:
write_enable=YES 没开✅ 解决示例:
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
客户端报错:
Entering Passive Mode
✅ 解决:
pasv_enable=YES| 场景 | 建议 |
|---|---|
| 临时传文件 | vsftpd |
| 公网长期使用 | ✅ SFTP(SSH)更推荐 |
| Windows 用户多 | FileZilla Server(Windows) |
| 安全优先 | ❌ 不用 FTP,用 SFTP / SCP |
FTP 明文传输,不安全
如果是公网服务器,强烈建议用 SFTP:
# 直接用 SSH 用户登录
sftp user@服务器IP
你可以直接告诉我:
我可以给你完全按你环境定制的配置,甚至帮你排查连接失败。