Linux 防火墙核心操作


一、前置说明

  • 基于 CentOS 7+/RHEL 7+ 系统(默认 firewalld,非 iptables)。
  • 所有命令需 root 权限(前缀 sudo 或切换 root)。
  • 端口协议:tcp(SSH/HTTP)或 udp(DNS),按需指定。

二、核心操作命令

1. 查看防火墙状态
systemctl status firewalld
  • 输出 active (running) 已启动;inactive (dead) 未启动。
2. 启动防火墙(未激活时)
systemctl start firewalld
  • 可选:开机自启(避免重启失效)
    systemctl enable firewalld
3. 查看已开放端口
  • 临时开放(重启防火墙失效):
    firewall-cmd –list-ports

  • 永久开放(重启仍有效):
    firewall-cmd –list-ports –permanent

4. 开放端口
  • 临时开放(示例:223/tcp):

    firewall-cmd –add-port=223/tcp

  • 永久开放(示例:223/tcp):

    firewall-cmd –add-port=223/tcp –permanent

  • 批量开放(示例:8000-8080/tcp):

    firewall-cmd –add-port=8000-8080/tcp –permanent

5. 关闭端口
  • 临时关闭(示例:80/tcp):

    firewall-cmd –remove-port=80/tcp

  • 永久关闭(示例:80/tcp):

    firewall-cmd –remove-port=80/tcp –permanent

6. 生效配置(关键步骤)
firewall-cmd --reload  # 重载规则
systemctl restart firewalld  # 重启防火墙确保生效

三、常见问题与注意事项

  1. 命令修正:原 firewll-cmd 拼写错误→正确 firewall-cmd
  2. 端口开放后无法访问:
  • 确认协议正确(UDP 端口需指定 udp);
  • 云服务器需同步开放安全组(阿里云 / 腾讯云等双重配置)。
  1. 关闭防火墙(不推荐):
    systemctl stop firewalld && systemctl disable firewalld
  2. 验证端口状态:
    firewall-cmd –query-port=223/tcp # yes=开放,no=未开放

(注:文档部分内容可能由 AI 生成)