Skip to content

修复:Android VPN 子网代理路由未生效的问题#231

Open
chengoak wants to merge 1 commit into
ldoubil:mainfrom
chengoak:fix/proxy-cidrs-vpn-routes
Open

修复:Android VPN 子网代理路由未生效的问题#231
chengoak wants to merge 1 commit into
ldoubil:mainfrom
chengoak:fix/proxy-cidrs-vpn-routes

Conversation

@chengoak

@chengoak chengoak commented Jun 11, 2026

Copy link
Copy Markdown

问题

连接到开启了子网代理的 EasyTier 网络时,Android VPN TUN 接口没有将代理子网(如 192.168.1.0/24)加入路由表,导致无法访问代理子网后的设备。

根因

  1. Rust 的 KVNodeInfo 结构体缺少 proxy_cidrs 字段
  2. Dart 层无法获取对等节点的子网代理信息
  3. VpnManager.start() 未接收代理路由参数
  4. _handleSuccessfulConnection()netStatus 尚未填充时就调用 `_extractProxyCidrs()$,导致路由列表为空

修改内容

Rust

  • rust/src/api/simple.rs: KVNodeInfo 添加 proxy_cidrs: Vec<String> 字段
  • rust/src/api/p2p.rs: get_network_status()node_info.proxy_cidrs 填充数据
  • rust/src/frb_generated.rs: 更新 FRB 序列化代码

Dart

  • lib/src/rust/api/simple.dart: KVNodeInfo 添加 proxyCidrs 字段
  • lib/src/rust/frb_generated.dart: 更新 FRB 序列化代码
  • lib/core/services/vpn_manager.dart: start() 方法新增 List<String> proxyCidrs 参数
  • lib/core/services/server_connection_manager.dart: 连接成功后主动调用 getNetworkStatus() 提取对等节点的 proxyCidrs,并传入 VPN 服务

测试方法

  1. 连接到一个有节点宣告 192.168.1.0/24 子网代理的 EasyTier 网络
  2. 确认 VPN 连接成功
  3. 确认可以访问 192.168.1.x 网段的设备

Fixes #issue_number(如适用)

This PR fixes the issue where subnet proxy routes (proxy_cidrs) from
EasyTier peers were not being added to the Android VPN TUN interface.

Changes:
- Rust KVNodeInfo: add proxy_cidrs field
- Rust network status: populate proxy_cidrs from peer info
- Dart KVNodeInfo: add proxyCidrs field
- VpnManager.start(): accept proxyCidrs parameter
- ServerConnectionManager: fetch network status on connect to extract
  peer subnet proxy routes and pass them to VPN service

Fixes: VPN connected but unable to access proxied subnets like
192.168.1.0/24
@chengoak chengoak changed the title fix: add proxy_cidrs to VPN routes on Android 修复:Android VPN 子网代理路由未生效的问题 Jun 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant