Android设备本地流量走WiFi、其余流量走移动数据的配置方法
问题描述
我有一台已Root的Android 13设备(一加10 Pro),家中有个用于智能家居、NAS和监控摄像头的本地WiFi网络,该网络未连接互联网。连接这个WiFi时,能访问本地设备,但没法浏览网页——因为Android默认把所有流量都路由到无互联网的WiFi接口。我需要实现:本地IP段(192.168.1.x)的流量走WiFi接口(wlan0),其余所有流量走移动数据接口(rmnet_data2)。
已尝试的操作(效果不稳定)
- 始终启用移动数据:开启开发者选项里的“始终启用移动数据”,确保WiFi和移动数据适配器同时在线。
- USB调试与Shell操作:启用USB调试后连接电脑,通过ADB进入Shell并获取Root权限:
adb shell su - 修改路由配置:
- 查看当前路由规则与路由表:
ip rule list cat /proc/net/route - 查看本地/公网IP的路由走向:
ip route get 10.10.10.10 ip route get 192.168.1.135 - 添加路由规则:
# 本地IP段走WiFi,网关为路由器IP ip route add 192.168.1.0/24 via 192.168.1.1 dev wlan0 # 其余流量走移动数据 ip route add default dev rmnet_data2
- 查看当前路由规则与路由表:
稳定解决方案
Android的ConnectivityService会在网络状态变化时自动重置路由表,手动添加的规则容易被覆盖,因此需要用更持久的策略路由方案:
方法1:Linux策略路由配置
利用Linux的策略路由功能,让不同目的IP的流量走指定路由表,避免被系统默认规则覆盖:
- 新建自定义路由表(比如编号100):
# 将自定义表写入路由表配置文件 echo "100 localwifi" >> /data/local/tmp/rt_tables # 初始化路由表并添加本地段路由 ip route flush table 100 ip route add 192.168.1.0/24 via 192.168.1.1 dev wlan0 table 100 - 添加规则,让本地段流量优先走自定义路由表:
ip rule add to 192.168.1.0/24 lookup 100 priority 1000 - 调整默认路由优先级,确保移动数据优先:
# 删除WiFi的默认路由(如果存在) ip route del default dev wlan0 2>/dev/null # 设置移动数据为默认路由,优先级高于WiFi(数值越小优先级越高) ip route add default dev rmnet_data2 priority 500
方法2:后台脚本自动维护路由
因为系统会在网络切换时重置路由,写个后台脚本监控网络状态,自动重新应用规则:
- 创建脚本文件
/data/local/tmp/route_fix.sh:#!/system/bin/sh while true; do # 检查是否连接到目标WiFi WIFI_STATUS=$(dumpsys connectivity | grep -E "mNetworkInfo.*CONNECTED.*wlan0") if [ -n "$WIFI_STATUS" ]; then # 静默应用路由规则(已存在则忽略错误) ip rule add to 192.168.1.0/24 lookup 100 priority 1000 2>/dev/null ip route add 192.168.1.0/24 via 192.168.1.1 dev wlan0 table 100 2>/dev/null ip route del default dev wlan0 2>/dev/null ip route add default dev rmnet_data2 priority 500 2>/dev/null fi sleep 10 done - 给脚本添加执行权限:
chmod +x /data/local/tmp/route_fix.sh - 设置开机自启:
- 若使用Magisk,将脚本移动到
/data/adb/service.d/目录,Magisk会在开机后自动运行。 - 若系统支持init.d,将脚本放到
/system/etc/init.d/并确保权限正确。
- 若使用Magisk,将脚本移动到
方法3:第三方Root工具简化操作
不想手动配置的话,用支持策略路由的Root工具(如NetGuard,需Root权限):
- 在工具中设置:允许所有应用访问
192.168.1.0/24时使用WiFi,其余流量强制走移动数据。工具会自动处理路由规则的持久化,无需手动维护脚本。
内容的提问来源于stack exchange,提问作者vetkak
相关产品推荐
相关产品推荐

