Open-Box 作者说明大陆 IP 旁路实现与两个 DNS 上游的分工

liandu2024 在 Open-Box 功能建议讨论中答复:绕过大陆 IP 的一半已经在做,走直连的站点集里的 geoip 集合会编进内核的 route_exclude_address_set,开启 auto_redirect 时是一条 nft 集合规则,命中目标在系统入口直接放行、不进内核;若存在可能把同一 IP 送去别处的前置规则,旁路会自动关闭改走兼容路径。绕过大陆域名的一半任何工具都无法在防火墙层实现,因为入口只看得见 IP、域名需先解析。指定上游 DNS 方面,DNS 页的「兜底直连 DNS」给直连域名用,「代理 DNS 上游」给走代理的域名用;按单个域名指定其他上游目前不做。说明文档会随后补到 README。

作者原文

三个问题分别答一下:

  1. 绕过大陆域名 / IP 不进内核:IP 这一半已经在做了——此刻走直连的站点集里的 geoip 集合(默认「国内直连」里的 geoip-cn 等)会编进内核的 route_exclude_address_set,开着 auto_redirect 时就是一条 nft 集合规则,命中的目标在系统入口直接放行、不进内核;规则页「真实路由」测一个国内 IP 会显示「入口旁路,未进内核」。前面若有可能把同一 IP 送去别处的规则(前置自定义分流的域名行、走代理的终端分流、广告拦截),旁路会自动关掉改走兼容路径,原因写在部署结果里。域名这一半任何工具都做不到在防火墙层绕:入口只看得见 IP,域名得先解析;OpenClash 的「绕过中国大陆」实际也是按 IP 段做的,加上 FakeIP 过滤名单。
  2. 指定上游 DNS:DNS 页有两个上游可改地址和协议(UDP / TCP)——「兜底直连 DNS」给直连域名用,部署时优先用 WAN 下发的 DNS、读不到才用它填的地址,所以叫兜底;「代理 DNS 上游」给走代理的域名用,内核经站点集选中的节点向它查询。哪个域名用哪个上游由站点集此刻的出口决定,不用单独配;按单个域名指定别的上游(OpenClash 的 nameserver-policy)目前不做,把某个域名固定成某个 IP 或另一个域名可以用「DNS 重写」。
  3. 说明文档会随后补到 README。关闭。