温馨提示×

如何在Linux上配置FileZilla的防火墙

小樊
41
2026-01-06 12:52:54
栏目: 智能运维

Linux上配置FileZilla相关防火墙

前置说明

  • FileZilla 是跨平台的 FTP/SFTP 客户端,本身不提供防火墙配置功能;需要在 Linux 系统防火墙(如 firewalld、ufw、iptables)中放行相应端口。
  • 先明确你使用的是 SFTP(基于 SSH,端口 22) 还是 FTP(端口 21 + 被动模式端口范围),两者的放行方式不同。

方案一 放行SFTP连接(推荐)

  • 适用:使用 SFTP 协议(端口 22/TCP)进行文件传输。
  • firewalld
    • 查看状态:sudo firewall-cmd --state
    • 放行 SSH:sudo firewall-cmd --permanent --add-service=ssh
    • 重新加载:sudo firewall-cmd --reload
  • ufw
    • 允许 SSH:sudo ufw allow 22/tcp
    • 启用防火墙:sudo ufw enable
  • iptables
    • 放行 22/TCP:sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    • 保存规则(发行版不同,示例):sudo iptables-save | sudo tee /etc/iptables/rules.v4
  • 说明:SFTP 只需放行 22/TCP,无需额外数据端口。

方案二 放行FTP连接(主动与被动模式)

  • 适用:使用 FTP 协议(控制通道 21/TCP,数据通道分主动/被动)。
  • 服务端(FileZilla Server 或 vsftpd)需先设定被动端口范围,例如 50100–52100/TCP,并确保服务监听 21/TCP
  • firewalld
    • 放行控制端口:sudo firewall-cmd --permanent --add-port=21/tcp
    • 放行被动端口范围:sudo firewall-cmd --permanent --add-port=50100-52100/tcp
    • 重新加载:sudo firewall-cmd --reload
  • ufw
    • 放行控制端口:sudo ufw allow 21/tcp
    • 放行被动端口范围(示例):sudo ufw allow 50100:52100/tcp
  • iptables
    • 放行控制端口:sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    • 放行被动端口范围:sudo iptables -A INPUT -p tcp --dport 50100:52100 -j ACCEPT
    • 保存规则:sudo iptables-save | sudo tee /etc/iptables/rules.v4
  • 说明:主动模式由服务器主动连客户端数据端口,通常还需放行服务器到客户端的出站规则;在 NAT/云环境中更推荐使用 被动模式 并固定端口范围。

验证与常见问题

  • 连通性测试
    • 测试控制端口:nc -vz <服务器IP> 21telnet <服务器IP> 21
    • 测试被动端口范围(示例):nc -vz <服务器IP> 50100-52100
  • 常见原因与处理
    • 云服务器安全组未放行对应端口:在控制台放行 21/TCP被动端口范围
    • FTP 被动模式失败:确认服务器已设置被动端口范围,且防火墙/网关已放行该范围;若服务器在 NAT 后,需在被动设置中填写 公网IP

0