---
url: /configuration/inbound/capture.md
description: 用 tc/eBPF 接管现有 LAN/WAN，并配置 flowtable、XDP 和 fail 模式
---

# capture

在现有网口上接管转发与本机流量；这是 Router 接法的核心入站。

```yaml check
inbounds:
  router:
    type: capture
    lan: [br-lan]
    wan: [eth0]
    fail: closed

dns:
  servers:
    default: {type: udp, address: 127.0.0.1:53}
  final: default
```

## 字段

### type

* 类型：字符串。
* 必填：是，第一项。
* 取值：`capture`。
* 限制：一个配置最多一个 `capture`。

### lan

* 类型：接口名数组。
* 必填：可选。
* 默认：空。
* 行为：这些接口上的客户端流量由 mayami 判定。

### wan

* 类型：接口名数组。
* 必填：可选。
* 默认：空。
* 行为：从这些接口观察/接管 WAN 方向的本机与返回流量。

### tap

* 类型：接口名。
* 必填：可选。
* 默认：`sbk-tap`。

### queues

* 类型：非负整数。
* 必填：可选。
* 默认：可用 CPU 核数。

### pin

* 类型：布尔值。
* 默认：`false`。
* 行为：每个队列固定到一个可用 CPU 核。

### vnet_hdr

* 类型：布尔值。
* 默认：`true`。

### release

* 类型：布尔值。
* 默认：`true`。
* 行为：允许判为直连的 LAN 流回到内核，由 nftables/NAT 和内核转发继续。

### administration

* 类型：字符串枚举。
* 默认：`shared`。
* 取值：`shared`、`exclusive`。
* 行为：`exclusive` 表示运维者承诺整个 capture 生命周期内独占本命名空间的策略、路由和 offload 管理。

### flowtable

* 类型：字符串枚举或省略。
* 默认：省略，不启用 mayami 自有 flowtable。
* 取值：`software`、`hardware`。
* 限制：原生 XDP/硬件加速需要独占管理契约。

### xdp

* 类型：布尔值或接口名数组。
* 默认：`true`，语义为 `physical`。
* 取值：`true`、`false`、接口名数组。
* 行为：只对具备原生 XDP 的物理端口启用；虚拟桥的成员单独判定。

### xsk

* 类型：字符串枚举。
* 默认：`auto`。
* 取值：`off`、`auto`、`copy`、`zero-copy`。
* 行为：AF_XDP 在选定 LAN 设备上尝试；失败时由 auto 协商回退。

### full_cone

* 类型：布尔值。
* 默认：`false`。
* 行为：开启后 UDP 全锥；相关 UDP 在用户态承载，不执行 release。

### fail

* 类型：字符串枚举。
* 默认：`closed`。
* 取值：`closed`、`open`。
* `closed`：mayami 死亡后，被接管流停止；首个 hook 前用屏障封窗。
* `open`：程序随进程卸下，内核照常转发；需要 Linux 6.6+。

## 说明

### 首 hook 前的屏障

`fail: closed` 时，mayami 在 capture 就绪前使用 `inet mayami_net` 的精确名称屏障：

* LAN 入方向 `iifname` guard；
* WAN 出方向 `oifname` guard；
* WAN 本机 OUTPUT guard，只放行 mayami 自身 cgroup socket；
* allow 只认已 ACK 的当前 ifindex，同名替换不会按名字放进新口。

实测从设备到 ready 通常约 0.3–0.5 秒。窗口内直连客人、未标记宿主出站及 WAN DHCP 续租可能暂停；这是 fail-closed 的代价。`fail: open` 不装屏障。

### flowtable

`software` 使用内核软件 flowtable；`hardware` 请求硬件卸载。非租户和租户的准入都要求 `ESTABLISHED` 与双向 `ASSURED`，租户还要求原方向 zone 和高 12 位租户 mark 精确匹配。`lan` 成员口和当前 WAN 设备进入同一张表。

### 旧流和撤销

删网段、删租户、桥身份变化或新增屏障时，先撤 flow 规则与 flowtable，再按新集合重建；HTTP/NAT/屏障不跟随重建。普通配置重读不重置健康口的既有流。

### 回程和 offload

卸载后的回程由缓存 dst/邻居直接回成员口，不再经过 tenant return mark/fwmark；VRF 租户在 Linux 6.12 上仍可能出现周期性慢包，但回程目标正确。可关闭 `flowtable` 回到纯慢路径。

::: info 仅 Linux
`capture` 依赖 Linux eBPF、BTF、tc、nftables、cgroup v2 和 `/sys/fs/bpf`。`fail: open` 需要 Linux 6.6+。非 Linux 构建设有完整 capture。
:::

::: warning 宿主机会被改什么
mayami 会：

* 在 LAN/WAN/成员口挂 tc 或 XDP；
* 创建/删除 TAP、cgroup BPF 程序和 `inet mayami_nat`、`inet mayami_fast`、`inet mayami_net` 等自有表；
* 调整 IP forwarding、接口 RA 接收及租户 `ip rule`/VRF 路由；
* 在 flowtable 开启时改变已卸载连接走的内核路径。

正常退出会撤销自有状态；强杀时行为由 `fail`、`strict_route` 和 flowtable 决定。
:::

## 相关

* [开始使用：Router](/getting-started/#三种接法和网段)
* [安装：capture 需要 root](/getting-started/install#capture-需要-root)
* [入站总览](/configuration/inbound/)
