温馨提示×

FileZilla在CentOS上如何设置防火墙

小樊
36
2026-01-03 23:25:07
栏目: 智能运维

在 CentOS 上为 FileZilla 配置防火墙

前置说明

  • FileZilla 是客户端,不负责系统防火墙;需要在 CentOS 上放行相应端口与服务,才能正常连接 FTP/SFTP 服务器。
  • 常见场景有两类:连接外部 FTP/SFTP 服务器(只需放行本机出站);在 CentOS 上自建 FTP 服务器并用 FileZilla 连接(需放行服务器入站端口,并正确配置 FTP 被动模式端口范围)。

场景一 作为客户端连接外部服务器

  • 放行出站 FTP 控制连接(默认端口 21/TCP):
    • 使用 firewalld:
      sudo firewall-cmd --permanent --add-port=21/tcp
      sudo firewall-cmd --reload
      
    • 如使用较新的 firewalld,可直接放行 FTP 服务(包含控制通道的被动端口协商):
      sudo firewall-cmd --permanent --add-service=ftp
      sudo firewall-cmd --reload
      
  • 说明:大多数情况下,出站连接默认策略为允许;若被限制,按上放行即可。SFTP 走 22/TCP,通常系统已放行 SSH,无需额外配置。

场景二 在 CentOS 上自建 FTP 服务器并用 FileZilla 连接

  • 安装并启动 vsftpd(示例):
    sudo yum install -y vsftpd
    sudo systemctl enable --now vsftpd
    
  • 放行 FTP 控制端口(21/TCP):
    sudo firewall-cmd --permanent --add-port=21/tcp
    
  • 配置被动模式端口范围(示例范围:6000–7000/TCP),编辑 /etc/vsftpd/vsftpd.conf
    pasv_enable=YES
    pasv_min_port=6000
    pasv_max_port=7000
    
    保存后重启服务:
    sudo systemctl restart vsftpd
    
  • 放行被动模式数据端口范围:
    sudo firewall-cmd --permanent --add-port=6000-7000/tcp
    sudo firewall-cmd --reload
    
  • SELinux 与权限(如遇到无法列目录或上传):
    sudo setsebool -P ftpd_full_access on
    sudo setsebool -P ftp_home_dir on
    
  • 说明:主动模式涉及 20/TCP 数据端口,但在 NAT/云环境常受限,生产更推荐被动模式并显式放行端口范围。

验证与排错

  • 查看已放行端口/服务:
    sudo firewall-cmd --list-ports
    sudo firewall-cmd --list-services
    sudo firewall-cmd --list-all
    
  • 连接测试(服务器本机):
    nc -vz localhost 21
    
  • FileZilla 端建议:使用 被动模式(Edit → Settings → FTP),端口填写 21,若服务器启用了被动端口范围,请确保与服务器配置一致。

0