温馨提示×

怎样在ubuntu搭ftpserver

小樊
36
2026-10-05 11:56:15
栏目: 智能运维

在 Ubuntu 上搭建 FTPS(FTP over SSL/TLS)服务器,最常用、最稳妥的方案是使用 vsftpd(Very Secure FTP Daemon)。下面给你一份从零开始的实操步骤,包含匿名/本地用户、以及显式/隐式 FTPS 的配置。


一、安装 vsftpd

sudo apt update
sudo apt install vsftpd -y

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

systemctl status vsftpd

二、生成 SSL 证书(FTPS 必需)

方式 1:自签名证书(测试/内网推荐)

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

一路回车即可,Common Name 可填服务器 IP 或域名


三、配置 vsftpd(核心)

编辑配置文件:

sudo nano /etc/vsftpd.conf

基础配置(推荐)

# 基础
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

# 被动模式(云服务器必须)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的服务器公网IP

# 日志
xferlog_enable=YES
log_ftp_protocol=YES

# FTPS(显式)
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

✅ 这是 显式 FTPS(FTPES),客户端用 ftpes:// 连接
❌ 若需要 隐式 FTPS(ftps://,端口 990),需额外配置 listen_port=990


四、创建 FTP 用户(推荐用系统用户)

sudo useradd -m ftpuser
sudo passwd ftpuser

限制用户只能 FTP(不能 SSH 登录,可选):

sudo usermod -s /usr/sbin/nologin ftpuser

五、防火墙设置

UFW 示例

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

六、重启 vsftpd

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

七、客户端连接方式

FileZilla 示例

  • 主机:ftpes://服务器IP
  • 端口:21
  • 用户:ftpuser
  • 密码:你设置的
  • 加密:要求显式 FTP over TLS

首次连接会提示证书,选择「信任」


八、常见问题

1️⃣ 连接超时

  • 检查安全组(云厂商)
  • 确认 pasv_address 是公网 IP

2️⃣ 530 Login incorrect

  • 用户被 nologin 限制
  • PAM 问题:检查 /etc/pam.d/vsftpd

3️⃣ 只想虚拟用户(更高级)

可配置 virtual users + db4


九、可选增强(进阶)

  • 使用 Let’s Encrypt 证书
  • 使用 SFTP(SSH) 替代 FTPS(更安全)
  • 限制用户根目录(chroot_local_user=YES)

如果你愿意,可以告诉我:

  • 是 云服务器还是内网
  • 用 显式还是隐式 FTPS
  • 是否需要 多用户 / 只读 / 虚拟用户

我可以直接给你一份「定制版配置」。

0 踩