Skip to content

防火墙与端口转发 ​

防火墙管理 ​

自动识别宿主机上正在使用的防火墙实现,并给出对应的图形化增删规则:

实现说明
firewalldCentOS / RHEL / Fedora 系
ufwUbuntu / Debian 系
nftables新一代 netfilter 前端
iptables传统 netfilter
  • 规则增删、启停、状态查看
  • 读取主机已有规则:不改动、不覆盖,面板打开即可看到宿主机上现存的全部规则
  • 规则生效状态:每条规则标注「已生效」或「已配置未生效」
  • 权限检测:执行前先判断能不能做,权限不足就不下发命令
  • 规则体检:一键检查现有规则列表,指出重复规则、放行任意来源、被前面规则覆盖而永不生效、以及已配置未生效的规则
  • 可用环境变量 GOPANEL_FIREWALL_BACKEND 强制指定实现(默认自动探测)
  • 「端口监控」里会标注端口是否已放行,方便对照排查

iptables 的规则读取范围 ​

iptables 没有独立的规则存储,规则就是当前生效的那份链式列表。面板用 iptables-save 读取全量表与全部链,并按「表 / 链 / 规则序号」展示:

维度范围
表filter、nat、mangle、raw、security
链内置链(INPUT / FORWARD / OUTPUT / PREROUTING / POSTROUTING)+ 用户自定义链(如 DOCKER)
字段动作、协议、端口、来源、目标,以及原始目标(自定义链跳转、MASQUERADE 等)

两点说明:

  • 链内顺序即匹配顺序,列表按链分组后原样展示,不做重排;filter/INPUT、nat/PREROUTING 这类「表 / 链」标签就是规则所在的真实位置。
  • 面板自己的端口转发规则(nat 表 GOPANEL_FWD 链及其跳转)不在访问规则列表里重复出现, 它们属于「端口转发」页签。
  • 删除按「表 + 链 + 序号」精确定位(iptables -t <表> -D <链> <序号>), 删的是你看到的那一条;链的默认策略(如 :INPUT DROP)不提供删除(不支持改策略)。

规则生效状态 ​

面板读到的规则来自两个地方,含义不同:

来源是什么什么时候影响流量
运行时规则内核里正在匹配流量的那份立刻
持久化配置重启后用来恢复规则的落盘配置重启 / 重载后

两者不一致时,列表会把它显式标出来:

  • 已生效:规则已进入内核,当前流量按此规则匹配;
  • 已配置未生效:规则写进了持久化配置,但运行时还没有它(典型场景:手工 iptables -A 加了规则却没保存、firewalld 写了永久规则而运行时未同步), 重启、重新加载防火墙后才会起作用。

防火墙服务本身未启用(如 ufw 未 enable)时,规则同样标为「已配置未生效」—— 配置再完整也不拦流量。

权限检测 ​

防火墙命令需要 root 或等价的 capabilities。面板在执行任何改配置的命令之前 先做权限检测(进程身份 + 只读探测),权限不足时不下发命令,直接返回 「缺什么、怎么补」:

检测项依据
进程身份有效用户 ID 是否为 0;非 root 时读 /proc/self/status 的 CapEff 判断 CAP_NET_ADMIN
实际读写用只读命令各读一次规则,能读说明权限确实到位(识别 caps 授予的场景)

结论分三档:可读写(root 或持有 CAP_NET_ADMIN)、只读(能读不能改)、 无权限(都读不到)。页面会明确展示当前档位;写操作在只读 / 无权限时会被拒绝 (HTTP 403),不会出现「命令报错但看不出原因」或「命令成功了却作用在错误对象上」。

补齐权限:以 root 运行面板(或授予 CAP_NET_ADMIN 能力)。

规则体检 ​

「访问规则 → 规则体检」对现有规则只读检查,不改动任何规则,输出四类问题:

问题判定建议
重复规则方向、动作、协议、端口、来源、目标完全相同的规则出现多份保留一条,其余删除;来自多套工具叠加时统一由一处维护
宽放行放行动作且来源与目标均为任意;整表都如此时升级为「需关注」收窄来源网段,或补上默认拒绝策略
影子规则同一方向上,更靠前的规则已完全覆盖(协议更宽、端口范围更大、来源网段包含、动作不限)删除无效规则,或把它调整到覆盖规则之前
已配置未生效规则在持久化配置里,但运行时没有它(见上文「规则生效状态」)需要就让防火墙重新生效(重启 / reload),不再需要则从配置中删除

多出的规则不影响最终匹配结果,但会让规则表难以维护——体检的价值是让「加了却没生效」和「随手复制粘贴出来的重复项」显式暴露出来。

端口转发 ​

图形化管理本机端口转发规则(参考 1Panel 的交互):

  • 源端口 / 目标地址与端口
  • 协议(TCP / UDP)
  • 规则启停与删除

作用范围 ​

部署形态为二进制宿主机安装,面板直接管理本机防火墙,无需任何额外配置: 防火墙、端口转发、SSH 管理、服务管理、端口监控都以宿主机为目标,开箱可用。

相关 ​

基于 AGPL-3.0 协议发布