在 Ubuntu 下搭建 FTP Server(支持 FTP / FTPS),最常用、稳定的方案是 vsftpd(Very Secure FTP Daemon)。下面我分 普通 FTP 和 FTPS(加密) 两种方式说明。
sudo apt update
sudo apt install vsftpd
安装完成后:
sudo systemctl enable vsftpd
sudo systemctl start vsftpd
sudo adduser ftpuser
设置密码并记住。
sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
编辑配置文件:
sudo nano /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
allow_writeable_chroot=YES
保存后重启:
sudo systemctl restart vsftpd
此时可用:
ftp://服务器IP
使用 ftpuser 登录。
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.pem \
-out /etc/ssl/private/vsftpd.pem
在 /etc/vsftpd.conf 中添加:
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
重启服务:
sudo systemctl restart vsftpd
客户端使用 FTPS(显式) 连接。
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
并在配置中加入:
pasv_min_port=40000
pasv_max_port=50000
确认:
write_enable=YES
allow_writeable_chroot=YES
anonymous_enable=YES
anon_root=/srv/ftp
如果你需要:
可以告诉我你的使用场景,我可以给你更精确的配置。