ctstate
ctstate 是 conntrack 对“当前报文相对连接跟踪条目”的分类标签(用于规则匹配),主要依据:
-
是否绕过跟踪(raw 表
NOTRACK/ nftables bypass) -
是否命中 conntrack 条目(original/reply 方向)
-
是否已见 reply(常见关键位:
SEEN_REPLY) -
是否命中 expectation 或可被关联(helper / ICMP 错误嵌套头)
-
协议跟踪器是否接受该报文(否则可能是
INVALID)
| ctstate | 含义(策略视角) | 典型判定要点 |
|---|---|---|
NEW |
新流量/新建条目 | 查表未命中但允许创建;或条目存在但尚未见 reply(UDP 常见) |
ESTABLISHED |
已有双向迹象 | 命中条目且已见 reply(常见依据:SEEN_REPLY=1) |
RELATED |
与既有连接相关 | 命中 expectation(helper 预告)或 ICMP 错误可关联回已有条目 |
INVALID |
无法可靠追踪/归属 | 解析失败/状态机不接受/分片校验问题/不可匹配等 |
UNTRACKED |
明确不走 conntrack | raw 表命中 NOTRACK 或 nftables bypass |
iptables/ebtables 示例
iptables:
|
|
nftables:
|
|
快速验证
-
conntrack -L:看是否存在条目/超时 -
conntrack -E:实时看是否创建、何时出现 reply -
/proc/net/nf_conntrack:内核导出
ctstate vs ctstatus
ctstate:对当前报文的分类ctstatus:条目内部标志位(如SEEN_REPLY、EXPECTED等),ctstate通常由这些标志位综合得出