温馨提示×

ubuntu ftpserver怎样设置

小樊
35
2026-09-11 11:03:53
栏目: 智能运维

在 Ubuntu 上搭建 FTP 服务器,最常用、稳定、安全的方案是使用 vsftpd(Very Secure FTP Daemon)。下面我从 安装 → 配置 → 用户 → 防火墙 → 测试 一步步说明。


一、安装 vsftpd

sudo apt update
sudo apt install vsftpd

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

systemctl status vsftpd

二、基本配置(推荐设置)

编辑配置文件:

sudo nano /etc/vsftpd.conf

1️⃣ 基础安全配置(常见)

# 禁止匿名登录
anonymous_enable=NO

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

# 允许写操作(上传/删除)
write_enable=YES

# 本地用户根目录可写
allow_writeable_chroot=YES

2️⃣ 用户目录限制(重要)

# 限制用户只能访问自己的目录
chroot_local_user=YES

(可选)只允许部分用户受限:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

三、创建 FTP 用户

方法一:使用系统用户(最简单)

sudo adduser ftpuser

设置密码后,该用户即可用 FTP 登录。

默认家目录:/home/ftpuser


方法二:限制只能 FTP,不能 SSH 登录(更安全)

sudo useradd -m ftpuser -s /usr/sbin/nologin
sudo passwd ftpuser

如果 /usr/sbin/nologin 不在 shell 列表:

echo "/usr/sbin/nologin" | sudo tee -a /etc/shells

四、防火墙设置

如果是 UFW:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw reload

五、被动模式(PASV,推荐)

FTP 客户端常需要被动模式,编辑配置:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙放行:

sudo ufw allow 30000:31000/tcp

六、重启 vsftpd

sudo systemctl restart vsftpd

七、测试 FTP

命令行测试

ftp localhost

或使用:

ftp ftpuser@服务器IP

图形工具

  • FileZilla
  • WinSCP

八、常见问题

❌ 530 Login incorrect

  • 用户名/密码错误
  • 用户 shell 被禁止(nologin 未加入 /etc/shells

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

解决:

allow_writeable_chroot=YES

九、安全建议(重要)

✅ 生产环境推荐:

  • 使用 SFTP(SSH) 替代 FTP
  • 或 vsftpd + TLS 加密
  • 禁止 root 登录
  • 限制 IP 访问

如果你愿意,我可以:

  • 帮你 配置 FTPS(SSL)
  • 教你 用 Docker 搭 FTP
  • 或改成 SFTP(更安全)

你打算用在 内网 / 公网 / 云服务器 上?

0