WSL Ubuntu(Linux的Windows子系统)上没有internet连接

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。没有任何帮助。 那么,您知道这里会出现什么问题吗?以

最近我在我的Windows机器上安装了WSL Ubuntu 18.04,但似乎没有任何东西正常工作,因为我没有互联网接入 我尝试了几个命令,
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

在中找到解决方案


步骤

  • 以管理员身份打开Powershell或Cmd
    并运行以下每个命令:

    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
    

  • 按Windows键,
    键入
    网络重置

    点击回车键。

    你应该看看这个窗户。
    单击“立即重置”。


  • 重新启动Windows

  • 如果幸运的话,WSL2现在应该能够
    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