Skip to content

已知边界 ​

这份手册描述“什么条件下功能成立”,不把平台缺失、驱动回退或协议能力当成可忽略细节。

完整配置 ​

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

outbounds:
  direct:
    type: direct

route:
  final: direct

dns:
  servers:
    real: {type: udp, address: 1.1.1.1:53}
  final: real

平台 ​

  • capture、tc/eBPF、XDP、flowtable、TUN/TAP、VRF、nftables、DHCP/RA 和网段管理是 Linux 能力。
  • Linux BoringSSL 提供完整出站 TLS、REALITY、Kotodama、AnyTLS、Mirage、Imina;其他平台明确拒绝,不降级明文。
  • 非 Linux 的 DoT/DoH/下载使用 rustls;DoQ/DoH3 固定 rustls。

内核 ​

  • fail: open 需要 Linux 6.6+。
  • capture/tc 需要 BPF、BTF、cls_bpf/clsact、TUN、cgroup BPF、bpffs;XDP 另需 AF_XDP 和驱动原生支持。
  • native flowtable/XDP 直连实验依赖 Linux 6.18 语义、flowtable/conntrack kfunc、独占管理契约和严格设备/sysctl 条件。
  • 网段、租户、flowtable 和 VRF 在实测内核版本上工作,但具体发行版仍要按启动日志确认能力。

行为边界 ​

  • 代理遵循“先拨后应”;Segment/Host 的直连由 mayami 自己拨,Router 直连可放回内核。
  • 一条链的 TCP 可达不代表原生 UDP 可达;UoT/XUDP 需要两端支持。
  • flowtable 卸载后 conntrack 字节计数可能停在卸载时;VRF 回程在 Linux 6.12 实测仍有周期性慢包,但目标正确。
  • fail: closed 的首 hook 屏障会暂停被接管口的一小段转发;external 网桥可能因此短暂停整桥。

性能与验证 ​

自研协议的记录大小、mux、会话池、GSO/GRO 和 XDP 都会改变性能,但性能优化不能替代正确性验证。kTLS 经测量在当前硬件和记录大小下更贵,未启用。

更细的设备 kernel config、网卡特性、缓存耐久性和协议互通边界在开发者文档中保留;本节只列用户选择时需要知道的停止条件。

相关 ​

页面历史

开发者设计、代码地图和验证记录保留在仓库 manual/。