安装vsFTP
sudo apt update && sudo apt install vsftpd
配置网络参数
/etc/vsftpd.conf,关键参数包括:
listen=YES:启用独立监听模式(默认)。listen_ipv6=NO:禁用IPv6(若无需IPv6)。pasv_enable=YES:启用被动模式(推荐,避免防火墙限制)。pasv_min_port/pasv_max_port:设置被动模式端口范围(如30000-31000)。connect_from_port_20=YES:允许主动模式使用20端口(数据连接)。防火墙设置
ufw开放FTP端口:sudo ufw allow 20/tcp # 主动模式数据端口
sudo ufw allow 21/tcp # 控制端口
sudo ufw allow 30000:31000/tcp # 被动模式端口范围(需与配置一致)
sudo ufw reload
用户权限配置
sudo adduser ftpuser
sudo usermod -aG ftp ftpuser
sudo chown -R ftpuser:ftpuser /home/ftpuser
sudo chmod -R 755 /home/ftpuser
/etc/vsftpd.conf中启用chroot_local_user=YES,限制用户仅能访问主目录。启用SSL加密(可选)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
sudo nano /etc/vsftpd.conf
# 添加以下内容
ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES
force_local_logins_ssl=YES
重启服务并测试
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
使用FTP客户端(如FileZilla)连接,验证端口、用户权限及加密是否生效。
注意:被动模式需确保服务器防火墙放行指定端口范围,且客户端需正确配置被动模式参数。