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

一文教你正确打通WSL和win10宿主机网络全通道

写在文章开头

近期笔者通过WSL和朋友调试一些个人开发的项目时,发现一个奇怪的问题,笔者在WSL内配置了RPC服务注册地址为localhost:8080,原理是想将其注册到WSL这个子系统上,结果注册到宿主机Windows宿主机的网卡上,进而导致该服务无法访问:

在这里插入图片描述

于是笔者通过抓包并查阅相关文档资料得出了WSL和Windows通道全打通的正确步骤,希望对你有帮助。

在这里插入图片描述

Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源项目 Java Guide 的维护者之一,熟悉 Java 也会一点 Go ,偶尔也会在 C源码 边缘徘徊。写过很多有意思的技术博客,也还在研究并输出技术的路上,希望我的文章对你有帮助,非常欢迎你关注我的公众号: 写代码的SharkChili

因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注 “加群” 即可和笔者和笔者的朋友们进行深入交流。

在这里插入图片描述

详解WSL和Windows宿主交互通道配置

调整hosts配置

通过笔者的抓包排查并查看WSLhosts文件配置,可以看到WSLhosts也配置了localhost的解析配置,可以看到解析到地址也是127.0.0.1,很明显这就是问题的根源:


127.0.0.1       localhost
127.0.1.1       DESKTOP-xxxx.        DESKTOP-xxxx......

因为宿主机和我们的子系统对于localhost配置都指向127.0.0.1很多服务对于这种环回地址都会选择默认第一张网卡,这就会导致我们在WSL发布到localhost的服务器会走到非WSL的网卡:

在这里插入图片描述

对此,我们首先要做的就是获取WSL实际的IP地址,然后将localhost及其主机名称映射全部改为这个地址。

所以我们键入ifconfig得到地址后,将localhost和主机名映射全部改为这个ip地址,以笔者为例,WSL对应的ip172.x.x.x,所以笔者最终的配置如下所示:

172.21.x.x localhost
172.21.x.x      DESKTOP-DxxxS.        DESKTOP-DxxxS

修改防火墙规则

完成上述步骤后,对于网络访问冲突问题基本是解决了,到此我们还差一步打通WSL对于Windows宿主机的访问权限,这一步我们首先需要打开power shell并以管理员身份运行:

在这里插入图片描述

然后键入如下指令:

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound  -InterfaceAlias "vEthernet (WSL)"  -Action Allow

随后出现这样一个列表提示说明我们的配置成功了:

在这里插入图片描述

这一点我们也可以打开Windows Defender 防火墙,找到高级设置中的入站规的列表去印证,如下图所示,笔者直接通过搜索栏快速定位到防火墙:

在这里插入图片描述

如下图,可以看到入站规则中也有笔者配置的WSL放行规则,这也进一步的验证了我们的配置是生效的:

在这里插入图片描述

使用注意事项

经过上述的步骤,我们基本完成的WSL和宿主通道全打通过程,后续使用时我们建议直接使用WSL的实际IP地址而不是localhost这种,从而避免一些没必要的问题:

在这里插入图片描述

小结

自此我们将WSL和Windows宿主机网络通道打通的全过程都介绍完成了,希望对你有帮助。

我是 sharkchiliCSDN Java 领域博客专家开源项目—JavaGuide contributor,我想写一些有意思的东西,希望对你有帮助,如果你想实时收到我写的硬核的文章也欢迎你关注我的公众号: 写代码的SharkChili
因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注 “加群” 即可和笔者和笔者的朋友们进行深入交流。

在这里插入图片描述

参考

WSL2访问宿主Windows机器上的应用的极简之道:https://blog.csdn.net/jiangzhuang321/article/details/124166522


http://www.mrgr.cn/news/5367.html

相关文章:

  • 鸿蒙(API 12 Beta3版)【Image Kit简介】图片处理服务
  • 互动营销小程序怎么制作
  • 122-域信息收集应用网络凭据CS插件AdfindBloodHound
  • Nginx--代理与负载均衡(扩展nginx配置7层协议及4层协议方法、会话保持)
  • 鸿蒙内核源码分析(ELF格式篇) | 应用程序入口并不是main
  • 43.x86游戏实战-XXX寻找吸怪坐标
  • 探索CSS的:placeholder-shown伪类:增强表单输入体验
  • 等保二级测评:中小企业如何快速合规
  • webpack中1个文件修改会全部更新吗
  • linux性能查看命令和工具
  • Spring-MVC 结合 Swagger2
  • 等保测评基础:了解等级保护的基本概念
  • 四、Docker使用
  • 06-07 - 文件系统(下)
  • MD编辑器学习笔记
  • HttpWebRequest访问https请求被中止: 未能创建 SSL/TLS 安全通道
  • 【OpenCV】 中使用 Lucas-Kanade 光流进行对象跟踪和路径映射
  • 机器学习第五十三周周报 MAG
  • 集团数字化转型方案(七)
  • JVM常见面试题总结