温馨提示×

ubuntu ftpserver怎么配ssl

小樊
55
2026-09-02 12:21:24
栏目: 云计算

在 Ubuntu 上配置 FTP 服务器(以 vsftpd 为例)并使用 SSL/TLS 加密,通常步骤如下:


一、安装 vsftpd

sudo apt update
sudo apt install vsftpd

二、生成 SSL 证书

方式 1:使用自签名证书(测试用)

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

按提示填写信息即可

方式 2:使用 Let’s Encrypt(生产推荐)

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

证书路径一般为:

/etc/letsencrypt/live/ftp.example.com/fullchain.pem
/etc/letsencrypt/live/ftp.example.com/privkey.pem

三、配置 vsftpd 使用 SSL

编辑配置文件:

sudo nano /etc/vsftpd.conf

添加或修改以下内容:

# 启用 SSL
ssl_enable=YES

# 禁止匿名使用 SSL
allow_anon_ssl=NO

# 强制使用 TLS(推荐)
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

# 如果使用 Let's Encrypt
# rsa_cert_file=/etc/letsencrypt/live/ftp.example.com/fullchain.pem
# rsa_private_key_file=/etc/letsencrypt/live/ftp.example.com/privkey.pem

# 被动模式(云服务器必开)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

四、防火墙设置

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

五、重启 vsftpd

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

六、客户端连接方式

  • 使用 FTP over TLS(Explicit)
  • 端口:21
  • 客户端示例:
    • FileZilla → 站点管理 → 协议选 FTP over TLS
    • 自签名证书会提示,选择“信任”

七、常见问题

1. 连接被拒绝

  • 检查 vsftpd 是否运行
  • 检查防火墙和云安全组

2. 证书不受信任

  • 自签名证书正常现象
  • 生产环境用 Let’s Encrypt

3. 被动模式失败

  • 必须开放 pasv_min_port ~ pasv_max_port

如果你用的是 ProFTPD / Pure-FTPd,或者需要 FTPS vs SFTP 区别说明,也可以告诉我。

0 踩