Linux下配置系统防火墙以支持FileZilla的步骤
FileZilla作为FTP客户端,其本身不提供防火墙设置功能,需通过Linux系统的防火墙工具(如iptables、firewalld、ufw)配置规则,允许FTP流量通过。以下是具体方法:
FTP服务默认使用21端口(控制连接),若启用被动模式(推荐),需额外开放数据端口范围(如50100-52100)。需根据实际配置调整端口数值。
iptables是Linux经典防火墙工具,适用于大多数发行版(如CentOS 7以下、Debian 9以下)。
查看现有规则:
sudo iptables -L -n --line-numbers
确认当前规则列表,避免冲突。
允许FTP控制端口(21):
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
允许TCP协议的21端口流量(FTP控制连接)。
允许FTP数据端口(被动模式):
若使用被动模式,需开放数据端口范围(如50100-52100):
sudo iptables -A INPUT -p tcp --dport 50100:52100 -j ACCEPT
替换为实际使用的端口范围。
保存规则:
不同发行版的保存路径不同:
sudo iptables-save > /etc/iptables/rules.v4sudo service iptables savefirewalld是当前主流防火墙管理工具(如CentOS 7+、Fedora、Ubuntu 22.04+),支持动态规则和区域管理。
启动并启用firewalld:
sudo systemctl start firewalld
sudo systemctl enable firewalld
确保服务运行且开机自启。
允许FTP服务(自动开放21端口):
sudo firewall-cmd --permanent --add-service=ftp
此命令会自动开放FTP控制端口(21)及被动模式所需端口(需提前配置FileZilla Server的被动模式端口范围)。
手动添加被动模式端口范围(若未用服务):
若未使用--add-service=ftp,需手动开放21端口和数据端口:
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=50100-52100/tcp
替换为实际端口范围。
重新加载规则:
sudo firewall-cmd --reload
使永久规则生效。
验证规则:
sudo firewall-cmd --list-all
检查ports或services列表中是否包含21端口及数据端口范围。
ufw(Uncomplicated Firewall)是Debian/Ubuntu的简化防火墙工具,适合新手。
安装ufw:
sudo apt update && sudo apt install ufw
启用ufw并设置默认策略:
sudo ufw enable
sudo ufw default deny incoming # 拒绝所有入站流量(默认安全)
sudo ufw default allow outgoing # 允许所有出站流量
允许FTP服务:
sudo ufw allow ftp
自动开放21端口及被动模式端口(需提前配置FileZilla Server)。
手动添加端口(可选):
若需自定义端口范围:
sudo ufw allow 21/tcp
sudo ufw allow 50100:52100/tcp
查看状态:
sudo ufw status verbose
确认规则已生效。
若使用被动模式,需在FileZilla Server中设置被动模式端口范围,并与防火墙规则一致:
sudo firewall-cmd --permanent --add-source=192.168.1.0/24),减少攻击面。