在 Ubuntu 上搭建 FTP 服务器并开启加密,通常有几种主流方案。下面按最常用、最推荐的顺序说明。
sudo apt update
sudo apt install vsftpd
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.key \
-out /etc/ssl/certs/vsftpd.crt
编辑配置文件:
sudo nano /etc/vsftpd.conf
加入或修改以下内容:
listen=YES
listen_ipv6=NO
# 启用 SSL
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
# 被动模式(云服务器必须)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
sudo systemctl restart vsftpd
sudo ufw allow 21
sudo ufw allow 40000:50000/tcp
SFTP 不是 FTP,而是基于 SSH,默认加密
sudo apt install openssh-server
协议:SFTP
端口:22
用户名 / 密码(或密钥)
✅ 无需额外配置
❌ 不能像 FTP 那样做匿名用户
sudo apt install pure-ftpd
sudo apt install pure-ftpd-tls
生成证书:
sudo openssl req -x509 -nodes -newkey rsa:2048 \
-keyout /etc/ssl/private/pure-ftpd.pem \
-out /etc/ssl/private/pure-ftpd.pem
启用 TLS:
echo 2 > /etc/pure-ftpd/conf/TLS
重启:
sudo systemctl restart pure-ftpd
| 方案 | 加密 | 推荐度 |
|---|---|---|
| SFTP (SSH) | ✅ | ⭐⭐⭐⭐⭐ |
| vsftpd + FTPS | ✅ | ⭐⭐⭐⭐ |
| Pure-FTPd TLS | ✅ | ⭐⭐⭐ |
Q:FTPS 和 SFTP 区别?
Q:云服务器连不上?
如果你告诉我:
我可以给你一份精确配置方案。