温馨提示×

Ubuntu FTPServer怎么加密

小樊
45
2026-08-28 22:10:19
栏目: 网络安全

Ubuntu 上给 FTP 服务器加密,通常指的是 FTPS(FTP over SSL/TLS),而不是明文 FTP。下面我按从准备到验证的完整流程给你讲,最常用、生产环境推荐的做法是 vsftpd + SSL/TLS


一、先说结论(推荐方案)

Ubuntu + vsftpd + SSL/TLS(FTPS)
✅ 使用 显式加密(Explicit FTPS),兼容性最好
✅ 证书可用 Let’s Encrypt(公网)自签名(内网)


二、安装 vsftpd

sudo apt update
sudo apt install vsftpd -y

三、创建或使用 SSL 证书

方案 1:自签名证书(测试 / 内网)

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

填写信息示例:

  • Common Name:服务器 IP 或域名

方案 2:Let’s Encrypt(公网服务器,推荐)

sudo apt install certbot -y
sudo certbot certonly --standalone -d ftp.example.com

证书路径:

/etc/letsencrypt/live/ftp.example.com/

四、配置 vsftpd 启用加密(重点)

编辑配置文件:

sudo nano /etc/vsftpd.conf

1️⃣ 基础配置

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES

2️⃣ SSL/TLS 核心配置(关键)

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/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key

✅ 显式 FTPS(客户端主动加密)


3️⃣ 被动模式(非常重要)

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的服务器公网IP或域名

防火墙放行:

sudo ufw allow 30000:31000/tcp

五、重启 vsftpd

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

六、测试 FTPS 是否加密

方法 1:使用 lftp(推荐)

sudo apt install lftp
lftp -u 用户名 服务器IP
set ftp:ssl-force true
ls

方法 2:FileZilla(图形化)

  • 协议:FTP over TLS (Explicit FTPS)
  • 端口:21
  • 接受证书即可

七、常见问题排查

❌ 连接失败

  • 检查端口:21 + 30000-31000
  • 查看日志:
sudo journalctl -u vsftpd

❌ 证书不受信任(自签名)

✅ 正常,客户端选择“信任”即可


八、重要补充(非常关键)

⚠️ FTP 是老协议,除非必须用,否则不建议使用

✅ 更现代、更安全的替代方案

方案 说明
SFTP SSH 自带,自动加密(端口 22)
WebDAV over HTTPS 适合文件管理
Rsync over SSH 适合同步

如果只是文件传输,SFTP 比 FTPS 更好


九、我可以继续帮你

你可以直接告诉我: 1️⃣ Ubuntu 版本(20.04 / 22.04 / 24.04)
2️⃣ 内网还是公网
3️⃣ 是 FTPS 还是 SFTP
4️⃣ 是否用 FileZilla / lftp / 代码连接

我可以给你 完全针对性的配置

0