在 Ubuntu 上搭建 FTP 服务器,最常用、稳定、安全的方案是使用 vsftpd(Very Secure FTP Daemon)。下面我从 安装 → 配置 → 用户 → 防火墙 → 测试 一步步说明。
sudo apt update
sudo apt install vsftpd
安装完成后,服务一般会自动启动:
systemctl status vsftpd
编辑配置文件:
sudo nano /etc/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许写操作(上传/删除)
write_enable=YES
# 本地用户根目录可写
allow_writeable_chroot=YES
# 限制用户只能访问自己的目录
chroot_local_user=YES
(可选)只允许部分用户受限:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
sudo adduser ftpuser
设置密码后,该用户即可用 FTP 登录。
默认家目录:
/home/ftpuser
sudo useradd -m ftpuser -s /usr/sbin/nologin
sudo passwd ftpuser
如果 /usr/sbin/nologin 不在 shell 列表:
echo "/usr/sbin/nologin" | sudo tee -a /etc/shells
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw reload
FTP 客户端常需要被动模式,编辑配置:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙放行:
sudo ufw allow 30000:31000/tcp
sudo systemctl restart vsftpd
ftp localhost
或使用:
ftp ftpuser@服务器IP
/etc/shells)解决:
allow_writeable_chroot=YES
✅ 生产环境推荐:
如果你愿意,我可以:
你打算用在 内网 / 公网 / 云服务器 上?