WSL(ubuntu) 和Cisco Anyconnect存在的网络连接异常问题

有时,脚本执行对环境有要求,比如需在linux、MACOS环境下执行,windows不支持。

由于我本机是windows,所以安装了ubuntu。在此插一句,做开发最好还是mac机,不然会很痛苦。在本机微软商店下载ubuntu,可正常使用。但连接了公司vpn(Cisco Anyconnect)后,就连不上网。导致脚本执行中断,比如镜像上传,go build等需要连网的操作。

ping baidu.com没反应。

经过长久查询,具体原因如下:

Anyconnect在链接后会根据vpn服务器的配置下发路由策略和dns策略,在本地存在wsl或者docker容器的情况下,因虚拟网络策略与vpn策略冲突导致网络异常,主要由两点引起:

         1、路由优先级问题。新创建的端口metric小于veth网卡,造成路由错误。
         2、dns解析问题。未连接vpn情况下是通过本地网关递归解析,vpn连接后造成本地递归失效(按说不应该失效,怀疑有其他坑待查),走vpn分配的dns服务器做解析即可。

解决:

        1、调整接口metric值

              Cisco anyconnect 连接的前提下,关闭WSL,管理员权限打开PowerShell(PowerShell ISE),执行:

Get-NetAdapter | Where-Object {$_.InterfaceDescription -Match "Cisco AnyConnect"} | Set-NetIPInterface -InterfaceMetric 6000

              完成后,可在WSL中ping 114.114.114.114,正常情况下已通。             

         2、设置WSL里的路由

              a、首先获得vpn分配的dns服务器地址,在管理员权限的PowerShell中执行:

(Get-NetAdapter | Where-Object InterfaceDescription -like "Cisco AnyConnect*" | Get-DnsClientServerAddress).ServerAddresses

              获得:10.10.0.124

                          10.10.0.132

             b、更新wsl里的域名配置文件,vim /etc/resolv.conf,添加上述两个ip保存即可。

             cat /etc/resolv.conf
                 nameserver 10.10.0.124
                 nameserver 10.10.0.132

ping baidu.com即可正常。

我遇到的问题:本地各种尝试各种百度打不开PowerShell,要么显示由于计算机限制被取消要么就是系统管理员已阻止这个应用。PowerShell ISE也打不开。经过一番查找之后使用如下方式解决: 桌面新建一个.reg文件,内容如下:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies]
[-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\policies]

保存后点击,PowerShell ISE就可以以管理员权限执行了,在PowerShell ISE上执行命令即可。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在VSCode中连接WSL2和Ubuntu,您可以按照以下步骤进行操作: 1. 首先,确保您的Windows 11系统已启用WSL2。您可以根据引用中提供的指示重新导入并安装WSL2。 2. 安装VSCode的"Remote - WSL"扩展。您可以在VSCode中的扩展商店中搜索并安装此扩展。这个扩展将允许您与WSL2中的Ubuntu系统进行交互。 3. 打开VSCode,并在左下角的状态栏中找到"><"图标。单击它并选择"Remote-WSL: New Window"。这将打开一个新的VSCode窗口,专门用于与WSL2连接。 4. 在新窗口中,点击左下角的绿色箭头图标,并选择WSL2中的Ubuntu系统。如果您之前没有安装Ubuntu系统,请根据引用中的第一章指南安装Ubuntu18.04。 5. 连接成功后,您将在VSCode中打开WSL2中的Ubuntu系统的终端。您可以在终端中执行任何命令,并使用VSCode的编辑器功能编辑代码文件。 6. 要在VSCode中调试WSL2中的代码,您可以按照引用中的第三章指南进行操作。这将引导您设置VSCode的调试环境,并允许您在VSCode中调试WSL2中的代码。 通过这些步骤,您可以成功连接并使用VSCode与WSL2中的Ubuntu系统进行开发和调试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [(1)Win10 + WSL2 + Ubuntu 20.04 + Vscode环境配置](https://blog.csdn.net/liangnihei/article/details/127918412)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Windows11 WSL2 ubuntu中vscode调试代码](https://blog.csdn.net/weixin_42077820/article/details/124773330)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值