温馨提示×

如何开启Linux FTP服务

小樊
39
2026-07-06 04:29:15
栏目: 智能运维

在 Linux 上开启 FTP 服务,最常用、最推荐的方式是使用 vsftpd(Very Secure FTP Daemon)。下面我按常见发行版 + 完整步骤给你说明,同时也会提到安全建议。


一、安装 FTP 服务(vsftpd)

✅ CentOS / Rocky / AlmaLinux

yum install -y vsftpd

✅ Ubuntu / Debian

sudo apt update
sudo apt install -y vsftpd

二、启动并设置开机自启

# 启动服务
systemctl start vsftpd

# 设置开机自启
systemctl enable vsftpd

# 查看状态
systemctl status vsftpd

看到 active (running) 即表示成功。


三、配置 FTP(重要)

配置文件路径:

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

常用基础配置(推荐)

编辑配置文件:

vim /etc/vsftpd/vsftpd.conf

建议开启以下选项:

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

# 允许上传
write_enable=YES

# 禁止匿名登录(安全)
anonymous_enable=NO

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

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

保存后重启:

systemctl restart vsftpd

四、创建 FTP 用户(可选)

如果你不想用 root 登录 FTP:

useradd ftpuser
passwd ftpuser

设置家目录(可选):

usermod -d /data/ftp ftpuser

五、开放防火墙端口

FTP 使用:

  • 21:命令端口
  • 20:数据端口(主动模式)

firewalld(CentOS)

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

ufw(Ubuntu)

ufw allow 21/tcp
ufw reload

六、SELinux 设置(仅 CentOS / RHEL)

如果连接失败,可能是 SELinux 限制:

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

七、测试 FTP

方法 1:Linux 命令行

ftp 服务器IP

方法 2:Windows / 工具

  • FileZilla
  • WinSCP
  • FlashFXP

八、安全建议(非常重要)

生产环境强烈建议:

  • 使用 SFTP(SSH) 而不是 FTP
  • 或启用 FTPS(FTP over SSL)

快速对比

协议 安全性 推荐
FTP 明文
FTPS 加密
SFTP 加密 ✅✅

九、常见问题

❓ 530 Login incorrect

  • 用户名/密码错误
  • 是否禁止了 root 登录
  • SELinux 限制

❓ 无法上传文件

  • write_enable=YES
  • 目录权限不足

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

  • ✅ 你的 Linux 发行版
  • ✅ 是否需要匿名访问
  • ✅ 是否用于生产环境

我可以帮你给出最合适、最安全的配置方案

0