当前位置: 首页 > news >正文

利用WSL2的镜像功能访问Windows下的所有网卡

目录

引言

镜像功能

如何设置

自动代理

结语


引言

我通常用PC上的LAN口去连接开发板,但是在WSL2中要访问LAN口连接的开发板有点麻烦。WSL2默认的网络模式为NAT,如果要访问Windows中网口需要设置桥接,比较繁琐。今天尝试了一下Windows 11的镜像网络功能,觉得非常方便,推荐给大家。

镜像功能

镜像网络的官方说明在这里:Accessing network applications with WSL | Microsoft Learn。

在运行 Windows 11 22H2 及更高版本的计算机上,你可以在.wslconfig 文件的 [wsl2] 部分下设置 networkingMode=mirrored(网络模式=镜像模式),以启用镜像模式网络。启用此功能会将 WSL(适用于 Linux 的 Windows 子系统)切换到全新的网络架构,其目标是将你在 Windows 上的网络接口 “镜像” 到 Linux 中,从而添加新的网络功能并提高兼容性。

以下是启用此模式目前带来的好处:

1. IPv6 支持

2. 使用本地主机地址 127.0.0.1 从 Linux 内部连接到 Windows 服务器。不支持 IPv6 本地主机地址 ::1。

3. 提高了 VPN(虚拟专用网络)的网络兼容性

4. 组播支持

5. 直接从你的局域网 (LAN) 连接到 WSL

简单的说,一般在WSL2中得到的是一个172开头的IP地址,而采用了镜像网络之后,所有Windows的网口都被映射到WSL2中,就像下面这样: 

test@ERAZE-UHYFLAFVU:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.137.1  netmask 255.255.255.0  broadcast 192.168.137.255inet6 fe80::f764:e9f6:65e6:4967  prefixlen 64  scopeid 0x20<link>ether 68:1d:ef:3c:97:5b  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 5  bytes 450 (450.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1472inet 192.168.1.216  netmask 255.255.255.0  broadcast 192.168.1.255inet6 2408:8207:193f:d350:61e5:681e:ac74:e19c  prefixlen 128  scopeid 0x0<global>inet6 2408:8207:193f:d350:a9a9:9da:93ff:14f6  prefixlen 64  scopeid 0x0<global>inet6 fe80::4991:3d61:ea7c:b92d  prefixlen 64  scopeid 0x20<link>ether b0:ac:82:86:46:8b  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 11  bytes 1170 (1.1 KB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0loopback0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500ether 00:15:5d:13:a7:dc  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

现在的eth0是我的LAN口,而eth1是WLAN。 

而现在我就可以直接访问开发板了:

如何设置

在Windows的用户文件夹(如果用户名为 “JohnDoe”,那么就是 “C:\Users\JohnDoe”)下的`.wslconfig`文件中填入以下配置(如果没有该文件,就创建一个):

[experimental]
networkingMode=mirrored

然后使用wsl --shutdown命令关闭WSL2实例。在下次打开WSL2的时候,镜像网络就配置好了。

自动代理

在运行 Windows 11 22H2 及更高版本的计算机上,在 .wslconfig 文件的 [wsl2] 部分下设置 autoProxy=true,可强制 WSL使用 Windows 的 HTTP 代理信息。

[wsl2]
autoProxy=true

如果你已在 Windows 中设置了代理,启用此功能后,该代理也会在 WSL 中自动设置。这对于从Github下载软件非常方便。

有关更多的WSL2设置可以参考:Advanced settings configuration in WSL | Microsoft Learn

结语

以上就是关于WSL镜像模式网络和自动代理功能的详细介绍啦!无论是想要优化网络兼容性、解锁新的网络特性,还是简化代理配置流程,这些设置都能为你的WSL使用体验带来显著提升。如果你在实践过程中遇到任何问题,或者发现了更多实用技巧,欢迎在评论区分享交流。探索WSL的更多可能性永无止境,期待大家都能在Windows与Linux的融合世界里,找到最适合自己的高效工作与开发方式!

后记

我有个学生提醒我,现在有个应用WSL Settings可以专门来修改参数,不需要再修改配置文件了。嗯,确实好用!

相关文章:

  • 日志文件太大,如何分卷压缩便于传输
  • 第 2 篇:初探时间序列 - 可视化与基本概念
  • 【网络编程】从零开始彻底了解网络编程(三)
  • IQ信号和实信号的关系与转换的matlab实现
  • 软件工程师中级考试-上午知识点总结(上)
  • Docker概念详解
  • Netdata 监控多台服务器
  • 【大模型ChatGPT +DeepSeeK+python】最新AI赋能Python长时序植被遥感动态分析、物候提取、时空变异归因及RSEI生态评估
  • JavaScript与TypeScript
  • ‌射频功率放大器的核心工作机制与组件设计
  • 从模拟到数字:舵机控制技术的飞跃!
  • Java中 关于编译(Compilation)、类加载(Class Loading) 和 运行(Execution)的详细区别解析
  • vue3数据响应式丢失的情况有哪些
  • 极狐GitLab CEO 柳钢受邀出席 2025 全球机器学习技术大会
  • 大语言模型提示词工程详尽实战指南
  • 【计网】三四章习题
  • Linux-编辑器的使用
  • 【Linux】线程安全与线程同步
  • 单页面应用的特点,什么是路由,VueRouter的下载,安装和使用,路由的封装抽离,声明式导航的介绍和使用
  • 【Easylive】为什么需要手动转换 feign.Response 到 HttpServletResponse
  • 大学2025丨浙大哲学院院长王俊:文科的价值不在于直接创造GDP
  • 全球安全倡议提出三周年,外交部介绍有关情况
  • 高架上2名儿童从轿车天窗探出身来,驾驶员被记3分罚200元
  • 上海群文创作大检阅,102个节目角逐群星奖
  • 北京理工大学解除宫某聘用关系,该教授此前被指骚扰猥亵学生
  • 观察|中日航线加速扩容,航空公司如何抓住机会?