温馨提示×

如何在Linux配置FTPServer

小樊
33
2026-08-16 21:01:28
栏目: 智能运维

在 Linux 上配置 FTP Server(以 vsftpd 为例) 是比较常见且稳定的做法。下面我分 安装 → 配置 → 用户管理 → 测试 → 常见问题 给你一个完整流程,适用于 CentOS / Rocky / Alma / RHEL / Ubuntu / Debian


一、安装 vsftpd

✅ CentOS / Rocky / Alma / RHEL

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

三、基础配置(重要)

配置文件路径:

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

1️⃣ 备份原配置

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

2️⃣ 常用推荐配置(示例)

编辑配置文件:

vim /etc/vsftpd/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

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

四、创建 FTP 用户

1️⃣ 创建用户

useradd -m ftpuser
passwd ftpuser

2️⃣ 设置 FTP 目录

mkdir -p /data/ftp
chown ftpuser:ftpuser /data/ftp

3️⃣ 限制用户只能通过 FTP 登录(可选)

usermod -s /sbin/nologin ftpuser

五、防火墙配置

✅ 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)

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

查看状态:

getenforce

七、重启 vsftpd

systemctl restart vsftpd

八、测试 FTP

1️⃣ 本地测试

ftp localhost

2️⃣ 使用 FileZilla / WinSCP

  • 协议:FTP
  • 加密:只使用明文(或配置 FTPS)
  • 主机:服务器 IP
  • 端口:21
  • 用户:ftpuser

九、可选:配置 FTPS(更安全)

如果你说的是 FTPS(FTP over SSL),而不是 SFTP,我可以单独给你一份 SSL 证书 + vsftpd FTPS 配置


十、常见问题排查

❌ 530 Login incorrect

  • 用户名密码错误
  • shell 被设为 /sbin/nologin/etc/shells 未包含

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

allow_writeable_chroot=YES

❌ 无法连接

  • 检查 21 端口
  • 检查被动端口是否放行
  • 检查 SELinux

十一、是否需要我继续?

你可以告诉我:

  1. ✅ 系统版本(CentOS 7 / Rocky 9 / Ubuntu 22.04)
  2. ✅ 是否需要 FTPS(SSL)
  3. ✅ 是给 内部使用 还是 公网
  4. ✅ 是否需要 虚拟用户

我可以直接给你 一份可直接用的完整配置文件

0