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

如何用adb命令在保持Wi-Fi/移动数据开启时切断安卓模拟器网络?

解决方案

要实现保持Wi-Fi/移动数据UI开关开启状态,同时动态切断/恢复模拟器网络的需求,以下是几种适配新版Android模拟器的adb方案,可替代原有的svc命令:

1. iptables防火墙拦截(最推荐)

模拟器默认已获取root权限,可通过iptables直接拦截所有出站/入站流量,完全不影响Wi-Fi和移动数据的开关显示:

  • 切断网络:
    adb shell iptables -P OUTPUT DROP
    adb shell iptables -P INPUT DROP
    
  • 恢复网络:
    adb shell iptables -P OUTPUT ACCEPT
    adb shell iptables -P INPUT ACCEPT
    
    优点:彻底阻断所有网络流量,操作快速可逆,完全符合自动化测试中多次切换的需求。

2. 清空网络路由表

通过清空系统路由表,让模拟器无法找到网络通路,同样不改变UI状态:

  • 切断网络:
    adb shell ip route flush all
    
  • 恢复网络:
    执行以下命令重新获取路由(适配大多数模拟器):
    adb shell dhcpcd wlan0
    
    注意:该方法仅阻断外部网络,模拟器内部的本地通信(如localhost)仍可正常进行。

3. 修改DNS配置(半阻断)

如果仅需阻断域名解析(IP直连仍可访问),可修改DNS配置:

  • 切断域名解析:
    adb shell setprop net.dns1 0.0.0.0
    adb shell setprop net.dns2 0.0.0.0
    
  • 恢复DNS:
    adb shell setprop net.dns1 8.8.8.8
    adb shell setprop net.dns2 8.8.4.4
    
    适合仅需模拟“无法解析域名”场景的测试。

内容的提问来源于stack exchange,提问作者J.Grbo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 09:15:34