在 Ubuntu 上搭建 加密的 FTP 服务器,常见做法有三种,推荐程度从高到低如下:
最常用、兼容性好,基于 vsftpd + SSL 证书。
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
anonymous_enable=NO
local_enable=YES
write_enable=YES
# 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
sudo systemctl restart vsftpd
更安全、更简单,不需要额外服务
sudo apt install openssh-server
协议:SFTP
主机:服务器IP
端口:22
用户名 / 密码(或密钥)
sudo nano /etc/ssh/sshd_config
添加:
Match User ftpuser
ChrootDirectory /home/ftpuser
ForceCommand internal-sftp
sudo systemctl restart ssh
普通 FTP 是 明文传输,用户名密码可被窃听,不建议使用。
| 方式 | 加密 | 端口 | 推荐度 |
|---|---|---|---|
| FTPS | ✅ | 21 | ⭐⭐⭐⭐ |
| SFTP | ✅ | 22 | ⭐⭐⭐⭐⭐ |
| FTP | ❌ | 21 | ❌ |
如果你愿意,我可以:
你现在的 Ubuntu 版本是多少?用于什么场景?