WSL Ubuntu(Linux的Windows子系统)上没有internet连接
最近我在我的Windows机器上安装了WSL Ubuntu 18.04,但似乎没有任何东西正常工作,因为我没有互联网接入 我尝试了几个命令,WSL Ubuntu(Linux的Windows子系统)上没有internet连接,ubuntu,connection,windows-subsystem-for-linux,failed-to-connect,Ubuntu,Connection,Windows Subsystem For Linux,Failed To Connect,最近我在我的Windows机器上安装了WSL Ubuntu 18.04,但似乎没有任何东西正常工作,因为我没有互联网接入 我尝试了几个命令,sudo-apt-update说“连接失败”,并且ping google.com从这个屏幕截图中可以看出: 我还检查了nano/etc/resolv.conf,确保命名服务器是正确的,完全禁用了卡巴斯基及其防火墙,禁用了Hyper-V,多次重新安装了WSL,甚至禁用了Windows Defender。没有任何帮助。 那么,您知道这里会出现什么问题吗?以
sudo-apt-update
说“连接失败”,并且ping google.com
从这个屏幕截图中可以看出:
我还检查了
nano/etc/resolv.conf
,确保命名服务器是正确的,完全禁用了卡巴斯基及其防火墙,禁用了Hyper-V,多次重新安装了WSL,甚至禁用了Windows Defender。没有任何帮助。那么,您知道这里会出现什么问题吗?以管理员身份打开命令提示符并键入以下命令:
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
重新启动你的机器
对我来说,当我从一个网络切换到另一个网络时,会出现这个问题。比如说,我在办公室使用wifi,然后回到家开始使用家庭wifi。上面的答案对我很有用。看起来这是一个实际的isse,所以在Windows提出解决方案之前,我每次都必须找到一个更简单的方法来实现它。我复制了命令,创建了一个bat文件,并将其保存在桌面上。因此,每次切换wifi连接/网络时,我都以管理员身份运行bat文件并重新启动系统。我希望这能帮助那些试图弄清楚为什么会发生这种情况,以及如何知道一种简单的方法来解决它(不是永久性的)的人 创建一个包含以下内容的新.bat文件 我将我的文件命名为
networkreset.bat
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
netsh winsock reset
shutdown /r
每次切换wifi/网络时,以管理员身份运行脚本并重新启动
重新启动internet后,可在连接的网络上的WSL上工作。我在WSL2上安装了带有debian 10的ufw,在删除它并重新启动Windows后,它工作了。复制对我有效的配方
在Windows10上使用WSL2 在中找到解决方案
步骤
并运行以下每个命令:
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
键入
网络重置
,
点击回车键。
你应该看看这个窗户。
单击“立即重置”。
sudo-apt-get-update&&sudo-apt-get-upgrade
奇怪的边缘案例 对我来说,我仍然无法ping站点,但在WSL2中,互联网似乎在其他任何地方都能工作 例如,
ping stackoverflow.com
(或ping任何站点)会导致“100%的数据包丢失” 但是
curl--location stackoverflow.com-i
结果得到了成功的响应 和
sudo-apt-get-update&&sudo-apt-get-upgrade
现在可以工作了
查找上述配方前的故障排除步骤: 几个月没有使用WSL2了,当我发现我的互联网不工作时,我正试图从Debian发行版的终端进行
sudo apt更新
花了一个小时配置我的WSL的/etc/resolv.conf和/etc/WSL.conf,并对自动配置错误进行了故障排除()。还是不行
然后我找到了这一页。我试过张贴的指示。没用
终于找到了这个发布的解决方案,WSL2突然完美地工作了
我花了几个小时试图解决这个问题,希望有一天这对某人有用。对我来说,这是VPN服务(NordVPN服务)的一个问题,导致了许多问题。
只需从服务停止其服务。msc您只需在终端中键入此命令即可解决此问题
->sudo systemctl重新启动NetworkManager以上操作无效。
但是切换到WSL 1成功了
因此,在PowerShell中,作为管理员:
wsl --set-default-version 1
然后重新安装Ubuntu不幸的是,我唯一的解决方案是:
- 卸载任何Ubuntu(18.10和20.04)
- 删除Windows功能中的Linux子系统
- 重新启动
- 在Windows功能中启用Linux子系统
- 重新启动
- 重新安装Ubuntu 20.04
这是Win10 V1909(操作系统构建18363.1379)的一部分。我在这个和其他stackoverflow帖子中尝试了一切,但都没有成功
我只是建议将上述步骤作为绝对的最后手段。当我试图在WSL2上安装MySQL服务器时,这件事发生在我身上,我把它搞砸了ssh@local主机试图访问Ubuntu上的root用户。
系统本身变得非常奇怪(有时我希望Ubuntu有其他选择),所以我尝试重新启动vEthernet(WSL)适配器并重新启动计算机,它又重新工作了。所以我不知道这是否对任何人都有帮助,但我在Windows上安装了Docker,并按照Microsoft的说明按照Docker的建议安装了WSL2引擎
然后用WSL2安装了Ubuntu18.04LTS,遇到了完全相同的问题——没有互联网。我真正想做的就是在我的工作笔记本电脑上构建一些docker图像进行测试,所以没有互联网的WSL2对我来说是完全不可能的
在对各种论坛和指南(包括本帖)进行了大量的探索之后,以下是对我最终有效的方法:
- 我用WSL2重新安装了Docker
- 我从微软商店安装了Ubuntu20.04LTS,但使用命令提示符将WSL版本设置为1,如下所示
第一个命令显示发行版列表:
C:\users\xyz>wsl-l-v
名称
陈述
版本
Ubuntu-20.04
跑步
1.
docker桌面数据
跑步
2.
docker桌面
跑步
2.
在我的例子中,当我安装WSL2需求并将WSL升级到版本2时,WSL网络开始不工作
它可以将域解析为IP,但无法通过internet连接到IP
我将操作系统和wsl2模块更新为最新版本,并尝试了所有解决方案,但都不起作用
最后,我找到了解决办法
去D
%TEMP%\ApppData\Local\Temp\swap.vhdx