本文介绍了VPN时没有互联网连接Ubuntu-WSL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Windows 10笔记本电脑上运行的是Ubuntu-20.04版本2 WSL。一切都很好,我可以上网。但前提是我没有连接到VPN网络。

如果我使用Cisco AnyConnect连接到我的大学网络,我就不能再通过WSL连接到互联网,而使用Windows系统中的Firefox则一切正常。我收到:ping:Google.de:名称解析暂时失败

我已经尝试在管理模式下打开Windows命令提示符,并键入以下命令:

netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
reboot

一旦成功,我就可以上网了。但当我断开VPN连接并重新连接时,我又遇到了同样的问题。我尝试再次执行命令并重新启动,但现在不再起作用。

所以我真的不知道还能做什么。我确实需要在通过VPN连接时使用WSL。

推荐答案

WSL2-VPN修复:

使用VPN时,WSL2中的DNS转发存在问题(see github Issue)。此外,Cisco AnyConnect也有问题。因此,这里有一个解决这些问题的方法。应该适用于Ubuntu和Debian。

解决方法

  1. 使用Windows PowerShell查找名称服务器(在VPN会话期间)

    nslookup
    
    您将获得公司名称服务器的IPv4地址复制此地址。

  2. 在WSL:中禁用解决方案生成

    sudo nano /etc/wsl.conf
    

    将此文本复制到文件(以在WSL启动时禁用solve.conf生成)

    [network]                                                                        
    generateResolvConf = false
    
  3. 在WSL中将您的公司名称服务器添加到resolv.conf

    sudo nano /etc/resolv.conf
    

    删除其他条目并添加您的公司名称服务器IP(如果您有第二个名称服务器,请将其添加到单独的行中)

    • nameserver X.X.X.X(其中X.X是您在步骤1中获得的地址)
  4. 设置您的VPN适配器(如果您有Cisco AnyConnect)打开管理员PowerShell

    • 查找您的VPN适配器名称:Get-NetIPInterface(在我的例子中:"Cisco AnyConnect")
    • 设置适配器度量(替换-与您的姓名匹配),在我的情况下,我必须在重新启动或VPN重新连接后运行
    Get-NetAdapter | Where-Object {$_.InterfaceDescription -Match "Cisco AnyConnect"} | Set-NetIPInterface -InterfaceMetric 6000
    

    (What is interface metric:用于确定路由,Windows使用度量最低的接口)

  5. 在PowerShell中重新启动WSLwsl.exe --shutdown

  6. 在WSL中测试运行:wget google.com-如果此命令有效,则完成。

在我的案例中,当尝试通过浏览器(在Windows 10上,F.E.:内联网上)连接到内部内容时,由于步骤4中设置的高度量值(基本上是禁用VPN路由)而导致了DNS问题。因此,以下是解决方法:

  1. 在PowerShell中检查您的默认度量(VPN接口)(替换-与您的接口名称匹配)
Get-NetAdapter | Where-Object {$_.InterfaceDescription -Match "Cisco AnyConnect"} | Get-NetIPInterface
  1. 在Windows 10上遇到问题时,使用admin PowerShell恢复此默认值(将末尾的值替换为您的默认值):
Get-NetAdapter | Where-Object {$_.InterfaceDescription -Match "Cisco AnyConnect"} | Set-NetIPInterface -InterfaceMetric 1

这篇关于VPN时没有互联网连接Ubuntu-WSL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 16:55