温馨提示×

怎样设置Ubuntu FTP账户

小樊
44
2026-08-02 12:01:08
栏目: 智能运维

在 Ubuntu 上设置 FTP 账户,最常用、稳定的方案是 vsftpd(Very Secure FTP Daemon)。下面我按从安装到创建专用 FTP 用户的完整流程给你说明,并附上常见配置说明,适合新手照着做。


一、安装 vsftpd

sudo apt update
sudo apt install vsftpd

安装完成后,vsftpd 会自动启动。

查看状态:

sudo systemctl status vsftpd

二、备份并修改配置文件

1️⃣ 备份配置文件(重要)

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

2️⃣ 编辑配置文件

sudo nano /etc/vsftpd.conf

推荐的基础配置如下(可直接复制覆盖):

# 禁止匿名登录
anonymous_enable=NO

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

# 允许上传
write_enable=YES

# 本地用户只能访问自己的家目录(安全)
chroot_local_user=YES

# 允许 chroot 目录可写(Ubuntu 20.04+ 必须)
allow_writeable_chroot=YES

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

# 日志
xferlog_enable=YES

保存并退出(Ctrl + O → Enter → Ctrl + X)


三、创建 FTP 专用用户(推荐)

⚠️ 不建议直接用 root 或你自己的系统账户做 FTP

1️⃣ 创建用户

sudo adduser ftpuser

按提示设置密码(其他信息可直接回车)。

2️⃣ 设置 FTP 目录

sudo mkdir -p /home/ftpuser/ftp
sudo chown nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp

创建可上传目录:

sudo mkdir /home/ftpuser/ftp/upload
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/upload

目录结构:

/home/ftpuser/ftp
├── upload   # 可上传

四、重启 vsftpd

sudo systemctl restart vsftpd

五、防火墙设置(如果有 UFW)

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

六、连接测试

使用 FTP 客户端(推荐)

  • FileZilla
  • WinSCP

连接信息:

主机:服务器 IP
协议:FTP
加密:只使用明文 FTP(或选择“如果可用”)
用户:ftpuser
密码:你设置的密码
端口:21

七、常见问题

❓ 登录后无法上传

  • 确认 write_enable=YES
  • 确认上传目录权限正确

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

  • 确保 allow_writeable_chroot=YES

❓ 被动模式连不上

  • 检查防火墙是否放行 30000–31000 端口

八、可选:只允许 FTP 用户登录(增强安全)

sudo nano /etc/vsftpd.userlist

加入:

ftpuser

修改配置:

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

如果你需要:

  • 只允许某个目录访问
  • 虚拟用户(多用户无系统账户)
  • 配合 Nginx / Web 目录使用
  • SFTP(更安全的 SSH 方式)

告诉我你的使用场景,我可以给你更精确的配置方案。

0