NB4A 白话文 国内外分流
本文将教您如何快速建立典型的 国内/国外 分流,而不会降低速度。
第一步:分应用代理
为了使国内 app 达到预期速度,这一步是必需的。
分应用代理有 代理
绕过
两种模式。
- 代理模式下,选中的 app 将被允许通过 VPN 访问网络,未选的 app 将绕过 VPN 直接访问网络。
- 绕过模式下,未选的 app 将被允许通过 VPN 访问网络,选中的 app 将绕过 VPN 直接访问网络。
因此, 不需要访问 VPN 的国内应用,最好绕过它,避免它的流量被 NekoBox VPN 处理。 这样它就能以 真直连 的速度运行。
以下是两种快速设置的方法:
- 自己勾选需要代理的 app (如图所示)
- (1.1.5+) 点击“自动勾选需要代理的 app”,可能有错漏。
Android 系统
对于中国 OEM Android 系统(如 MIUI)的组件,请将它们视为国内软件。
第二步:路由规则
在上一步,你可能勾选了 浏览器 这种 国内国外都需要访问的应用 为代理。
那么浏览器的流量流经 NekoBox,如果想国内外分流,就需要设置路由规则。
设置方法:
- 路由规则中打开
geoip:cn
geosite:cn
两项(如图所示)
路由规则的进阶使用请看 路由与 DNS
进阶:DNS
域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务。
DNS 将人类可读的域名解析为机器可读的 IP 地址
DNS 一直是代理中非常麻烦的部分...
对于小白用户,默认配置 + 开启国内外分流的情况下,这部分就不需要额外设置了。
DNS 服务器
直连 DNS 建议填写 local
使用本机的 DNS(一般由运营商提供),如果有问题再换其他 DNS 服务器。
DNS 路由
默认开启 DNS 路由选项。若不开启,所有 DNS 请求都会走远程服务器。
默认情况下,对于路由规则中 geosite:cn
这种 绕过/直连 的域名,会被发送到 直连 DNS 查询。一般这个 DNS 的查询速度接近运营商下发的 DNS,不会造成显著的延迟增加。
对于 远程连接 的域名,默认会使用 远程 DNS 查询。这样会不可避免地增加延迟。如果想减小这部分延迟,请看 FakeDNS 配置说明。
DNS 路由的意义 / 为什么 DNS 要分远程和直连
- 对于国内域名,使用直连 DNS 解析速度快,且可以解析到本地的 CDN 服务器节点,能提升访问速度。
- 对于国外域名,若使用直连 DNS 解析,则有 DNS 污染 和 DNS 泄漏的风险。
DNS 问题似乎没有最优解,各种方案各有优劣,请结合自身情况选择。
NekoBox 的 DNS 实践 (开启绕过中国)
- 系统进行 DNS 查询时,会由 NekoBox 进行处理。如果域名匹配到 geosite:CN 则使用直连 DNS,后续流量走直连。(若关闭 DNS 路由则直接进入下一步)
- 如果网站比较小众,geosite 未匹配到,则使用远程 DNS 查询(有缓存,缓解延迟问题),只要查询到的是国内 IP 后续访问就会走直连。
NekoBox 的 DNS 实践 (开启绕过中国 + 开启 FakeDNS 或 HTTP 代理)
高度依赖 geosite 域名列表,延迟最低,但无法识别国内小众网站,这类网站会走代理。
Clash 等软件的实践
- 除了指定走代理的域名,总是使用 "本机 DNS + 多个国内明文 DNS" 查询域名,再 "根据返回的 IP 判断是否需要代理"。
- 此种模式的优点:可以比较精确的判断一些国内小众域名走直连,对解析延迟影响小。缺点:有 DNS 泄漏的问题,且可能无法在「运营商反诈骗劫持」的网络环境下正常工作。
- sing-box 暂时不支持这种模式。
V2Ray 等软件的实践 (IPIfNonMatch)
- IPIfNonMatch 模式下如果没有匹配到域名规则的域名,则进入 IP 查询,可以指定使用哪个 DNS 进行查询。
- 此种模式的优点:可以比较精确的判断一些国内小众域名走直连。缺点: DNS 走代理会造成延迟增加。
- 在纯 socks/HTTP 访问(如 nekoray 系统代理)场景下此模式比较有意义。
- sing-box 暂时不支持这种模式。