温馨提示×

CentOS下Filezilla的防火墙设置指南

小樊
36
2025-12-21 08:13:42
栏目: 智能运维

CentOS下FileZilla的防火墙设置指南

一 场景与原则

  • FileZilla是跨平台的FTP/SFTP客户端,本身不提供防火墙配置功能;在CentOS上应通过系统防火墙(推荐firewalld)放行相应端口与协议。
  • 区分两类用法:
    • 使用FileZilla客户端连接外部FTP/SFTP服务器:只需在客户端所在机器的防火墙放行出站连接(通常出站默认允许,无需额外配置)。
    • 在CentOS上部署FTP服务器(如安装FileZilla Server或使用vsftpd):需在服务器放行控制连接端口被动模式数据端口,并在服务器软件内正确配置被动端口范围与返回地址。

二 使用 firewalld 放行 FTP 服务器

  • 场景A 部署 FileZilla Server(主动/被动模式)

    1. 在FileZilla Server管理器中设置被动模式端口范围(示例:50100–52100),并确认服务器公网IP或NAT映射正确。
    2. 在CentOS放行端口:
      • 放行控制端口:firewall-cmd --permanent --add-port=21/tcp
      • 放行被动端口范围:firewall-cmd --permanent --add-port=50100-52100/tcp
      • 使配置生效:firewall-cmd --reload
      • 验证:firewall-cmd --list-all
    3. 说明:上述端口范围可按需调整,但必须在服务器端与防火墙保持一致。
  • 场景B 使用 vsftpd(系统自带FTP服务)

    1. 安装并启用vsftpd(示例):sudo yum install vsftpd -y && sudo systemctl start vsftpd && sudo systemctl enable vsftpd
    2. 放行FTP服务(firewalld内置ftp服务会同时处理控制与被动数据通道):firewall-cmd --permanent --add-service=ftp && firewall-cmd --reload
    3. 如需自定义被动端口范围,请在**/etc/vsftpd/vsftpd.conf中设置如pasv_min_port=50100pasv_max_port=52100**,并在防火墙放行相同范围。

三 使用 iptables 放行 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
  • 注意:iptables规则需持久化保存,避免重启后丢失。

四 验证与常见问题

  • 验证端口与服务
    • 查看firewalld规则:firewall-cmd --list-all
    • 测试控制端口连通:nc -vz 服务器IP 21telnet 服务器IP 21
  • 被动模式要点
    • 服务器与防火墙的被动端口范围必须一致(如50100–52100)。
    • 若服务器位于NAT之后,需在FileZilla Server设置被动模式返回地址为服务器的公网IP,避免数据通道回连失败。
  • 连接失败排查
    • 核对服务器防火墙是否放行21/tcp与被动端口范围。
    • 核对FTP服务(FileZilla Server/vsftpd)的被动端口配置与日志报错。
    • 如使用云服务器,确保安全组/ACL同样放行相关端口。

0