在 Linux 上搭建 FTP 服务器,最常用的是 vsftpd(Very Secure FTP Daemon),它稳定、安全、配置简单。下面我分 最常用方案(vsftpd) 和 可选方案(pure-ftpd / proftpd) 给你讲。
sudo apt update
sudo apt install vsftpd -y
sudo yum install vsftpd -y
# 或
sudo dnf install vsftpd -y
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
检查状态:
sudo systemctl status vsftpd
配置文件路径:
/etc/vsftpd.conf
备份原配置:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
编辑配置:
sudo vim /etc/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户
local_enable=YES
# 允许上传
write_enable=YES
# 本地用户根目录
local_root=/home/ftpusers
# 限制用户只能访问自己的家目录(推荐)
chroot_local_user=YES
# 允许用户写根目录(vsftpd 3.x 必须)
allow_writeable_chroot=YES
# 日志
xferlog_enable=YES
sudo useradd -m ftpuser
sudo passwd ftpuser
设置 FTP 目录:
sudo mkdir -p /home/ftpusers/ftpuser
sudo chown ftpuser:ftpuser /home/ftpusers/ftpuser
FTP 默认端口:21
sudo firewall-cmd --add-service=ftp --permanent
sudo firewall-cmd --reload
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo systemctl restart vsftpd
ftp localhost
或使用 FileZilla / WinSCP 连接:
SFTP ≠ FTP,它是基于 SSH 的,更安全
systemctl status sshd
编辑:
sudo vim /etc/ssh/sshd_config
添加:
Match User ftpuser
ChrootDirectory /home/ftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
sudo systemctl restart sshd
| 软件 | 特点 | 推荐 |
|---|---|---|
| vsftpd | 轻量、安全、稳定 | ✅ 最常用 |
| pure-ftpd | 功能丰富 | ✅ |
| proftpd | 类似 Apache 配置 | ⚠️ 复杂 |
/etc/shells 中无该用户 shellsetenforce 0 # 临时关闭
或:
setsebool -P ftp_home_dir on
你可以告诉我:
我可以直接给你 一份完整可用的配置文件 ✅