gpt4 book ai didi

ubuntu - WSL-2 DNS 不适用于 Win 10 上的 VPN 连接

转载 作者:行者123 更新时间:2023-12-04 12:09:39 45 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 on-topic对于堆栈溢出。


4个月前关闭。


社区昨天审查了是否重新打开此问题并将其关闭:

原始关闭原因未解决






Improve this question




我在我的 Windows 10 笔记本电脑上运行了 WSL 版本 2。我正在使用 WSL 发行版 Ubuntu-20.04。
当我连接到 VPN 网络时,域名解析不起作用,因此我无法访问 Internet。
使用的 VPN 客户端是“Cisco AnyConnect 安全移动客户端”
我尝试了以下步骤来解决此问题。

  • 以管理员模式打开 Windows 命令提示符
  • 执行以下命令
  • netsh winsock reset
    netsh int ip reset all
    netsh winhttp reset proxy
    ipconfig /flushdns
    reboot
    这工作了一次,我可以访问互联网。
    但是,一旦我断开 VPN 连接并再次连接,我又遇到了同样的问题。我试图再次执行命令并重新启动,但现在那不再工作了。
    什么是这个问题的永久修复?

    最佳答案

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

  • 使用 查找名称服务器windows powershell (在 VPN session 期间)
    nslookup
    您将获得公司名称服务器的 IPv4 地址
    复制这个地址。
  • 禁用 resolv.conf 生成 在wsl中:
    sudo nano /etc/wsl.conf
    将此文本复制到文件中(在 wsl 启动时禁用 resolve.conf 生成)
    [network]                                                                        
    generateResolvConf = false
  • 在wsl 将您的公司名称服务器添加到 resolv.conf
    sudo nano /etc/resolv.conf
    删除其他条目并添加您的公司名称服务器 IP(如果您有辅助名称服务器,请将其添加到单独的行中)
  • nameserver X.X.X.X (其中 X.X.X.X 是您在步骤 1 中获得的地址)

  • 设置您的 VPN 适配器(如果您有 Cisco AnyConnect)打开管理员 powershell
  • 找出您的 VPN 适配器名称:Get-NetIPInterface (在我的情况下:"Cisco AnyConnect")
  • 设置适配器指标(将 -Match 替换为您的姓名),在我的情况下,我必须在重新启动或 VPN 重新连接后运行它 :
  • Get-NetAdapter | Where-Object {$_.InterfaceDescription -Match "Cisco AnyConnect"} | Set-NetIPInterface -InterfaceMetric 6000
    ( What is interface metric : 用于确定路由,windows使用最低metric的接口(interface))
  • 重启wsl 在 powershell : wsl.exe --shutdown
  • 测试一下在wsl 运行:wget google.com - 如果这个命令有效,你就完成了。

  • 就我而言,当我尝试通过浏览器(在 Windows 10 上,f.e.:Intranet)连接到内部内容时遇到 DNS 问题,这是由步骤 4 中设置的高度量值引起的(基本上是禁用 VPN 路由)。因此,这是解决方法的解决方法:
  • 检查您的默认指标(VPN 接口(interface))在 powershell (将 -Match 替换为您的接口(interface)名称)
  • Get-NetAdapter | Where-Object {$_.InterfaceDescription -Match "Cisco AnyConnect"} | Get-NetIPInterface
  • 在 Windows 10 上遇到问题时,使用 恢复此默认值管理员 powershell (将末尾的值替换为您的默认值):
  • Get-NetAdapter | Where-Object {$_.InterfaceDescription -Match "Cisco AnyConnect"} | Set-NetIPInterface -InterfaceMetric 1

    关于ubuntu - WSL-2 DNS 不适用于 Win 10 上的 VPN 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66444822/

    45 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com