引言
某一天安卓虚拟机突然不能上网了。
排查问题
电脑可以上网,但是虚拟机不能上网。
打开cmd,输入ping www.guanhaobo.cn
,会得到一个IP地址,如下图。
在安卓虚拟机的浏览器内访问123.56.21.111
,如果可以访问,说明 DNS 出现了问题。
修改DNS
找到adb(已配置过环境变量可以跳过)
打开cmd,cd到你的安卓SDK目录下的platform-tools,我的目录是D:\ProgramData\Android\SDK\platform-tools
root权限
如果只连接了一个设备,在cmd中输入adb root
;如果当前连接了多个设备,输入adb devices
,然后输入adb -s 设备名 root
即可,例如adb -s emulator-5554 root
。这一步是为后面修改DNS做铺垫。
进入adb shell
如果只连接了一个设备,在cmd中输入adb shell
;如果当前连接了多个设备,输入adb -s 设备名 shell
即可,例如adb -s emulator-5554 shell
。
查看DNS
输入getprop
可以查看当前的配置信息。
关闭虚拟机网络
先把WiFi和移动数据都关上。
修改DNS
进入shell后,执行命令。
setprop net.dns1 223.6.6.6
setprop net.eth0.dns1 223.6.6.6
输入getprop
看一下有没有修改成功。
重新联网
安卓虚拟机关闭WiFi和移动数据重新打开,或者重启虚拟机,都可以。
测试
安卓虚拟机中访问www.guanhaobo.cn
,能正常访问说明OK了。