refactor(routing): 暴露 system_locked_domains + 服务端 follow-up 清理(FK/Validate/dedup/exclude单源/共用Store/Builtin保留)
This commit is contained in:
@@ -270,9 +270,15 @@ func BuildClientConfig(node *nodes.NodeRow, dpUUID, deriveKey string, opts Clien
|
||||
if len(extraExclude) > 0 {
|
||||
// IP 直连真生效:并入 TUN 入站的 route_exclude_address(auto_route 层排除,
|
||||
// 见 tunIn 构造处注释——单靠 route.rules 的 ip_cidr→direct 在 macOS
|
||||
// strict_route 下不生效)。与既有 LAN 网段去重合并。
|
||||
exclude := []string{"192.168.0.0/16", "10.0.0.0/8"}
|
||||
seen := map[string]bool{"192.168.0.0/16": true, "10.0.0.0/8": true}
|
||||
// strict_route 下不生效)。单源读 tunIn 现有种子(不重复硬编码 LAN 网段;
|
||||
// 其为 192.168+10,与上面 route.rules 的 LAN 直连 4 段有意不同——不能改成
|
||||
// LAN 全集,否则会漏排除/多排除),与 extraExclude 去重合并、写回。
|
||||
base, _ := tunIn["route_exclude_address"].([]string)
|
||||
exclude := append([]string{}, base...)
|
||||
seen := make(map[string]bool, len(base))
|
||||
for _, e := range base {
|
||||
seen[e] = true
|
||||
}
|
||||
for _, e := range extraExclude {
|
||||
if !seen[e] {
|
||||
seen[e] = true
|
||||
|
||||
Reference in New Issue
Block a user