> 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/run-the-platform/zh/vpn/ipsec.md).

# IPsec 配置

VergeOS 包含 IPsec 兼容性，允许在 VergeOS 网络与第三方 IPsec 对端之间配置 VPN 隧道。

{% hint style="info" %}
**使用 IPsec**

IPsec 功能适用于有特定 IPsec 需求的场景。建议在可行时改用 WireGuard。WireGuard 比 IPsec 性能更好，而且由于其配置更简单，因此不太容易因意外的安全配置错误而产生漏洞。
{% endhint %}

本文档提供了将 VergeOS 配置为 IPsec 对端的一般分步说明。具体示例配置链接位于本页底部。

## 高级步骤

* 创建一个 **VPN 网络** 并在必要时编辑 IPsec 配置
* 创建一个 **阶段 1** 配置
* 创建一个 **阶段 2** 配置
* 配置 **防火墙和路由规则**

## 创建 VPN 网络

1. 导航到 **网络** > **+ 新建 VPN**.
2. 配置网络字段。
   * **二层类型：** 无
   * **IP 地址类型：** 静态
   * **IP 地址：** VPN 路由器地址
   * **网络地址：** 此对端的本地网络范围
   * **接口网络：**
   * ***--无--*** 创建一个独立的 VPN 网络，其中与其他 VergeOS 网络的连接都通过三层路由处理。（推荐方法）
   * **选择一个现有网络** 通过二层将 VPN 网络直接附加到该网络。

有关其他网络字段的信息可见： [内部网络常规说明](/run-the-platform/zh/wang-luo/internal-networks.md)

## 编辑 IPsec 配置（如有必要）

通用 IPsec 设置已设为常见默认值。如有需要，可从以下位置修改这些设置： **VPN 网络控制面板**，单击 **编辑 IPsec** 左侧菜单中的。

{% hint style="info" %}
请查阅您的第三方 IPsec 提供商文档和/或通用文档资源，例如 NIST 提供的资源，以了解各个 IPsec 设置、不同选择的潜在权衡以及安全最佳实践。
{% endhint %}

* **配置模式**
  * *normal（默认）* - 此选项通常会使用，并包含常见的 IPsec 字段
  * *advanced* - 通过使用配置（conf）文件，允许进行广泛或非标准的 IPsec 配置
* **唯一 ID**
  * *是（默认）* - 保持特定参与者 ID 的唯一性。（也称为 *替换* 选项）
  * *从不* - 将忽略 INITIAL\_CONTACT 通知，且不会替换旧的 IKE\_SA
  * *否* - 仅在收到 INITIAL\_CONTACT 通知时替换 IKE\_SA。
* **建议协商 IPComp 压缩（默认禁用）：** 利用一种专门设计用于压缩 IP 数据包负载的特殊协议；远端对等方必须支持它。当传输的数据可压缩性很高时，这种压缩可能会有帮助；不过，它也会引入计算开销。通常还需要额外的防火墙规则来处理 IPIP 流量。
* **排除我的网络：** 此设置通常应启用。
* **Cisco 扩展：** 除非特别需要支持远端 IPsec 对端的配置，否则此设置应保持禁用。
* **IKEv1 主模式中的未加密 ID 和 HASH 负载（默认=禁用）：** 建议禁用，因为 IKEv1 主模式在初始交换期间传输未加密的 ID 和 HASH 负载，会引入若干安全漏洞。
* **MSS 钳制（默认=0/禁用）：** 在某些情况下，MSS 钳制可以提高 IPsec 隧道中的性能。不过，准确计算和设置 MSS 至关重要，因为错误的设置可能导致性能不佳和/或数据包丢失。
* **严格 CRL 策略（默认=否）：** IPsec 中的严格 CRL（证书吊销列表）策略规定，已吊销的证书在身份验证期间不被接受。
* **先建后拆（默认禁用）：** 在旧的 SA 仍处于活动状态时建立新的 SA；当新的 SA 准备就绪后移除旧的 SA。

## 创建阶段 1 配置

1. 从 **VPN 网络控制面板**，单击 **IPsec 隧道** > **新建**.
2. 输入一个 **名称** 以及可选的 **描述** 用于阶段 1。
3. 配置 **密钥交换版本**

* *自动* - 使用远端对等方发起的版本（IKEv1 或 IKEv2）
* *IKEv1*
* *IKEv2*

{% hint style="success" %}
**出于安全考虑，强烈建议使用 IKEv2。**
{% endhint %}

4. 输入 **远端网关地址：** （必填）另一端 IPsec 对等方的 WAN 地址。
5. 配置 **阶段 1 加密设置**
   * **算法**（默认 AES）
   * **密钥长度、哈希和 DH 组设置** （可选项将根据所选算法而变化）。
   * **生存期/单位** - SA 的自动过期设置（默认：3 小时）

{% hint style="info" %}
*注意：某些算法不提供强安全性，因此不建议使用，例如 Blowfish、3DES、CAST128、MD5、SHA1、DH 组 1、2、22、23、24*
{% endhint %}

6. 配置 **阶段 1 提议（身份验证）设置**

* **预共享密钥：** 可以手动输入，也可以使用生成按钮创建一个随机、安全的预共享密钥值。
* **协商模式：**
  * *主模式* - 默认，推荐模式
  * *激进模式* - 比主模式更不安全，但提供更高的灵活性
