---
url: /manual/router.md
description: 用 capture 接管现有 LAN/WAN，并选择直连、代理和内核快路径
---

# Router：接管现有路由器网络

Router 接法适合路由器、旁路由或一台已经承担转发的 Linux 主机。mayami 在现有 LAN/WAN 上挂 tc/eBPF，不要求客人改变网关之外的设置。

```mermaid
flowchart LR
  C[LAN 客人] --> B[br-lan]
  B --> TC[capture: tc/eBPF]
  TC --> G[网关与规则]
  G -->|代理| P[outbound]
  G -->|直连/release| K[内核转发与 NAT]
  K --> W[wan]
  P --> W
  W --> R[回程]
  R --> TC
```

## 完整配置

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

outbounds:
  direct:
    type: direct
  proxy:
    type: socks
    server: 127.0.0.1:1080

route:
  rules:
    - {ip_is_private: true, outbound: direct}
    - {network: udp, port: 443, outbound: proxy}
  final: proxy

dns:
  servers:
    real: {type: udp, address: 1.1.1.1:53}
    fake: {type: fakeip, inet4_range: 198.18.0.0/15}
  rules:
    - {domain_suffix: [lan], server: fake}
  final: real
```

字段见 [capture](/configuration/inbound/capture)、[networks](/configuration/networks/) 和 [路由规则](/configuration/route/)。

## 包怎么走

1. LAN 帧从桥或物理口进入 capture；代理流被送到 TAP 后的网关。
2. 规则命中代理时，“先拨后应”：出站连上目标后才给客人回 SYN-ACK。
3. 规则判为直连且满足 `release` 条件时，首包交回内核，由内核 NAT 和转发继续。
4. 回程如果仍有 conntrack 映射，可以走普通转发；参与直连快路径的连接可能已进入 flowtable。

## 失败与快路径

`fail: closed` 在 capture 就绪前用屏障封住接管口，牺牲一个很短的启动窗口，避免本应代理的流量先直出。`fail: open` 让程序消失时内核照常转发，要求 Linux 6.6+。

`flowtable: software` 接管直连快路径；`hardware` 请求硬件卸载。`full_cone` 只改变 UDP NAT 行为，不会让不支持的代理 UDP 变可用。

::: warning 宿主机会被改什么
mayami 会在 LAN/WAN 和网桥成员上挂 tc/XDP，创建 TAP、自有 nftables 表、conntrack/NAT 与 flowtable 状态，并按配置打开转发和调整 RA sysctl。启动失败和强杀后的状态取决于 `fail`、屏障和持久内核对象。
:::

## 相关

* [networks](/manual/networks)
* [XDP](/manual/xdp)
* [规则](/manual/rules)
* [limits](/manual/limits)
