温馨提示×

怎样配置Linux FTP服务

小樊
32
2026-07-06 04:46:17
栏目: 智能运维

配置 Linux FTP 服务通常包括安装 FTP 服务器软件、配置服务、创建用户、调整防火墙和 SELinux 等步骤。下面以 vsftpd(Very Secure FTP Daemon) 为例,这是最常见、最安全的 FTP 服务器之一,适用于大多数 Linux 发行版(CentOS、RHEL、Rocky、Alma、Ubuntu、Debian 等)。


一、安装 vsftpd

✅ CentOS / RHEL / Rocky / Alma

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

✅ Ubuntu / Debian

apt update
apt install -y vsftpd

二、启动并设置开机自启

systemctl start vsftpd
systemctl enable vsftpd

查看状态:

systemctl status vsftpd

三、配置 vsftpd(核心)

配置文件路径:

/etc/vsftpd/vsftpd.conf   # CentOS/RHEL
/etc/vsftpd.conf          # Ubuntu/Debian

1️⃣ 备份原配置

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

2️⃣ 常用基础配置(推荐)

编辑配置文件:

vim /etc/vsftpd/vsftpd.conf

✅ 允许本地用户登录

local_enable=YES

✅ 允许上传(写权限)

write_enable=YES

✅ 禁止匿名登录(安全)

anonymous_enable=NO

✅ 限制用户只能访问自己的家目录(重要)

chroot_local_user=YES
allow_writeable_chroot=YES

✅ 被动模式(推荐,适合云服务器)

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

四、创建 FTP 用户

创建用户并设置密码

useradd ftpuser
passwd ftpuser

设置用户家目录权限

chown -R ftpuser:ftpuser /home/ftpuser
chmod 755 /home/ftpuser

五、防火墙配置

✅ firewalld(CentOS / RHEL)

firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload

✅ UFW(Ubuntu)

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

六、SELinux 配置(非常重要)

查看 SELinux 状态

getenforce

如果是 Enforcing 模式,执行:

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

七、重启 vsftpd 服务

systemctl restart vsftpd

八、测试 FTP 服务

本地测试

ftp localhost

使用工具

  • Windows:FileZilla
  • Linux:ftp / lftp

九、常见问题排查

❌ 530 Login incorrect

  • 用户名/密码错误
  • /etc/shells 中缺少用户 shell
  • SELinux 未放行

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

allow_writeable_chroot=YES

十、安全建议(生产环境)

✅ 禁用匿名用户
✅ 使用 SFTP(SSH) 替代 FTP(更安全)
✅ 限制 FTP 用户只能访问特定目录
✅ 使用强密码或密钥认证


如果你愿意,我可以根据你的 Linux 发行版 + 是否云服务器 + 是否需要匿名访问 给你一份定制配置方案

0