温馨提示×

如何配置Linux ftpserver

小樊
41
2026-07-17 19:48:20
栏目: 智能运维

配置 Linux FTP 服务器(以 vsftpd 为例,最常用、稳定)可以分为以下几个步骤。这里以 Ubuntu / Debian / CentOS 为例说明。


一、安装 vsftpd

Ubuntu / Debian

sudo apt update
sudo apt install vsftpd -y

CentOS / Rocky / AlmaLinux

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

常用基础配置(推荐)

# 禁止匿名登录
anonymous_enable=NO

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

# 允许上传文件
write_enable=YES

# 本地用户 umask
local_umask=022

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

# 允许写 chroot(vsftpd 3.0+ 必须)
allow_writeable_chroot=YES

# 启用日志
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

# 被动模式(推荐)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

四、创建 FTP 用户(示例)

sudo useradd -m ftpuser
sudo passwd ftpuser

设置家目录权限(防止 chroot 报错):

sudo chmod 755 /home/ftpuser

五、防火墙配置

开放 FTP 端口

Ubuntu(ufw)

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp

CentOS(firewalld)

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

六、SELinux(仅 CentOS / RHEL)

如果 SELinux 开启,需要允许 FTP:

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

七、重启 vsftpd

sudo systemctl restart vsftpd

八、客户端连接测试

命令行

ftp your_server_ip

图形工具

  • FileZilla
  • WinSCP

连接方式:

  • 协议:FTP
  • 加密:可选(明文 / FTP over TLS)
  • 端口:21

九、可选:配置 FTPS(更安全)

如果你需要 FTP over TLS

ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key

并生成证书:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.key \
-out /etc/ssl/certs/vsftpd.pem

十、常见问题排查

问题 解决方法
530 Login incorrect 检查用户密码、PAM 配置
500 OOPS: chroot 设置 allow_writeable_chroot=YES
无法连接 检查防火墙、SELinux、被动端口
上传失败 检查目录权限

如果你愿意,我可以:

  • ✅ 帮你 针对某一发行版 精确配置
  • ✅ 配置 只读 / 多用户 / 虚拟用户
  • ✅ 配置 FTPS / SFTP(SSH)
  • ✅ 给你一份 生产环境安全配置模板

只要告诉我你的 Linux 版本和使用场景即可。

0