温馨提示×

Linux FTP服务器怎么设置

小樊
32
2026-07-06 04:33:16
栏目: 云计算

下面以 Linux 下最常用的 FTP 服务器 vsftpd(Very Secure FTP Daemon) 为例,给你一个 从安装到基本配置 的完整说明。如果你用的是其他发行版或 FTP 软件(如 Pure-FTPd、ProFTPD),也可以再告诉我。


一、安装 vsftpd

1️⃣ Debian / Ubuntu

sudo apt update
sudo apt install vsftpd

2️⃣ CentOS / Rocky / Alma / RHEL

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

二、启动并设置开机自启

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

查看状态:

sudo systemctl status vsftpd

三、vsftpd 配置文件说明

配置文件路径:

/etc/vsftpd.conf

建议先备份:

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

四、常见基础配置(推荐)

编辑配置文件:

sudo vim /etc/vsftpd.conf

✅ 基本安全配置

# 禁止匿名登录
anonymous_enable=NO

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

# 允许上传/写入
write_enable=YES

# 本地用户只能访问自己的家目录(重要)
chroot_local_user=YES

# 允许 chroot 目录可写(新版 vsftpd 必须)
allow_writeable_chroot=YES

✅ 被动模式(推荐,防火墙友好)

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

五、创建 FTP 用户(示例)

1️⃣ 创建用户

sudo useradd -m ftpuser
sudo passwd ftpuser

2️⃣ 设置 FTP 目录

sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp

六、防火墙设置

1️⃣ 开放 FTP 端口

# 控制连接
sudo ufw allow 21/tcp

# 被动端口
sudo ufw allow 30000:31000/tcp

(如果用 firewalld,我也可以给你对应命令)


七、SELinux(CentOS / RHEL 系列)

如果连接异常,可临时测试:

sudo setenforce 0

永久关闭(不推荐):

sudo vim /etc/selinux/config
SELINUX=disabled

或正确放行 FTP:

sudo setsebool -P ftp_home_dir on

八、重启 vsftpd

sudo systemctl restart vsftpd

九、测试 FTP

1️⃣ 本地测试

ftp localhost

2️⃣ 客户端工具

  • FileZilla
  • WinSCP
  • lftp / ftp 命令

十、常见问题速查

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

十一、进阶需求(可选)

如果你需要:

  • 虚拟用户(不用系统用户)
  • FTPS(FTP over SSL)
  • 限制用户访问特定目录
  • 日志审计
  • 替代方案(SFTP / SCP)

告诉我你的 Linux 发行版 + 使用场景,我可以给你更精确的配置方案。

0