温馨提示×

FileZilla Linux版如何设置防火墙

小樊
37
2026-01-02 15:29:40
栏目: 智能运维

Linux上配置防火墙以配合FileZilla

前置说明

  • FileZilla 是客户端,本身不提供防火墙配置功能;需要在 Linux 系统防火墙中放行相应端口与协议。
  • 先确认你使用的是 FTP/SFTP/FTPS,不同协议所需端口完全不同。
  • 建议优先使用 SFTP(基于 SSH,端口 22),仅需放行 SSH 端口,配置最简单且更安全。

常见场景与放行端口

  • 作为客户端连接外部 FTP/SFTP/FTPS
    • SFTP:放行 22/TCP(SSH)。
    • FTP 主动模式:放行 21/TCP(控制)20/TCP(数据)
    • FTP 被动模式:放行 21/TCP(控制) 与一段 被动端口范围(数据),端口范围需在服务器端配置并在防火墙放行。
    • FTPS(显式/隐式):放行 21/TCP(控制) 与被动端口范围(数据);隐式 FTPS 常用 990/TCP(控制),数据端口同样需要放行。
  • 作为服务器(FileZilla Server)供外部连接
    • SFTP:放行 22/TCP(并确保 SSH 服务运行)。
    • FTP:放行 21/TCP 与配置的被动端口范围;若用 FTPS,还需放行 990/TCP(隐式)及被动端口范围。

按防火墙工具配置

  • firewalld(RHEL/CentOS/Fedora)
    • 查看状态:sudo firewall-cmd --list-all
    • SFTP(推荐):sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload
    • FTP 主动模式:sudo firewall-cmd --permanent --add-port=21/tcp && sudo firewall-cmd --permanent --add-port=20/tcp && sudo firewall-cmd --reload
    • FTP 被动模式(示例端口范围 50100–52100):sudo firewall-cmd --permanent --add-port=21/tcp && sudo firewall-cmd --permanent --add-port=50100-52100/tcp && sudo firewall-cmd --reload
    • FTPS 隐式(示例):sudo firewall-cmd --permanent --add-port=990/tcp && sudo firewall-cmd --permanent --add-port=50100-52100/tcp && sudo firewall-cmd --reload
  • UFW(Debian/Ubuntu)
    • 启用:sudo ufw enable
    • SFTP(推荐):sudo ufw allow 22/tcp
    • FTP 主动模式:sudo ufw allow 21/tcp && sudo ufw allow 20/tcp
    • FTP 被动模式(示例):sudo ufw allow 21/tcp && sudo ufw allow 50100:52100/tcp
    • 状态查看:sudo ufw status
  • iptables(传统方式)
    • FTP 主动模式:sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT && sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
    • FTP 被动模式(示例):sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT && sudo iptables -A INPUT -p tcp --dport 50100:52100 -j ACCEPT
    • 保存(发行版不同):如 sudo iptables-save > /etc/iptables/rules.v4(Debian 系常见)或 sudo service iptables save(CentOS 6/7 常见)。

FTP 被动模式与服务器侧设置

  • FileZilla Server 管理界面:Edit → Settings → Passive mode settings,勾选 “Use custom port range”,设置一个端口范围(如 50100–52100),并确保云厂商/机房安全组也放行该范围。
  • 若使用 FTPS,在服务器设置中启用 SSL/TLS,并为被动连接生成证书;防火墙需放行 990/TCP(隐式) 与控制端口 21/TCP,以及前述被动端口范围。

快速连通性测试

  • 测试端口连通性(示例):nc -vz <服务器IP或域名> 21nc -vz <服务器IP或域名> 22nc -vz <服务器IP或域名> 990nc -vz <服务器IP或域名> 50100
  • 若使用 FTP,建议在 FileZilla 站点管理器中将 “Encryption” 设为 “Only use plain FTP (insecure)” 先做连通性验证,再改为 “Require explicit FTP over TLS” 或 “Require implicit FTP over TLS” 提升安全性。

0