0
0
Fork 0
mirror of https://github.com/dyhkwong/Exclave.git synced 2026-04-21 06:32:42 +00:00
路由
dyhkwong edited this page 2026-01-30 16:45:55 +08:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

路由

规则写法详见 V2Ray 文档 路由 RuleObject。如果是数组的,写法是每行一个。

域名解析策略

V2Ray 文档 路由 RoutingObjectdomainStrategy

由于 TUN 的工作方式,需要使用域名解析策略的情况常见于启用了 fake DNS、启用了“覆盖目标地址”、SOCKS 或 HTTP 代理入口。否则这些域名解析策略根本没有区别。

自定义路由资源

geoip.datgeosite.dat 的更新来源可在“设置”中修改。自定义路由资源可在“路由-管理路由资源”中添加与修改。

中国实体在中国以外的接入点

2026 年 1 月 20 日以后 v2flygeosite.dat 已经没有 geosite:geolocation-cn@!cn 分类,该内容已不适用。

v2flygeosite.dat 有一个针对“中国实体在中国以外的接入点”(如 TikTok 等)的分类 geosite:geolocation-cn@!cn。这个分类被包含在 geosite:cn 中。 如果设置 geosite:cn 直连,那么 geosite:geolocation-cn@!cn 也会直连。

您可以

  • 自行设定一条 geosite:tiktok 代理的路由规则,并将此规则置于 geosite:cn 绕过的规则之前。或者

  • 自行设定一条 geosite:geolocation-cn@!cn 代理的路由规则,并将此规则置于 geosite:cn 绕过的规则之前。或者

  • 使用 Loyalsoldiergeosite.dat。该 geosite.datgeosite:geolocation-cn@!cn 剔除出了 geosite:cn,不存在 geosite:geolocation-cn@!cn 的分类。

中国设备无法从 Google Play 商店下载应用

路由规则与 DNS

“代理”规则中的域名使用远程 DNS“绕过”规则中的域名使用直连 DNS。未匹配到规则的域名使用远程 DNS。V2Ray 的 DNS 模块只支持域名规则,并且不是按顺序匹配(v2fly/v2ray-core#1855v2fly/v2ray-core#1558)。非域名规则不会被应用到 DNS。

"servers": [
  {
    "address": "远程 DNS",
    "domains": [
      "代理规则中的域名"
    ]
  },
  {
    "address": "直连 DNS",
    "domains": [
      "绕过规则中的域名"
    ]
  }
]

域名规则与 IP 规则之间的关系

规则的每个属性之间的关系是“与”而不是“或”。所以一般不要把域名规则与 IP 规则写在同一条规则里。

基于网络类型的路由规则

USB 网络需要 Android 12。卫星网络需要 Android 15。

基于 Wi-Fi SSID 的路由规则

需要启用位置信息并授予“始终允许”位置信息权限。

每行一个。由于设计缺陷SSID 中若包含换行符 (\n),需转义为 \n;若包含\,需转义为 \\

基于应用的路由规则

使路由规则只作用于选定应用。基于应用的路由规则只在 VPN 模式生效。

没有“拥有完全的网络访问权限”权限(android.permission.internet)的应用不会被显示。例如Geminicom.google.android.apps.bard未声明联网权限而是通过名为“Google”的应用com.google.android.googlequicksearchbox进行联网。您应该搜索“Google”而不是“Gemini”。

“基于应用的路由规则”实际上是“基于 UID 的路由规则”。来自相同 UIDandroid:sharedUserId的应用的流量的所有者是同一个 UID。因此用户界面上会有勾选一个则其余都勾选上的效果。

许多中国“安卓”设备魔改了“查询所有软件包”(android.permission.QUERY_ALL_PACKAGES)仅声明权限,破坏了软件的正常行为。您可能需要在系统设置中或其它地方手动授予所谓的“读取应用软件列表”(或其他相似名称,com.android.permission.GET_INSTALLED_APPS)运行时权限。

用作屏蔽器

强烈建议不要将本软件或者其他代理软件用作屏蔽器。典型的代理软件(包括本软件)的域名过滤功能很容易被绕过,就像那些针对真实防火墙的伎俩一样。对于同一个 UDP 套接字,典型的代理软件(包括本软件)仅根据第一个包的目标地址进行路由,要针对后续包改变路由需要破坏 NAT 映射行为与 NAT 过滤行为;要仅允许单一的目标地址,则需要牺牲 NAT 行为并实现类似 connect() 套接字的行为而不是类似 bind() 套接字的行为。更重要的是,将代理软件用作屏蔽器制造自我审查有违代理软件绕过审查的本意。

  • 不启用“packetEncoding”的原版 V2Ray不是本软件虽然没有此 UDP 路由问题,但其 UDP NAT 行为并不是所谓的“Symmetric NAT”其将发送的所有目的地址、接收的所有源地址认为是同一个地址但是会发送数据到错误的目标地址、误植接收到的数据的源地址是一种四不像 NAT不属于任意一种已定义的 NAT 行为会造成其他的路由问题。启用“packetEncoding”的原版 V2Ray 以基于域名或 IP 或端口的路由规则对启用了“packetEncoding”的流量失效为代价使问题不成立从而消灭了任何 UDP 路由问题。