FileZilla与防火墙的正确配置
一、先明确角色与总体原则
- FileZilla分为客户端与服务器(FileZilla Server);防火墙并不是在FileZilla里设置,而是在操作系统或云安全组上放行相应端口与协议。
- FTP有主动模式与被动模式之分:主动模式由服务器从20/TCP主动连客户端数据端口;被动模式由服务器开放一段被动端口范围,客户端主动连这些端口。两者对防火墙的要求不同,部署前先确定模式并在防火墙中对应放行。
二、Linux服务器部署 FileZilla Server 的防火墙配置
- 使用 firewalld(推荐,适用于 CentOS/RHEL/Fedora 等)
- 启动并持久化防火墙
sudo systemctl start firewalld && sudo systemctl enable firewalld
- 放行控制端口
sudo firewall-cmd --permanent --add-port=21/tcp
- 配置并放行被动端口范围(示例:50100-52100/TCP)
- 在 FileZilla Server 管理界面设置被动模式的端口范围(Edit → Settings → Passive mode settings → Use custom port range)
- 防火墙放行该范围:sudo firewall-cmd --permanent --add-port=50100-52100/tcp
- 应用规则
sudo firewall-cmd --reload && sudo firewall-cmd --list-all
- 使用 UFW(适用于 Debian/Ubuntu 等)
- 启用 UFW
sudo ufw enable && sudo ufw default deny incoming && sudo ufw default allow outgoing
- 放行控制端口与被动端口范围(示例:50100-52100/TCP)
sudo ufw allow 21/tcp
sudo ufw allow 50100:52100/tcp
- 查看状态
sudo ufw status
- 使用 iptables(传统方式)
- 放行控制端口
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
- 放行被动端口范围(示例:50100-52100/TCP)
sudo iptables -A INPUT -p tcp --dport 50100:52100 -j ACCEPT
- 保存规则(路径因发行版而异)
sudo iptables-save > /etc/iptables/rules.v4
- 补充说明
- 若使用主动模式,需确保服务器能访问客户端高位端口;在严格NAT/云环境中通常更推荐被动模式并显式放行端口范围。
- 云服务器还需在安全组中放行上述端口(TCP)。
三、客户端侧防火墙要点(Windows/macOS/Linux)
- 客户端一般只需能发起出站连接到服务器的21/TCP与被动端口范围;多数桌面防火墙默认允许已启动应用出站,通常无需额外放行。
- 若遇到“能连上但列目录卡住/失败”,多为被动端口未放行:
- 在客户端站点设置中,将“传输模式”临时改为主动模式做对比测试;
- 若必须使用被动模式,请确认服务器端已配置并放行被动端口范围,且云安全组/本机防火墙同样放行。
四、快速排障清单
- 服务器侧:
- 核对服务监听:ss -lntp | grep :21;
- 核对被动端口范围与防火墙一致:firewall-cmd --list-ports(或 ufw status/iptables -L -n);
- 云安全组是否放行21/TCP与被动端口范围。
- 客户端侧:
- 使用 telnet 或 nc 测试连通性:telnet 服务器IP 21 或 nc -vz 服务器IP 21;
- 在 FileZilla 站点设置中切换主动/被动模式对比;
- 查看“消息日志”定位是控制连接还是数据连接失败。