温馨提示×

Linux怎么搭建FTPServer

小樊
38
2026-08-16 21:41:28
栏目: 智能运维

在 Linux 上搭建 FTP 服务器,最常用的是 vsftpd(Very Secure FTP Daemon),它稳定、安全、配置简单。下面我分 最常用方案(vsftpd)可选方案(pure-ftpd / proftpd) 给你讲。


一、使用 vsftpd 搭建 FTP 服务器(推荐)

1️⃣ 安装 vsftpd

Ubuntu / Debian

sudo apt update
sudo apt install vsftpd -y

CentOS / Rocky / AlmaLinux

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

2️⃣ 启动并设置开机自启

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

检查状态:

sudo systemctl status vsftpd

3️⃣ 配置 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

# 本地用户根目录
local_root=/home/ftpusers

# 限制用户只能访问自己的家目录(推荐)
chroot_local_user=YES

# 允许用户写根目录(vsftpd 3.x 必须)
allow_writeable_chroot=YES

# 日志
xferlog_enable=YES

4️⃣ 创建 FTP 用户

sudo useradd -m ftpuser
sudo passwd ftpuser

设置 FTP 目录:

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

5️⃣ 防火墙放行 FTP 端口

FTP 默认端口:21

firewalld

sudo firewall-cmd --add-service=ftp --permanent
sudo firewall-cmd --reload

iptables

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

6️⃣ 重启 vsftpd

sudo systemctl restart vsftpd

7️⃣ 测试 FTP

ftp localhost

或使用 FileZilla / WinSCP 连接:

  • 主机:服务器 IP
  • 协议:FTP
  • 用户:ftpuser
  • 密码:你设置的密码

二、搭建 SFTP(更安全,推荐替代 FTP)

SFTP ≠ FTP,它是基于 SSH 的,更安全

1️⃣ 直接可用(只要 SSH 开启)

systemctl status sshd

2️⃣ 限制用户只能 SFTP

编辑:

sudo vim /etc/ssh/sshd_config

添加:

Match User ftpuser
    ChrootDirectory /home/ftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
sudo systemctl restart sshd

三、常见 FTP 服务器对比

软件 特点 推荐
vsftpd 轻量、安全、稳定 ✅ 最常用
pure-ftpd 功能丰富
proftpd 类似 Apache 配置 ⚠️ 复杂

四、常见问题

❓ 530 Login incorrect

  • 用户名/密码错误
  • /etc/shells 中无该用户 shell
  • SELinux 阻止

❓ SELinux 导致无法访问

setenforce 0   # 临时关闭

或:

setsebool -P ftp_home_dir on

五、我可以进一步帮你

你可以告诉我:

  1. ✅ Linux 发行版(Ubuntu / CentOS / Rocky)
  2. ✅ 是否必须 FTP(还是可以用 SFTP)
  3. ✅ 是否要匿名访问
  4. ✅ 是否需要多用户隔离

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

0