在 Linux 上配置 FTP 服务器,最常用的是 vsftpd(Very Secure FTP Daemon)。下面给你一套从安装到可用的完整配置示例,适合大多数场景(本地用户登录 + 文件上传下载)。
sudo apt update
sudo apt install vsftpd -y
sudo yum install vsftpd -y
# 或
sudo dnf install vsftpd -y
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo vim /etc/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 本地用户 umask
local_umask=022
# 限制用户只能访问自己的家目录
chroot_local_user=YES
# 允许 chroot 目录可写(新版 vsftpd 必须)
allow_writeable_chroot=YES
# 日志
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
# 被动模式(推荐)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
sudo useradd -m ftpuser
sudo passwd ftpuser
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
✅ 用户登录后只能访问 /home/ftpuser
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
sudo firewall-cmd --reload
sudo ufw allow 21
sudo ufw allow 30000:31000/tcp
sudo setsebool -P ftp_home_dir on
sudo setsebool -P allow_ftpd_full_access on
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
检查状态:
systemctl status vsftpd
ftp localhost
或用工具:
lftp、ftp/etc/shells 中缺少用户的 shellgrep ftpuser /etc/passwd
allow_writeable_chroot=YES
✅ 虚拟用户(更安全)
✅ SFTP(SSH)替代 FTP(推荐)
✅ 限速 / 并发控制
✅ SSL/TLS 加密 FTP
如果你愿意,我可以帮你:
你现在用的是 哪个 Linux 发行版 + 使用场景?