温馨提示×

FTPServer在Linux如何配置

小樊
37
2026-08-16 21:42:26
栏目: 智能运维

在 Linux 上配置 FTPServer(FTP 服务器) 常见有三种方式:
vsftpd(最常用、稳定)
ProFTPD
Pure-FTPd

下面以 vsftpd + 本地用户 + 被动模式 为例,给你一套从安装到可用的完整配置流程(适用于 CentOS / Rocky / Alma / RHEL / Ubuntu / Debian)。


一、安装 vsftpd

✅ CentOS / Rocky / Alma / RHEL

yum install -y vsftpd

✅ Ubuntu / Debian

apt update
apt install -y vsftpd

二、启动并设置开机自启

systemctl enable vsftpd
systemctl start 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️⃣ 推荐基础配置(本地用户登录)

# 基本设置
listen=YES
listen_ipv6=NO

# 禁止匿名登录
anonymous_enable=NO

# 允许本地用户
local_enable=YES
write_enable=YES

# 本地用户家目录
local_root=/data/ftp

# 权限掩码
local_umask=022

# 被动模式(非常重要)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

# 安全
chroot_local_user=YES
allow_writeable_chroot=YES

# 日志
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

四、创建 FTP 用户(推荐方式)

✅ 创建用户

useradd -m ftpuser
passwd ftpuser

✅ 设置 FTP 目录

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

五、防火墙配置(必须)

✅ firewalld(CentOS 7+)

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

✅ iptables

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT

六、SELinux(CentOS/RHEL 常见坑)

查看状态:

getenforce

✅ 临时关闭(测试用)

setenforce 0

✅ 永久允许 FTP(推荐)

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

七、测试 FTP

✅ 本地测试

ftp localhost

✅ Windows / FileZilla

  • 主机:服务器IP
  • 端口:21
  • 用户:ftpuser
  • 模式:被动模式(Passive)

八、常见问题排查

❌ 530 Login incorrect

  • 密码错误
  • /etc/shells 中无该用户 shell
  • PAM 配置问题

❌ 无法列出目录

  • 被动端口未放行
  • 防火墙 / SELinux
  • pasv_address 未设置(云服务器)

✅ 云服务器必加

pasv_address=公网IP

九、要不要更安全的方案?

方式 推荐
FTP ❌ 明文
FTPS(FTP over SSL)
SFTP(SSH) ✅✅(最推荐)

如果你需要:

  • FTPS(SSL 证书)
  • 虚拟用户
  • SFTP 配置
  • Docker 部署 FTP

告诉我你的 Linux 发行版 + 使用场景,我可以直接给你定制配置。

0