温馨提示×

如何搭建Linux FTP服务

小樊
40
2026-08-01 06:16:40
栏目: 智能运维

搭建 Linux FTP 服务一般使用 vsftpd(Very Secure FTP Daemon),它稳定、安全、配置简单,是大多数 Linux 发行版的默认选择。下面以 CentOS / Rocky / Alma / RHELUbuntu / Debian 为例,从零开始说明。


一、安装 vsftpd

✅ CentOS / Rocky / Alma / RHEL

yum install -y vsftpd

✅ Ubuntu / Debian

apt update
apt install -y vsftpd

二、启动并设置开机自启

systemctl start vsftpd
systemctl enable vsftpd

查看状态:

systemctl status vsftpd

三、基础配置(重点)

配置文件路径:

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

编辑配置:

vim /etc/vsftpd/vsftpd.conf

✅ 常用基础配置(推荐)

# 禁止匿名登录
anonymous_enable=NO

# 允许本地用户登录
local_enable=YES

# 允许上传
write_enable=YES

# 本地用户限制在家目录
chroot_local_user=YES

# 允许写 chroot(必须)
allow_writeable_chroot=YES

# 被动模式(推荐)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

保存后重启:

systemctl restart vsftpd

四、创建 FTP 用户

方式一:使用系统用户(最常见)

useradd ftpuser
passwd ftpuser

设置家目录(可选):

usermod -d /data/ftp ftpuser

设置权限:

chown -R ftpuser:ftpuser /data/ftp
chmod 755 /data/ftp

五、防火墙配置(非常重要)

✅ firewalld(CentOS / Rocky)

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(仅限 CentOS / RHEL)

如果登录失败,可能是 SELinux 限制:

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

七、测试 FTP 服务

本地测试

ftp localhost

客户端工具

  • Windows:FileZilla
  • Linux:ftp / lftp

八、虚拟用户(进阶,可选)

如果你不想创建系统用户,可以使用:

  • PAM + 虚拟用户
  • Pure-FTPd

我可以单独给你一份 虚拟用户配置教程


九、常见问题排查

问题 原因
530 Login incorrect 用户名/密码错误或被 PAM 限制
500 OOPS: chroot 目录权限不对
连接超时 防火墙 / 被动端口未开放
无法上传 write_enable=NO

十、安全建议 ✅

  • ❌ 禁用匿名登录
  • ✅ 使用 SFTP(SSH) 替代 FTP(更安全)
  • ✅ 限制被动端口范围
  • ✅ 配合 fail2ban 防暴力破解

如果你愿意,可以告诉我:

  • ✅ 使用的 Linux 发行版
  • ✅ 是否需要 匿名 / 虚拟用户
  • ✅ 是内网还是公网服务器

我可以给你一份 完全贴合你环境的配置方案

0