用途:在生成、审查或调试 nftables 规则集时使用,尤其当 LLM 可能产出语法通过、却对特定链类型、hook 或 family 语义无效的规则时。触发场景包括编写 nftables.conf、审查 .nft 文件、排查 nft -f / nft -c 失败、确认各 hook 可用动作、在 table inet 中编写 IPv4 与 IPv6 规则,以及生成 lint 检查表。
主要能力:提供快速上手规则集模式与安全的默认基础链、主机/路由器常见可复用模式、运维流程(校验/应用/列出/监控/重载)、持久化发现(含可能加载自定义 .nft 文件的 systemd 单元与 drop-in)、hook/链类型/family 约束、语句级约束(dnat、snat、masquerade、redirect、reject、tproxy、queue)、inet 双栈陷阱、使用 nft -c 与 --debug 的调试流程,以及指向官方文档与用户态源码的映射。
使用方式:先确定规则集形态(family、table 用途、链类型/hook/优先级/策略、是否需要设备)。从已有模板起步,而非直接写孤立规则。对照约束矩阵检查结构性合法性,核查常见 LLM 错误。若环境中有 nft,运行 nft -c -f <file>,原因不明时用 nft -c -d parser,eval,netlink -f <file>。按需加载参考文件,并可用 examples/nftables/ 下可直接编辑的示例。审查输出建议顺序:问题(具体链/规则)、原因(违反的 hook/family/语句约束)、修复(替换片段)、验证(nft -c 或版本敏感说明)。
限制:合法性分三层(解析器、用户态语义检查 src/evaluate.c、内核 nf_tables 支持),许多失败并非语法错误。不应臆断 hook 支持,不确定时须查矩阵并用 nft -c 验证。未知目标环境时应明确说明,并要求在目标主机上执行 nft -c -f。生成代码时优先使用显式协议上下文;在 table inet 中除非有充分理由,建议分开写 IPv4 与 IPv6 规则。wiki 示例仅作参考,非唯一事实来源。