You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中如何将指定网站从VPN tun0接口排除并走wlan0

VPN分流排除特定网站失效的修正方案
  • 修复重复解析IP的冗余逻辑
    你当前代码里重复调用InetAddress.getByName(address)完全没必要,直接用循环中已拿到的ipAddress即可,多余的解析操作可能导致IP不匹配,修正后代码:

    InetAddress[] inetAddresses = InetAddress.getAllByName("www.speedtest.net");
    for (InetAddress ipAddress : inetAddresses) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
            builder.excludeRoute(new IpPrefix(ipAddress, 32));
        }
    }
    
  • 调整配置顺序
    排除路由的代码必须放在addAllowedApplication()之后执行。如果先设置排除路由再添加允许应用,规则会被覆盖,导致排除失效。

  • 兼容IPv6地址
    若域名解析出IPv6地址,32位前缀不适用,需要根据IP类型设置对应前缀长度:

    InetAddress[] inetAddresses = InetAddress.getAllByName("www.speedtest.net");
    for (InetAddress ipAddress : inetAddresses) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
            int prefixLength = ipAddress instanceof Inet6Address ? 128 : 32;
            builder.excludeRoute(new IpPrefix(ipAddress, prefixLength));
        }
    }
    
  • 处理IP动态变化问题
    像speedtest这类网站的IP可能动态更新,单次解析的IP可能覆盖不全。可以定期重新解析域名并更新排除路由,确保所有对应IP都被排除。

  • 验证VPN权限与状态
    确认VPN服务已正确启动,持有android.permission.BIND_VPN_SERVICE权限,且系统已授予VPN连接权限,权限不足会导致路由规则无法生效。

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:33:13