温馨提示×

怎样设置ubuntu ftp服务

小樊
45
2026-09-02 12:02:22
栏目: 智能运维

在 Ubuntu 上设置 FTP 服务,最常用、稳定且安全的方案是使用 vsftpd(Very Secure FTP Daemon)。下面我按从零开始的步骤给你说明,包括匿名/本地用户两种常见用法。


一、安装 vsftpd

sudo apt update
sudo apt install vsftpd

安装完成后,服务一般会自启动:

sudo systemctl status vsftpd

二、备份并编辑配置文件

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo nano /etc/vsftpd.conf

1️⃣ 基础安全配置(推荐)

listen=YES
listen_ipv6=NO

anonymous_enable=NO
local_enable=YES
write_enable=YES

chroot_local_user=YES
allow_writeable_chroot=YES

pasv_min_port=30000
pasv_max_port=31000

说明:

  • anonymous_enable=NO:禁止匿名登录
  • local_enable=YES:允许系统用户登录
  • write_enable=YES:允许上传
  • chroot_local_user=YES:限制用户只能访问自己的家目录

三、创建 FTP 用户(推荐方式)

sudo useradd -m ftpuser
sudo passwd ftpuser

设置密码后,该用户即可用 FTP 登录,默认目录为:

/home/ftpuser

四、配置防火墙(如有 UFW)

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

五、重启 vsftpd 服务

sudo systemctl restart vsftpd

六、测试 FTP 连接

本地测试

ftp localhost

使用 FileZilla

  • 主机:服务器 IP
  • 协议:FTP
  • 加密:仅明文(或需要可配置 FTPS)
  • 用户名 / 密码:刚创建的 ftpuser

七、可选:允许匿名访问(不推荐生产环境)

编辑配置文件:

anonymous_enable=YES
anon_root=/srv/ftp

创建目录:

sudo mkdir -p /srv/ftp
sudo chown ftp:ftp /srv/ftp

八、常见问题

❌ 530 Login incorrect

  • 用户名/密码错误
  • 用户被 shell 限制(可改 /etc/passwd 中 shell 为 /bin/bash

❌ 500 OOPS: vsftpd: refusing to run with writable root

添加:

allow_writeable_chroot=YES

九、更安全的替代方案(建议)

如果只是为了传文件,更推荐:

  • SFTP(基于 SSH)(默认已支持)
  • FTPS(FTP + SSL)

需要我帮你配置 SFTPFTPS(加密 FTP) 吗?

0