温馨提示×

linux ftpserver怎么搭

小樊
46
2026-09-23 12:28:29
栏目: 智能运维

下面给你一个在 Linux 上搭建 FTP 服务器的常见、稳妥方案,以 vsftpd(Very Secure FTP Daemon) 为例,适用于 CentOS / Rocky / Alma / Ubuntu / Debian。


一、安装 vsftpd

CentOS / Rocky / Alma

sudo yum install -y vsftpd

Ubuntu / Debian

sudo apt update
sudo apt install -y vsftpd

二、启动并设置开机自启

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

查看状态:

systemctl status vsftpd

三、基本配置(重点)

配置文件位置:

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

常用安全基础配置

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
allow_writeable_chroot=YES

⚠️ chroot_local_user=YES 会把用户锁在自家目录,防止访问系统其他目录


四、创建 FTP 用户

sudo useradd -m ftpuser
sudo passwd ftpuser

设置家目录权限:

sudo chmod 755 /home/ftpuser

五、防火墙设置

开放 21 端口(控制端口)

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

# ufw
sudo ufw allow 21/tcp

被动模式端口(推荐)

在配置文件中加:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙放行:

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

六、SELinux(仅 CentOS / RHEL 系列)

sudo setsebool -P ftpd_full_access on

七、测试连接

本地测试

ftp localhost

客户端工具

  • FileZilla
  • lftp
  • 浏览器:ftp://ip

八、常见问题

1. 登录后无法上传

  • 检查 write_enable=YES
  • 检查目录权限

2. 530 Login incorrect

  • 用户被禁登录(如 /sbin/nologin
  • 可改 shell:
sudo usermod -s /bin/bash ftpuser

3. 被动模式连不上

  • 防火墙未放行 PASV 端口

九、进阶(可选)

  • 虚拟用户(更安全)
  • FTPS(SSL)
  • SFTP(基于 SSH,不推荐和 FTP 混用)

如果你告诉我:

  • Linux 发行版
  • 用途(内网 / 公网 / 匿名 / 账号)
  • 是否要加密

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

0