温馨提示×

FTP服务器在Linux怎么配

小樊
39
2026-08-01 06:22:40
栏目: 云计算

在 Linux 上配置 FTP 服务器,最常用的是 vsftpd(Very Secure FTP Daemon)。下面给你一套从安装到可用的完整配置示例,适合大多数场景(本地用户登录 + 文件上传下载)。


一、安装 vsftpd

1️⃣ 安装软件

Debian / Ubuntu

sudo apt update
sudo apt install vsftpd -y

CentOS / Rocky / Alma / RHEL

sudo yum install vsftpd -y
# 或
sudo dnf install vsftpd -y

二、基本配置(推荐)

2️⃣ 备份原配置

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

3️⃣ 编辑配置文件

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

三、创建 FTP 用户

4️⃣ 创建用户(示例)

sudo useradd -m ftpuser
sudo passwd ftpuser

5️⃣ 设置目录权限

sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser

✅ 用户登录后只能访问 /home/ftpuser


四、防火墙 & SELinux

6️⃣ 防火墙放行端口

firewalld(CentOS / Rocky)

sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
sudo firewall-cmd --reload

ufw(Ubuntu)

sudo ufw allow 21
sudo ufw allow 30000:31000/tcp

7️⃣ SELinux(仅 RHEL 系)

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

8️⃣ 本地测试

ftp localhost

或用工具:

  • Windows:FileZilla
  • Linux:lftpftp

七、常见问题

❌ 530 Login incorrect

  • 用户名/密码错误
  • /etc/shells 中缺少用户的 shell
grep ftpuser /etc/passwd

❌ 500 OOPS: vsftpd: refusing to run with writable root inside chroot

allow_writeable_chroot=YES

八、进阶(可选)

虚拟用户(更安全)
SFTP(SSH)替代 FTP(推荐)
限速 / 并发控制
SSL/TLS 加密 FTP

如果你愿意,我可以帮你:

  • 虚拟用户
  • SFTP 替代 FTP
  • 生产环境安全规范 配置

你现在用的是 哪个 Linux 发行版 + 使用场景

0