在 Linux 上配置 FTP 服务器(以最常见的 vsftpd 为例),一般流程如下。如果你指的是 FTPS(FTP over SSL/TLS),我也会在后面补充。
yum install -y vsftpd
apt update
apt install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd
检查状态:
systemctl status vsftpd
编辑配置文件:
vim /etc/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 本地用户 umask
local_umask=022
# 限制用户只能在自己家目录
chroot_local_user=YES
# 允许用户可写(vsftpd 3.x 必须)
allow_writeable_chroot=YES
# 日志
xferlog_enable=YES
保存后重启:
systemctl restart vsftpd
useradd -m ftpuser
passwd ftpuser
⚠️ root 默认不能登录 FTP,需要使用普通用户。
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
查看状态:
getenforce
如果是 Enforcing,执行:
setsebool -P ftp_home_dir on
ftp localhost
ftp 服务器IP
openssl req -x509 -nodes -days 365 \
-keyout /etc/vsftpd/vsftpd.key \
-out /etc/vsftpd/vsftpd.crt
ssl_enable=YES
rsa_cert_file=/etc/vsftpd/vsftpd.crt
rsa_private_key_file=/etc/vsftpd/vsftpd.key
force_local_data_ssl=YES
force_local_logins_ssl=YES
重启:
systemctl restart vsftpd
| 问题 | 原因 |
|---|---|
| 530 Login incorrect | 用户名/密码错误,或 pam 配置 |
| 500 OOPS | 目录权限或 chroot 配置 |
| 连接超时 | 防火墙 / 被动模式 |
✅ 生产环境不建议用 FTP,推荐:
❌ FTP 明文传输,不安全
如果你告诉我:
我可以给你 精确配置方案 ✅