前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WSA不可上网

WSA不可上网

作者头像
阿龙w
发布2022-12-02 11:49:30
5.7K0
发布2022-12-02 11:49:30
举报

这个问题困扰了我两天,到现在才解决,这个方法全网,全百度,就只有一篇!

地址:https://blog.csdn.net/qq_14902731/article/details/124891739

全网仅此一篇!

另教程参考:https://www.zhihu.com/question/495358060

补充(2022.9.30)

经过一段时间的研究,我发现引起这个问题的根源不是因为was,而是因为我的网络开机了禁止二级路由,wsa的网络默认用nat到了一个172开头的ip。其实之前也有注意到这个问题,但是不知道为什么之前关闭禁止二级路由这个功能的时候还是不行,今天心血来潮测试了一下发现可以了。下面的教程有加上。

解决思路

一开始使用WSA时,wifi界面提示不可上网,然后我查看发现ip地址经过了nat,是172开头的,我尝试改为dhcp结果无效

后来我尝试将路由器的阻止二级路由关闭,但是没有用

百度各种教程,全部都是解决不可上网这个提示的,他们给出的教程是

adb shell settings put global captive_portal_https_url https://www.google.cn/generate_204
adb shell settings put global captive_portal_http_url http://www.google.cn/generate_204

这个方法并不能解决我不可上网的问题

我将他默认的固定ip改为dhcp(吐槽一句 这地方鼠标有问题得键盘操作)

结果改了之后死活无法接入,此时我怀疑是nat没有dhcp

后来我在这篇文章找到了更换hyper-v虚拟机网卡的方法(咱是vmware用户,除了沙盒从来没用过hyper-v)

通过这个我成功解决了我的问题

解决方法

若您使用代理,该教程不使用于你 其他请另行百度

从最开始的地方开始说,在操作任何安卓系统之前请确保您已有adb

安装ADB

ADB工具官网:https://developer.android.google.cn/studio/releases/platform-tools?hl=zh-cn

镜像适用于Windows的文件直接:https://cloud.alongw.cn/api/v3/file/source/605/ADB.zip?sign=fW0IVqXmtcZv7ssaqpj_r7oCYUNQ6YdNVMplKP4NQR8%3D%3A0

程序员这里做的有问题,点名批评

配置ADB环境变量(其实也可以不配置但是麻烦点所以推荐配置)

将ADB解压到一个文件夹,然后配置环境变量(其实你也可以把他解压到System32,但是我不推荐)

新版本设置

预览后选择ADB工具包的根目录,如果你听不懂这句话,请查看这篇文章:https://cloud.tencent.com/developer/article/2184331

然后确定确定确定即可

旧版本设置界面...(不对啊旧版哪来的WSA,算了当环境变量添加教程了)

预览后选择ADB工具包的根目录,如果你听不懂这句话,请查看这篇文章:https://cloud.tencent.com/developer/article/2184331

然后确定确定确定即可

装完在命令行中输入adb,将会显示提示(若未显示请重启终端,否则就是环境变量配置有问题)

顺带一提,若虚拟机ADB一直连不上,请检查一下任务栏的图标,有没有是否允许连接的对话框

因为谷歌验证的问题

管理员运行powershell

然后运行

adb connect 127.0.0.1:58526

成功后运行

adb shell settings put global captive_portal_mode 0

DNS的问题

修改DNS为114.114.114.114

系统防火墙的问题(若未开启防火墙请忽略)

管理员运行powershell,输入命令(也可尝试关闭防火墙)

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow

子系统的问题

进入设置-应用-应用和功能,找到windows subsystem for Android ,点三个点,高级选项,选择修复。

还是谷歌的原因

管理员运行powershell

然后运行

adb connect 127.0.0.1:58526

成功后运行

adb shell settings put global captive_portal_https_url https://www.google.cn/generate_204
adb shell settings put global captive_portal_http_url http://www.google.cn/generate_204

虚拟机中设置DNS

管理员运行powershell

然后运行

adb connect 127.0.0.1:58526

成功后运行

adb shell am start -n com.android.settings/.Settings\$WifiSettingsActivity

这时会进入安卓的设置界面,打开网络和互联网,进入WLAN,选择已经连接的VirtWifi,进入设置,右上角铅笔编辑,修改dns为114.114.114.114,备用8.8.8.8

路由器禁止二级路由(2022.9.30补充)

有一些路由器有禁止路由器的功能,我研究了一段时间,之前有排查过这个不行,但是仔细想想我was中默认给的ip是172.21.104.224,给的网关是172.21.96.1。然后查看物理机的网卡信息(如图)

这怎么看都是一层nat啊!!不甘心的我又再次尝试关闭这个功能,重启WSA,然后发现问题成功解决!

修改Hyper-v网络配置让其使用物理网卡物理连接网络(我是通过该方法解决的问题)

该方法会修改网卡的配置,强迫症者切勿轻易尝试

这种方法是修改hyper-v的网卡设置,将他设置成使用物理网卡连接网络,用于禁止二级路由的情况

如果你用这个方法能解决,那多半就是禁止二级路由惹得锅

将连接类型改为外部网络,然后选择电脑上网使用的网卡

若确认时出错,请执行下面的操作

选择正在使用的网卡,然后点击属性

确定确定确定

重启电脑

重新设置即可

接下来修改WSA网络设置

若操作出现问题,请使用键盘

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-8-26 3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 补充(2022.9.30)
  • 解决思路
  • 解决方法
    • 安装ADB
      • 配置ADB环境变量(其实也可以不配置但是麻烦点所以推荐配置)
        • 新版本设置
        • 旧版本设置界面...(不对啊旧版哪来的WSA,算了当环境变量添加教程了)
      • 因为谷歌验证的问题
        • DNS的问题
          • 系统防火墙的问题(若未开启防火墙请忽略)
            • 子系统的问题
              • 还是谷歌的原因
                • 虚拟机中设置DNS
                  • 路由器禁止二级路由(2022.9.30补充)
                    • 修改Hyper-v网络配置让其使用物理网卡物理连接网络(我是通过该方法解决的问题)
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档