温馨提示×

怎么在Linux启动FTP服务

小樊
33
2026-08-01 06:23:36
栏目: 智能运维

在 Linux 上启动 FTP 服务,常用的是 vsftpd(Very Secure FTP Daemon)。下面以常见的 Linux 发行版为例说明。


一、安装 vsftpd

1️⃣ CentOS / Rocky / AlmaLinux

sudo yum install -y vsftpd

2️⃣ Ubuntu / Debian

sudo apt update
sudo apt install -y vsftpd

二、启动并设置开机自启

✅ 使用 systemd(大多数现代 Linux)

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

检查状态:

sudo systemctl status vsftpd

三、基本配置(重要)

配置文件路径:

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

常用配置项

anonymous_enable=NO        # 禁止匿名登录
local_enable=YES           # 允许本地用户登录
write_enable=YES           # 允许写操作
chroot_local_user=YES      # 限制用户在家目录

修改后重启服务:

sudo systemctl restart vsftpd

四、防火墙放行 FTP 端口

1️⃣ 放行 21 端口

sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --reload

2️⃣ 如果是被动模式(推荐)

还需放行被动端口范围(如 30000–31000):

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

并在 vsftpd.conf 中配置:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

五、SELinux 设置(仅 CentOS/RHEL)

如果 SELinux 开启,需允许 FTP:

sudo setsebool -P ftp_home_dir on
sudo setsebool -P allow_ftpd_full_access on

六、测试 FTP

1️⃣ 本地测试

ftp localhost

2️⃣ 使用 FileZilla 等客户端

  • 协议:FTP
  • 端口:21
  • 模式:被动(Passive)

七、常见问题

❌ 无法登录

  • 检查用户是否被限制(如 /etc/vsftpd/user_list
  • 检查家目录权限

❌ 连接超时

  • 防火墙未放行端口
  • 云服务器需放行安全组

八、补充说明

  • 不推荐 FTP(明文),生产环境建议使用:
    • SFTP(基于 SSH)
    • FTPS(FTP over SSL)

如果你告诉我:

  • Linux 发行版
  • 是本地服务器还是云服务器
  • 是否需要匿名 / 多用户 / 虚拟用户

我可以给你一份完全针对你环境的配置方案

0