> For the complete documentation index, see [llms.txt](https://docs.verge.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verge.io/knowledge-base/zh/networking/firewall-connection-tracking-state.md).

# 防火墙规则中的连接跟踪状态

如何在 VergeOS 防火墙规则上使用“连接跟踪状态”字段，在不影响出站连接返回流量的情况下阻止新的入站连接。

## 概述

{% hint style="info" %}
**关键要点**

* VergeOS 防火墙规则是有状态的；该 **连接跟踪状态** 字段按 conntrack 状态匹配数据包。
* 将一个 **丢弃** 规则限定为状态 `新建` 以阻止未经请求的入站连接，而不丢弃返回流量。
* 不要为返回流量添加你自己的接受规则——生成的链已经接受 `已建立`/`相关` 流量。
  {% endhint %}

VergeOS 防火墙规则是有状态的。该 **连接跟踪状态** 网络规则上的该字段仅匹配所选 conntrack 状态。它最常见的用途是使一个 **丢弃** 规则阻止 *新建* 入站连接，而不会同时丢弃 *返回流量* 属于受保护主机自己发起的连接。

## 前提条件

* 熟悉 [VergeOS 网络规则](/run-the-platform/zh/wang-luo/network-rules.md).
* 拥有编辑网络规则权限的用户。

## 连接跟踪状态字段

该字段可在网络规则的编辑表单中使用。留空可匹配任何状态。

**允许的值：** `新建`, `已建立`, `相关`, `未跟踪`.

| 状态    | 含义                                             |
| ----- | ---------------------------------------------- |
| `新建`  | 连接的第一个数据包——一次未经请求的连接尝试。                        |
| `已建立` | 属于已在双向看到的连接的数据包。                               |
| `相关`  | conntrack 将其关联到现有连接的新连接（例如，FTP 数据通道和 ICMP 错误）。 |
| `未跟踪` | 被明确排除在连接跟踪之外的数据包。                              |

该字段接受以逗号分隔的多个状态（`已建立,相关`）以及通过前导 `!=` (`!= 新建`).

{% hint style="info" %}
没有 `无效` 选项。VergeOS 已经通过系统基线规则（`ct state 无效 丢弃`）位于每个生成链的顶部附近，因此你无需自己添加。
{% endhint %}

## 问题：一个会破坏出站流量的丢弃规则

一个公网 IP 往往既用于入站服务，也用作其后方租户或虚拟机的出站 SNAT 地址。一个泛用的 **丢弃** 针对该目标 IP 的规则会按预期阻止未经请求的入站流量——但它也会丢弃租户自身出站流量的回复，因为这些回复以状态到达同一个公网 IP `已建立`.

症状是：租户无法访问互联网，移除拒绝规则后即可修复。

移除丢弃后，已建立的回复就能通过，但这也会重新开放未经请求的入站访问——这正是创建该规则要阻止的内容。不要移除规则；应限定其范围。

## 修复方法：将丢弃范围限定为新连接

1. 在网络的仪表板上，点击 **规则** 在左侧菜单中。
2. 选择 **丢弃** 规则并点击 **编辑** 在左侧菜单中。
3. 在 **连接跟踪状态** 字段中输入 `新建`.
4. 点击 **提交**.
5. 点击 **应用规则** 在左侧菜单中以使更改生效。

现在，该丢弃规则只匹配新的、未经请求的入站连接。出站连接的返回流量处于状态 `已建立`，不再匹配该丢弃规则，并继续落到该链末尾的 `ct state 已建立,相关 接受`.

## 为什么不需要返回路径的接受规则

VergeOS 为每个网络生成其 `输入` 和 `转发` 链，带有 `丢弃` 策略，并在末尾附有 `ct state 已建立,相关 接受` 作为最后一行。nftables 自上而下评估规则，而 `丢弃` 和 `接受` 是终止性的：放在该末尾接受规则上方且未限定范围的丢弃会在返回流量到达接受之前将其拦截。将丢弃限定为 `新建` 则允许已建立和相关流量继续传递到末尾的接受——你无需自己添加接受规则。

> **思维模型：** 阻止 `新建` 以锁定未经请求的入站。让 `已建立` 和 `相关` 流动，这样受保护主机发起的任何连接都能完成。

## 值得了解

* 规则顺序很重要。末尾的 `已建立,相关 接受` 是生成链的最后一行；位于其上方且未设置状态的泛用丢弃会吞掉返回流量。
* 同样的范围限定也适用于任何规则，不仅仅是丢弃。例如，将入站 **接受** 到 `新建` 以控制哪一侧可以发起连接。
* 该 `相关` 状态对具有由助手跟踪的次级流的协议很重要（FTP、某些 VoIP、ICMP 错误）；末尾的系统接受规则已涵盖这些。

## 其他资源

* [网络规则](/run-the-platform/zh/wang-luo/network-rules.md)

{% hint style="info" %}
**需要帮助？**

如果你对该流程有疑问或遇到问题，请联系 VergeOS 支持团队。
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.verge.io/knowledge-base/zh/networking/firewall-connection-tracking-state.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