* **标识符：** 在 IKE 协商期间向远端对等方呈现的身份。留空时，将使用当前 IP。通常应输入该 IPsec 对等方的 WAN 地址，因为这是访问远端对等方时识别的源地址。
* **对等方标识符：** 期望从远端对等方获得的身份；通常可留空，以使用当前指定为 VPN 远端网关的地址。

7. 配置 **阶段 1 高级选项**

* **连接行为** 定义 IPsec 启动时要发生的行为：
  * *仅响应方* - 加载连接但不启动。
  * *按需* - 加载连接，并在检测到网络之间有流量时启动它
  * *启动* - 立即加载并启动连接
* **强制 UDP 封装** （默认=禁用）- 启用后，即使未检测到 NAT 也会强制使用 UDP 封装。
* **密钥尝试次数：** 在放弃前尝试协商连接或其替代连接的次数。值 0 表示永不放弃；此设置仅在本地有效，因此另一端不需要具有相同的设置。
* **重新密钥：** （默认=启用）可禁用/关闭，以防止本地发起对即将过期的连接进行重新协商；但是，它不会影响来自另一对等方的重新协商请求。
* **边际时间：** 定义在过期的密钥通道/连接进行替代协商之前所经过的时间长度；此设置仅在本地有效，因此另一端不需要具有相同的设置。
* **死对端检测：** 定义超时后要执行的默认操作：
  * *清除* - 关闭连接
  * *保持* - 监视新流量，如果检测到网络间有流量，则重新协商连接。
  * *重启（默认）* - 尝试立即重新协商连接
  * *无* - 禁止发送 DPD 消息
* **DPD 延迟：** （默认=30 秒）定义发送给对端的 R\_U\_There 消息/INFORMATIONAL 交换的时间间隔，这些消息仅在没有其他流量时发送。
* **DPD 失败次数：** 定义在不活动后自动删除对端连接的最大失败次数（此设置不适用于 IKEv2）。

{% hint style="info" %}
如有必要，可添加额外的阶段 1 定义。从 VPN 网络控制面板： **IPsec 隧道** > **新建**
{% endhint %}

## 创建阶段 2 配置

{% hint style="info" %}
必须创建阶段 2 配置，才能建立可工作的 IPsec 连接。
{% endhint %}

1. 从 **VPN 网络控制面板**，单击 **IPsec 隧道** 在左侧菜单中；双击相应的阶段 1 进入该阶段 1 控制面板；点击 **新建** 左侧菜单中的。
2. 输入一个 **名称** 和 **可选描述** 用于新的阶段 2 配置。
3. 选择一个 **模式：**
   * *隧道* （默认）- 站点到站点 VPN 的推荐方法；发送两个 IP 头，原始数据包被封装。
   * *传输* - 仅加密有效载荷和 ESP 尾部。
4. 指定 **本地网络：** （必填）此侧 VPN 中要包含的 IP 地址子网，例如 192.168.0.0/24。
5. 指定 **远端网络：** 远端对等方的网络，采用 CIDR 格式，例如 50.x.x.x/28。
6. 选择一个 **协议：**
   * *ESP* （推荐）
   * *AH* （仅认证）
7. 请指定 **生存期** 以单位（秒、分钟、小时、天、年）计，或 *永久* 用于在阶段 2 期间建立的 SA 的持续时间。
8. 选择加密 **算法** 和 **密钥长度、哈希和 DH 组** 设置。
9. 单击 **提交** 以保存阶段 2 配置。

## 配置防火墙和路由规则

IPsec 流量需要网络配置。新建 VPN 网络会自动创建以下网络规则：

* 允许入站 IKE UDP 500
* 允许入站 IPsec NAT 穿越 4500
* 允许入站 ESP
* 允许入站 AH

根据具体的网络和 IPsec 设计，还需要额外的网络配置（例如防火墙规则、路由）。请参阅下面包含网络规则配置的具体 IPsec 示例链接。

### 从 VergeOS 端发起 VPN 隧道

1. 从 **VPN 网络控制面板**，单击 **开机** 左侧菜单中的。
2. 点击下方的插头图标 **IPsec 连接**.

![IPsec 连接按钮](/files/e47da92b69ba965e5c78b4ad4482f508ae95345d)

3. 观察 IPsec 状态显示为已连接。

## IPsec 示例配置

以下提供可供参考的 IPsec 示例配置：

* [带桥接内部网络的专用公网地址](/knowledge-base/zh/networking/ipsec-example-dedicated-ip.md)
* [使用 NAT 转换 UI 地址的租户](/knowledge-base/zh/networking/ipsec-example-tenant-nat-ui-ip.md)

## 故障排除提示

### 验证各对端之间的相互/兼容设置

IPsec 对配置不匹配非常敏感。大多数设置都需要连接两端精确一致。请查阅非 VergeOS IPsec 对端的文档，并确保两端所有参数都严格匹配。

### VPN 网络容器日志

可从 VPN 网络控制面板访问网络容器日志： **诊断 > 诊断查询：** ***日志*** 这些日志通常包含有用的故障排除信息，例如 IPsec 错误消息、源地址和目标地址等。

### 跟踪网络流量

跟踪 VPN 网络以及相关外部和内部网络上的流量，通常有助于排查问题，例如通过识别隧道流量是否到达某个网络、识别数据包的源和目标地址等。 **诊断 > 诊断查询：** ***TCP 抓包***。 [网络诊断指南](/run-the-platform/zh/wang-luo/network-diagnostics.md) 提供了使用网络诊断工具的参考。


---

# 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/run-the-platform/zh/vpn/ipsec.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.
