Ubuntu中VSFTPD防火墙配置指南(以UFW为例)
在配置防火墙前,需确保VSFTPD已安装并正常运行:
sudo apt update && sudo apt install vsftpd
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
防火墙需放行VSFTPD的控制连接(21端口)和数据连接(被动模式端口范围),因此需先修改VSFTPD配置文件:
sudo nano /etc/vsftpd.conf
pasv_enable=YES # 启用被动模式
pasv_min_port=50000 # 被动模式最小端口(建议设为50000+)
pasv_max_port=50100 # 被动模式最大端口(与最小端口间隔≥100)
sudo systemctl restart vsftpd
sudo ufw enable
sudo ufw allow 21/tcp
/etc/vsftpd.conf中设置的pasv_min_port和pasv_max_port,放行对应端口范围(示例为50000-50100):sudo ufw allow 50000:50100/tcp
sudo ufw allow ssh
sudo ufw reload
sudo ufw status
正常输出应包含:21/tcp ALLOW Anywhere
50000:50100/tcp ALLOW Anywhere
使用FTP客户端(如FileZilla)连接服务器,选择“被动模式(PASV)”,验证是否能正常登录、上传/下载文件。若连接失败,需检查:
pasv_enable是否为YES;allow_writeable_chroot=YES(限制用户在其主目录)并结合SFTP(SSH File Transfer Protocol)替代,提升数据传输安全性。