惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
H
Help Net Security
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
A
About on SuperTechFans
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
aimingoo的专栏
aimingoo的专栏
F
Fortinet All Blogs
博客园 - 【当耐特】
Microsoft Security Blog
Microsoft Security Blog
Martin Fowler
Martin Fowler
I
InfoQ
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
U
Unit 42
The Cloudflare Blog
Y
Y Combinator Blog

博客园 - 网无忌

体验Coding Plan 本地安装Dify 关于Docker Desktop的常用配置 渐变文字的小技巧 机器学习基础 pydantic中关于属性必填和选填的区别 CentOS的常用命令 密码中含有特殊字符造成mysqldump备份失败的一个小教训 通过模拟Cron执行环境来复现脚本执行失败的过程 查看mysql当前的执行任务,并关闭其中的指定任务 超简单的 rsync 命令,实现文件的增量同步 十九年白驹过隙,老园子聊发少年狂 Linux中安装anaconda 矢量数据库Chromadb的入门信息 在wsl中部署puppeteer的相关笔记 向量数据库横比 整理了一下目前各Linux发行版的清单 盘点各领域的包管理器 使用 jstat 命令查看 JVM 的GC信息 记录一个在js环境生成随机(伪造)数据的小插件,方便生成调试数据 使用Puppeter实现的全屏网页截图的小工具 开启 mysql 的 general_log
配置WSL2实现与宿主机的网络互通
网无忌 · 2024-10-26 · via 博客园 - 网无忌

前言

 
WSL1 是基于代理的虚拟化技术,它通过将 Linux 系统调用转换为 Windows 系统调用来实现与 Windows 内核的交互。WSL2 则使用了真正的虚拟机技术,它在 Windows主机 上运行一个轻量级的 Linux 内核。

WSL2 无法访问 Windows 的 localhost 网络是由 WSL2 的网络架构所致。WSL2 使用了一个虚拟网络适配器来与 Windows 主机进行通信,这导致 WSL2 无法直接访问 Windows 的 localhost 网络。因此,以往的 WSL2 在访问 Windows 网络时需要将其当作 LAN 的另一个设备,而 Windows 宿主则可以把 WSL 当作本机设备。这导致了很多问题,尤其是**方面的。

WSL2 2.0 引入的镜像网络可以解决 localhost 访问问题。启用镜像网络后,WSL2 和 Windows 主机将使用相同的网络,并且可以通过 localhost 访问本机系统上的服务。这意味着你可以在 WSL2 中访问本机系统上运行的应用程序,以及通过本机系统访问在 WSL2 中运行的应用程序。
 

配置

 
在Windows的资源管理器的地址栏输入: %UserProfile% ,即可打开当前用户的主目录,创建文件: .wslconfig
 

[wsl2]
memory=4GB                        # 分配给 WSL 2 的内存大小
processors=2                      # 分配给 WSL 2 的 CPU 核心数
localhostForwarding=true          # 是否启用 localhost 转发

[experimental]
autoMemoryReclaim=gradual         # 开启自动回收内存,可在 gradual, dropcache, disabled 之间选择
networkingMode=mirrored           # 开启镜像网络
dnsTunneling=true                 # 开启 DNS Tunneling
firewall=true                     # 开启 Windows 防火墙
autoProxy=true                    # 开启自动同步代理
sparseVhd=true                    # 开启自动释放 WSL2 虚拟硬盘空间

重启WSL

 
管理员身份运行PowerShell:

  • 停止WSL: wsl --shutdown
  • 启动WSL: wsl
     
    之后就可以在 wsl 中使用 localhost 的方式来访问宿主机上的服务了。
    curl http://localhost
     

其他命令

  • 在WSL中查看宿主机的IP:cat /etc/resolv.conf,输出中 nameserver 后面的地址即是宿主机的IP地址。