【镜像模式】WSL如何访问windows内网服务

最近又入职了上海一家公司去实习,和前几次在互联网大厂实习不同,这家公司竟然没有提供我们程序员必备的Mac,向来用不惯台式机的博主,便把自己久经沙场的windows轻薄本搬到公司,企图使用WSL进行编码开发。

结果差点倒在了第一关,众所周知公司的开发环境都是内网,而WSL默认NAT模式,是无法访问windows连接的内网的,这样想git clone内网的代码都不行,真是祸不单行!

所以才有了本文的内容,话不多说,想要实现**WSL和宿主机之间的相互访问,**一般有两种模式:

  1. **桥接模式(bridged-mode)**即将WSL直接连接到物理网络,使其在同一局域网内与其他设备平等通信,并获得与宿主机相同的网络段IP地址。
  2. **镜像模式(mirrored-mode)**即使WSL2与Windows共享同一个局域网IP,支持代理、IPv6,以及直接的局域网连接,它是WSL2的最新网络模式之一

这两种方式都能使得WSL可以访问内网服务(同时内网也可以访问WSL了),新版WSL更推荐使用的是【镜像模式】,所以下面介绍如何将WSL设置为镜像模式

首先使用命令"wsl"打开WSL终端,使用nslookup测试一下能否访问公司的内网,如果什么也没设置的话,肯定是不行的

bash 复制代码
nslookup gitlab.csdn.net

打开windows中C:/用户/【你的用户名】/.wslconfig 这个文件,没有就创建,写以下内容以设置镜像模式

bash 复制代码
[wsl2]
networkingMode=mirrored
dnsTunneling=true
autoProxy=true
firewall=true
guiApplications=false
[experimental]
hostAddressLoopback=true
bestEffortDnsParsing=true

在windows中输入ipconfig, 找到公司所在的内网下面的DNS服务器IP地址列表

然后编辑WSL内的**/etc/resolv.conf**文件,将上述IP地址写入,最后面补一下114的公有ip地址保底

bash 复制代码
nameserver 【DNS IP地址1】
nameserver 【DNS IP地址2】
...
nameserver 114.114.114.114

为了防止**/etc/resolv.conf** 文件在重启时被reset,还需要在**/etc/wsl.conf**文件中加上:

bash 复制代码
[network]
generateResolvConf = false

这样再使用nslookup测试或者git clone都能找到内网中对应的域名了

相关推荐
攻城狮在此3 分钟前
华为企业网二层交换、三层交换、出口路由组网配置案例(OSPF动态路由)
网络·架构
七夜zippoe4 分钟前
OpenClaw 多代理协作编排:构建企业级智能协作网络
网络·工作流·openclaw·多代理协作·对等协作
会员果汁2 小时前
网络工程-路由策略概述
网络
小成202303202658 小时前
Linux高级02
linux·开发语言
mounter6258 小时前
【硬核前沿】CXL 深度解析:重塑数据中心架构的“高速公路”,Linux 内核如何应对挑战?-- CXL 协议详解与 LSF/MM 最新动态
linux·服务器·网络·架构·kernel
++==8 小时前
Linux 进程间通信与线程同步技术详解:IPC 机制、线程 API、同步工具与经典同步问题
linux
泓铮9 小时前
Windows 环境下 WSL2 与 VMware Workstation 17 共存机制研究与工程实践
windows
特长腿特长9 小时前
centos、ubantu系列机的用户和用户组的结构是什么?具体怎么配置?用户组权限怎么使用?这篇文章持续更新,帮助你复习linux的基础知识
linux·运维·centos
zzzyyy5389 小时前
Linux环境变量
linux·运维·服务器
pluvium279 小时前
记对 xonsh shell 的使用, 脚本编写, 迁移及调优
linux·python·shell·xonsh