HarmonyOS鸿蒙Next中vpn设置了路由,没在路由的流量也被代理到vpn了。
HarmonyOS鸿蒙Next中vpn设置了路由,没在路由的流量也被代理到vpn了。
启动VPN设置了路由信息,并且手写代码读取fd(VPN启动后得到)进行NAT时,发现访问不在路由中的地址也可从fd中读取到,似乎路由没有生效。
路由配置信息:
[
{
"interface": "vpn-tun",
"destination": {
"address": {
"address": "10.128.0.0",
"family": 1
},
"prefixLength": 9
},
"gateway": {
"address": ""
},
"hasGateway": false,
"isDefaultRoute": false
},
{
"interface": "vpn-tun",
"destination": {
"address": {
"address": "100.10.10.1",
"family": 1
},
"prefixLength": 32
},
"gateway": {
"address": ""
},
"hasGateway": false,
"isDefaultRoute": false
}
]
读取fd
this.VpnConnection.create(this.config).then((data) => {
this.g_tunFd = data;
});
// 循环读取g_tunFd
io.readSync(this.g_tunFd, buffer);
// 解析buffer,读取里面的ip地址和端口,做NAT转换...
访问互联网地址8.218.40.186
,结果走了VPN。
- 是否支持不在路由中的地址时走正常流量访问?
- 如果支持,如何做到?
更多关于HarmonyOS鸿蒙Next中vpn设置了路由,没在路由的流量也被代理到vpn了。的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,VPN设置了路由后,未在路由中的流量也被代理到VPN,可能是由于系统默认将所有流量通过VPN通道传输。检查VPN配置中的路由规则,确保仅指定了需要代理的IP范围或域名。若问题依旧,可能是系统或VPN应用的默认行为,需进一步排查或等待系统更新修复。
更多关于HarmonyOS鸿蒙Next中vpn设置了路由,没在路由的流量也被代理到vpn了。的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
根据您描述的情况,在HarmonyOS Next中VPN路由配置可能存在以下问题:
-
路由配置中缺少默认路由排除设置。当前配置只指定了10.128.0.0/9和100.10.10.1/32两个目标网络,但没有明确排除其他流量。
-
要实现非路由地址走正常流量,建议:
- 检查VPN配置中是否设置了"excludeRoutes"或"bypass"参数
- 确认VPN服务是否默认捕获了所有流量(全隧道模式)
- 尝试在路由配置中明确添加排除规则
-
解决方案:
{ "excludeRoutes": [ { "address": "0.0.0.0", "prefixLength": 0 } ] }
-
如果问题依旧,可能需要检查VPN服务的实现方式,确认是否在底层强制捕获了所有流量包。