V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hez2010
V2EX  ›  程序员

WSL2 今天史诗级更新

  hez2010 · 2023-09-19 10:28:03 +08:00 · 37159 次点击
这是一个创建于 449 天前的主题,其中的信息可能已经有所发展或是发生改变。

今天 WSL2 更新了 2.0.0 版本,详细更新内容见: https://github.com/microsoft/WSL/releases/tag/2.0.0

总结一下主要是:

  1. 支持自动回收内存
  2. 支持自动释放 WSL2 虚拟硬盘空间
  3. 支持和 Windows 使用相同的网络(镜像网络)
  4. 支持 DNS Tunneling
  5. 支持 Windows 设置的代理
  6. 支持 Windows 防火墙
  7. 支持 Multicast

需要至少 Windows 11 23H2 ,目前还没有发布正式版本,不过可以考虑加入 Insider 的 Release Preview 或者 Beta 通道,更新系统之后运行 wsl --update --pre-release 升级 WSL ,然后就可以在 %userprofile%\.wslconfig 里面设置以下内容:

[experimental]
autoMemoryReclaim=gradual # 可以在 gradual 、dropcache 、disabled 之间选择
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

然后你会发现,WSL2 和 Windows 主机的网络互通而且 IP 地址相同了,还支持 IPv6 了,并且从外部(比如局域网)可以同时访问 WSL2 和 Windows 的网络。这波升级彻底带回以前 WSL1 那时候的无缝网络体验了,并且 Windows 防火墙也能过滤 WSL 里的包了,再也不需要什么桥接网卡、端口转发之类的操作了。

第 1 条附言  ·  2023-09-19 11:02:08 +08:00

详细更新公告见: https://devblogs.microsoft.com/commandline/windows-subsystem-for-linux-september-2023-update/

关于自动释放 WSL2 虚拟硬盘空间,需要设置稀疏 VHD。

首先在上面的配置里再加一行:

sparseVhd=true

然后运行这个命令切换到稀疏 VHD:wsl --manage 发行版名字 --set-sparse true

比如 wsl --manage Ubuntu --set-sparse true

第 2 条附言  ·  2023-09-19 11:13:11 +08:00

如果遇到了:

wsl: Hyper-V 防火墙不受支持
wsl: 不支持镜像网络模式,正在回退到 NAT 网络
wsl: DNS 隧道不受支持

请加入 Windows Insider 预览版计划,选择进入 Release Preview 或者 Beta 通道,然后更新系统!(当然选择 Dev/Canary 通道也不是不行,但是不稳定所以不建议)

或者如果不想加入预览版计划的话你也可以等几周,23H2 也快发布正式版了。

另外,使用 VSCode - WSL 插件的,建议去 VSCode 设置里把自动端口转发关掉(Remote: Auto Forward Ports),避免冲突,因为 WSL2 更新之后新的网络已经是和你的 Windows 使用相同网络了,不再需要端口转发了。

第 3 条附言  ·  2023-10-23 16:15:30 +08:00

如果你在 WSL 里使用 docker,那需要将 autoMemoryReclaim 配置为 dropcache 或者 disabled,然后在 /etc/docker/daemon.json 里添加一句 "iptables": false ,否则你可能无法正常使用 docker。

194 条回复    2024-04-11 14:42:30 +08:00
1  2  
TsubasaHanekaw
    101
TsubasaHanekaw  
   2023-09-19 16:46:37 +08:00
这波好了之后,windows 11 就成了最好的 linux 发行版
ShadowPower
    102
ShadowPower  
   2023-09-19 16:49:07 +08:00
@DigitalG
https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61
这篇文章里有自动挂载的例子,但是启动 wsl 要用两条命令来完成。
BurgerTown
    103
BurgerTown  
   2023-09-19 16:49:23 +08:00
VSCode 好像没能适应 mirrored 极其的慢 把自动端口转发关了也是一样(关了好像有些进程还是会自动转发
sunmoon1983
    104
sunmoon1983  
   2023-09-19 16:53:26 +08:00
我想要 win10 也能支持啊
leeyuzhe
    105
leeyuzhe  
   2023-09-19 17:00:09 +08:00
发现一个问题,开 clash 的 tun mode 之后,wsl 里面上不了网。ping 所有域名都被转发到一个内网 ip 上面
hez2010
    106
hez2010  
OP
   2023-09-19 17:04:25 +08:00
@default996 看错误代码是更新过程被中止。
可以考虑去 GitHub Release 页面下载 msix 包自己手动升级。
LANB0
    107
LANB0  
   2023-09-19 17:11:58 +08:00   ❤️ 2
23h2 要 beta 通道吧,似乎 Release Preview 搜不到更新
leeyuzhe
    108
leeyuzhe  
   2023-09-19 17:12:03 +08:00
@leeyuzhe 完蛋 jetbrains 的 ide 也连不上网了
FYFX
    109
FYFX  
   2023-09-19 17:16:25 +08:00
@leonshaw
这个应该挺早就支持了吧, 我现在 wsl 的 /home 目录挂的就是单 ext4 分区的一个盘, 不过每次 wsl --shutdown 之后都要手动再挂一遍,开机是写了个脚本自动挂载的
https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk
Akiya
    110
Akiya  
   2023-09-19 17:21:13 +08:00
终于不用再整端口转发的麻烦事了吗
hez2010
    111
hez2010  
OP
   2023-09-19 17:21:27 +08:00
@leeyuzhe 可以考虑关掉 clash 然后重启一下系统。转发到的那个内网 IP 有可能是 clash 给你设置的代理,既然都用 tun mode 了就应该把代理的地址从设置里清掉。
leeyuzhe
    112
leeyuzhe  
   2023-09-19 17:29:01 +08:00
@hez2010 #111 没有手动或者自动设置全局代理,只有 tun mode ,关掉后 wsl 可以正常上网。但是 idea 还是不行
yeohreet
    113
yeohreet  
   2023-09-19 17:38:13 +08:00
可以可以,基本痛点都解决了。
hez2010
    114
hez2010  
OP
   2023-09-19 17:40:17 +08:00
@leeyuzhe 有可能 idea 帮你做了端口转发然后发生端口冲突了,对于原来的网络来说有必要,对于新的来说属于是多此一举。
a632079
    115
a632079  
   2023-09-19 17:45:09 +08:00   ❤️ 1
@cylx3124 #69

https://devblogs.microsoft.com/commandline/windows-subsystem-for-linux-september-2023-update/#automatic-memory-reclaim

However, this feature does require disabling cgroups v1 in WSL, which can cause some issues. In early testing we noticed that this will break the docker daemon when running it as a service in WSL, and so if you’re using this feature we recommend you use Docker Desktop for your docker needs. We are working with the Docker team to address this in the future.

If you’d like to customize your idle detection thresholds and more, we’d recommend doing so by not enabling this feature and creating a bash script, see this GitHub gist for instructions.

You can also set this to drop which will instead drop caches entirely after detecting idle, and will not require any cgroup changes.


总结下来,如果你是直接 apt install docker 的话,那你需要打开 systemed 转 cgroup2 ,然后禁用 cgroup 1 。亦或者直接切 Docker Desktop ,亦或者直接采用 drop 策略。
dryadent
    116
dryadent  
   2023-09-19 17:45:20 +08:00
我有个问题,wsl 微软官方只支持 Ubuntu 么,可以装其他的发行版么
a632079
    117
a632079  
   2023-09-19 17:51:31 +08:00
@dryadent 可以啊,Fedora ,CentOS (现在是 Rocky ),Debian ,Arch 啥的都在商城里能直接搜到。如果自己打包的话会麻烦一些。不过微软他自己肯定是优先基于 ubuntu 测试的。
hez2010
    118
hez2010  
OP
   2023-09-19 17:53:11 +08:00
@dryadent Ubuntu Debian CentOS Kali Arch Fedora openSUSE Manjaro 甚至 Alpine 等等,基本上所有发行版都有,微软商店里面找不到的话 GitHub 上也有很多社区开发者自己做了 WSL 的发行版。
Nasei
    119
Nasei  
   2023-09-19 18:05:57 +08:00
这下边提 mac 的就是搞笑的,一旦你要编译的代码涉及到很多 native 的库,你就知道 mac 有多坑了,只能当成一个远程上网本到服务器上编译。但是 wsl 可以
gav1nvv
    120
gav1nvv  
   2023-09-19 18:13:37 +08:00
之前就是因为网络问题,导致基于微服务的 docker 开发特别困难,有空试试
Ming5Ming
    121
Ming5Ming  
   2023-09-19 19:21:18 +08:00
不知道那个开着 wsl 睡眠以后开机占用 100%cpu 的 bug 修了没有🙄
2NUT
    122
2NUT  
   2023-09-19 19:38:12 +08:00
@tony1016 别吹,现在 windows 的开发生态比 macOS 好得多
brsyrockss
    123
brsyrockss  
   2023-09-19 19:40:15 +08:00
@lblblong deng 12
mmdsun
    124
mmdsun  
   2023-09-19 19:47:31 +08:00 via iPhone
@20015jjw
WSL 子系统是软件的形式提供的,能同时启动运行多款 Linux 系统( Ubuntu ,Debian ,Kali,CentOS...等),用到多系统的调试和编译太方便了,某个子系统搞坏了,卸载重装子系统 APP 就行。
cubecube
    125
cubecube  
   2023-09-19 21:24:28 +08:00
警告!警告!警告!不要随意跳 preview ,很容易被坑跳不回来,我上次等了半年多,无奈重装了
sf4675822
    126
sf4675822  
   2023-09-19 21:26:08 +08:00
我的 win11 是 dev 频道的,最新版 23545 ,仍然出现
wsl: Hyper-V 防火墙不受支持
wsl: 不支持镜像网络模式,正在回退到 NAT 网络
wsl: DNS 隧道不受支持
cyp0633
    127
cyp0633  
   2023-09-19 21:29:59 +08:00
还会占走一大片端口么
felixcode
    128
felixcode  
   2023-09-19 21:41:26 +08:00
23545.1000 dev 频道,出现
wsl: Hyper-V 防火墙不受支持
wsl: 不支持镜像网络模式,正在回退到 NAT 网络
wsl: DNS 隧道不受支持
slert
    129
slert  
   2023-09-19 21:50:22 +08:00
不错 刚好因为网络的问题弃用 wsl
leonshaw
    130
leonshaw  
   2023-09-19 23:01:48 +08:00 via Android
@FYFX #109 我是想挂跟 C 盘同一块硬盘上的一个分区,这个 issue 好像没什么动静了
https://github.com/microsoft/WSL/issues/8773
supersu
    131
supersu  
   2023-09-19 23:05:40 +08:00
访问 c 盘 d 盘奇慢的问题解决了么~
Inf1nity
    132
Inf1nity  
   2023-09-19 23:30:17 +08:00
试了一下新特性,使用体验非常丝滑,之前的痛点几乎都解决了。

目前唯一的痛点是 WSL2 不能直接使用 Windows 主机上的 USB 设备(目前的解决方案是使用 usbipd ),如果以后能解决这个问题的话就真成最好的 Linux 发行版了。
poplar50
    133
poplar50  
   2023-09-19 23:42:25 +08:00 via Android
@daya 可以。共享 windows 显卡驱动,在 wsl 里可以直接 nvidia-smi 查看显卡。可以直接装 nvidia-docker ,跟裸装 linux 性能大概有 5-10%的损失。
bnull
    134
bnull  
   2023-09-20 02:02:58 +08:00
好家伙,相交 beta 更新更快的 dev 渠道居然还是 22H2 但是版本已经到 23545 了,一样用不了
dingwen07
    135
dingwen07  
   2023-09-20 02:43:21 +08:00
这下 Windows 是最强 Linux distro 了
Jat001
    136
Jat001  
   2023-09-20 05:20:25 +08:00
@leeyuzhe #105 你是用的 fake-ip 吗? fake-ip 是劫持 DNS 解析,把所有域名都指向 fake-ip-range 网段内的 IP ,不可能是同一个 IP ,只是同一网段。
我试了下,只有 https 不行,http 请求是可以的,无论需不需要翻墙。
Jat001
    137
Jat001  
   2023-09-20 06:19:51 +08:00
https://learn.microsoft.com/en-us/windows/wsl/wsl-config#experimental-configuration-settings

还有些其他选项没列出来,但试了下好像没什么区别
deorth
    138
deorth  
   2023-09-20 06:51:16 +08:00 via Android
很好,那什么时候 windows 支持 btrfs
ch3n9w
    139
ch3n9w  
   2023-09-20 08:24:57 +08:00
微软早三年更新这样的功能我就不会入坑 linux 桌面了...
yuyanglive
    140
yuyanglive  
   2023-09-20 09:02:02 +08:00
@arfaWong
wsl 下的 docker 能用吗?
lllpla
    141
lllpla  
   2023-09-20 09:19:46 +08:00
ShadowPower
    142
ShadowPower  
   2023-09-20 09:28:49 +08:00
@yuyanglive 其实我在 2017 年的时候(当时 WSL1 刚修完各种大 bug )就已经尝试 WSL 下使用 Docker 了。
2018 年的时候在 V2EX 上发了个回复:
https://www.v2ex.com/t/446914?p=2#r_5623149

在那时候就可以做到非常完美的程度,例如:
可以在 WSL 下挂载 Windows 目录下的文件到 Volume 里。
当年我还在做 HyperFabric ,它的 Peer 节点在 Docker 内部跑,然后 Peer 会启动 Docker 容器跑 Chaincode 。这需要能连接到 Docker 容器外部的 Docker Daemon 才能实现。官网的实例不用做额外配置,直接用 WSL1 都可以。官方的 Linux 示例,一行代码都不改,直接跑通。( PS:之前用 Apple Silicon macOS 都跑不通……)
那时候还用来开发了 Kubernetes 容器编排微服务,用这种环境来做测试,也没问题。

至于 WSL2 Docker 的话,比上面提到的还要完善。
ShadowPower
    143
ShadowPower  
   2023-09-20 09:29:41 +08:00
@yuyanglive 打错了,是 Hyperledger Fabirc
arfaWong
    144
arfaWong  
   2023-09-20 09:30:57 +08:00
@yuyanglive #140 我通过 docker desktop 安装的,wsl 下 docker 正常
JeromeCui
    145
JeromeCui  
   2023-09-20 09:38:42 +08:00
试了一下,intellij idea 搭配 wsl 还是不好用,算了,继续用我的 Kubuntu
a33291
    146
a33291  
   2023-09-20 10:10:21 +08:00
win11 canary 版本升级到 2.0.0 后安装 Ubuntu 出现错误
wslregisterdistribution failed with error: 0x8004032d
yuyanglive
    147
yuyanglive  
   2023-09-20 10:20:03 +08:00
@ShadowPower
我的是 win11 22h2 ,wsl --update --pre-release 升级的 wls, docker 也是直接安装的 wsl 版本
设置 autoMemoryReclaim=gradual 后,wsl 里的 docker 跑不起来了,跟 70 楼情况一样,这一行注释掉就行了
yuyanglive
    148
yuyanglive  
   2023-09-20 10:21:09 +08:00
@arfaWong
我的是 win11 22h2 ,wsl --update --pre-release 升级的 wls, docker 也是直接安装的 wsl 版本
设置 autoMemoryReclaim=gradual 后,wsl 里的 docker 跑不起来了,跟 70 楼情况一样,这一行注释掉就行了
ding2dong
    149
ding2dong  
   2023-09-20 10:24:36 +08:00
挺好的,大半年没写代码了,等升级后试试,先去钓鱼了
leeyuzhe
    150
leeyuzhe  
   2023-09-20 10:26:25 +08:00
@hez2010 #114
@Jat001 #136
折腾半天无解,得等 idea 更新,idea 现在获取的宿主机 ip 永远是 127.0.0.42 ,然后在这上面监听,但是 wsl 里面访问不到。我又换回桥连了
ShadowPower
    151
ShadowPower  
   2023-09-20 10:41:46 +08:00
@yuyanglive 这在微软的博客里提到了,微软正在和 docker 团队沟通这一问题。然后博客里建议使用 Docker Desktop 。

In early testing we noticed that this will break the docker daemon when running it as a service in WSL, and so if you’re using this feature we recommend you use Docker Desktop for your docker needs. We are working with the Docker team to address this in the future.

其实还有其他问题,在楼主发的第一条附言的链接里都有说明。
capric
    152
capric  
   2023-09-20 10:43:24 +08:00
Windows 10 企业版 LTSC 21H2 (19044.3448)直接安装 github release 2.0.0 之后更新.wslconfig 后重启,再打开现有 linux
wsl: 不支持镜像网络模式,正在回退到 NAT 网络
wsl: Hyper-V 防火墙不受支持
wsl: DNS 隧道不受支持
vhwwls
    153
vhwwls  
   2023-09-20 11:29:30 +08:00
windows11 的 hyperv 是不是和 vmware 有冲突,我印象中以前在 windows10 下面 hyperv 和 vmware 可以共存的?
iawes
    154
iawes  
   2023-09-20 13:40:45 +08:00
Windows 以后会不会出一个 Linux 内核版
hez2010
    155
hez2010  
OP
   2023-09-20 13:56:40 +08:00 via Android
@iawes 感觉不太可能。
读了 windows internals 之后深感 linux 内核在 windows 内核前面如同玩具,就算要出 linux 内核版,现阶段 linux 缺少的东西也非常多。
default996
    156
default996  
   2023-09-20 15:56:11 +08:00
@BurgerTown 试过了,提示没有安装权限……只能退出安装。
还是等正式版吧
wei2629
    157
wei2629  
   2023-09-20 18:58:28 +08:00
nb 了 windows 是最好的 linux 发行版了。
well775397252
    158
well775397252  
   2023-09-21 00:04:17 +08:00
@BurgerTown 我用 mirrored 端口不能访问。。。
nodejsexpress
    159
nodejsexpress  
   2023-09-21 00:30:19 +08:00
用惯了 ubuntu 桌面, 似乎对微软无感了.
主要平时没有微信干扰, 可以静静地开发.
游戏也没有接触, 用最多是 ZSH+IDE+浏览器
jokcylou
    160
jokcylou  
   2023-09-21 07:58:36 +08:00
我更新了为啥 networkMode 不生效呢,我已经在 dev channel 了
hades97
    161
hades97  
   2023-09-21 09:35:34 +08:00
想问一下,这个要怎么更新呀?
BurgerTown
    162
BurgerTown  
   2023-09-21 09:57:09 +08:00
@well775397252 #158 看具体情况吧 我这边是可以 localhost:xx 访问的 但是不知道为什么 VSCode 就超级慢...
Taosky
    163
Taosky  
   2023-09-21 10:28:45 +08:00 via iPhone
@jokcylou 要加个配置,op 说过了,然后重启下 wsl 就生效了。
well775397252
    164
well775397252  
   2023-09-21 15:46:55 +08:00
@BurgerTown #162 能看一下你预览版的版本吗?我怀疑是版本不是最新?
jokcylou
    165
jokcylou  
   2023-09-21 16:17:26 +08:00
@Taosky 加了的来着,.wslconfig ,我都怀疑是不是配置文件没生效,还重启了电脑
haolongsun
    166
haolongsun  
   2023-09-21 19:35:48 +08:00
g 不是 beta 或者 pre release 版本的 win 更新完直接代理炸了 wsl 内怎么也连不上网 又不想升级系统 操了
haolongsun
    167
haolongsun  
   2023-09-21 20:10:05 +08:00
@leeyuzhe 你怎么解决的呀
well775397252
    168
well775397252  
   2023-09-21 21:21:27 +08:00
@magicedy #95 docker 端口那个 mirror 用不了
luvmhx
    169
luvmhx  
   2023-09-21 22:11:48 +08:00 via iPhone
@wildman9527 哈哈哈哈,懂不懂 Windows 最为最佳 Linux distro 的实力啊
leeyuzhe
    170
leeyuzhe  
   2023-09-22 11:29:35 +08:00
@haolongsun #167 换回桥联啊,把 networkingMode 改成 nat 然后正常在 wls2 节点下面配置桥连
cloud2000
    171
cloud2000  
   2023-09-22 20:17:14 +08:00   ❤️ 1
我也遇到和上面几位一样的:

wsl: Hyper-V 防火墙不受支持
wsl: 不支持镜像网络模式,正在回退到 NAT 网络
wsl: DNS 隧道不受支持

正式的解决办法是:
要切换到最“激进”的 Win 11 Canary 通道才行,滞后的 Beta 等通道不行。
即使升级了 wsl2,也不行。
paulluis2dev
    172
paulluis2dev  
   2023-09-24 15:38:27 +08:00
@mingwiki
@TsubasaHanekaw
@dingwen07
别吹了,别吹了,一直拿用户做测试,不完成的作品拿出来吹,还有一些问题至今没解决呢,要省心还不如虚拟机装原生 Linux ,WSLg 一直不稳定也有问题
jiangyingjuner
    173
jiangyingjuner  
   2023-09-24 20:44:20 +08:00
@default996 衷心请问怎么解决的问题,msstore 前两天自动给我更新了 WSL ,现在出现这个错误打不开了
hez2010
    174
hez2010  
OP
   2023-09-24 21:44:15 +08:00
@paulluis2dev WSL2 大概是唯一的自带丝滑的双显卡支持、四家显卡( NVIDIA 、AMD 、INTEL 、高通)的 Wayland 支持( WSL only )的同时还有 GUI 硬件加速的 Linux 发行版。
BurgerTown
    175
BurgerTown  
   2023-09-25 10:22:53 +08:00
@well775397252 #164 版本
Windows 11 专业版
版本 23H2
安装日期 ‎2022/‎5/‎14
操作系统版本 22631.2338
体验 Windows Feature Experience Pack 1000.22674.1000.0
default996
    176
default996  
   2023-09-25 14:49:24 +08:00
@jiangyingjuner #173 我是卸载了系统里面的“适用 windows 的 Linux 子系统”,然后重装 wsl
worldquant
    177
worldquant  
   2023-09-27 10:20:35 +08:00
挺坑的,需要更新到 25×××
hez2010
    178
hez2010  
OP
   2023-09-27 15:49:53 +08:00
@worldquant 不需要的,已经推送给 Release Preview 了。
worldquant
    179
worldquant  
   2023-09-27 22:41:49 +08:00
tsanie
    180
tsanie  
   2023-10-10 11:46:06 +08:00
@well775397252 #168 我试了下可以,我在 docker 里跑了个 iperf3 server ,用局域网另外一个设备连接可以跑通,不过 windows 要设置下防火墙,打开 5201 端口。

[ 5] local 10.0.10.100 port 55670 connected to 10.0.10.20 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 283 MBytes 2.37 Gbits/sec 0 3.15 MBytes
[ 5] 1.00-2.00 sec 280 MBytes 2.35 Gbits/sec 0 3.15 MBytes
...


Accepted connection from 10.0.10.100, port 35084
[ 5] local 10.0.10.20 port 5201 connected to 10.0.10.100 port 55670
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 273 MBytes 2.29 Gbits/sec
[ 5] 1.00-2.00 sec 281 MBytes 2.35 Gbits/sec
...

系统版本是 23H2 22631.2361 ,wsl 是 2.0.4.0
tsanie
    181
tsanie  
   2023-10-10 11:55:17 +08:00
@worldquant #178 我是 22H2 正式版 22621.2361 ,然后安装了个 23H2 启用包 KB5027397 ,版本号更新为 22631.2361

启用包就 180K ,安装后更新通道还是在正式版,没有加入 insider program

https://z1.ax1x.com/2023/10/10/pPxICtg.png
infinityv
    182
infinityv  
   2023-10-13 23:25:46 +08:00 via iPhone
我是 beta 通道 当前是 22H2 22621.2428 ,更新到 23H2 一直失败(下载进度卡 0%然后失败)报错“我们目前找不到为你的版本发布的任何更新”。不知道咋办
skrbug
    183
skrbug  
   2023-10-18 00:26:08 +08:00
我碰到个奇怪的问题,wsl2 + easyconnection 好像没办法一起配合使用
sunmoon1983
    184
sunmoon1983  
   2023-11-08 09:23:39 +08:00
```
PS C:\Users\Abc> wsl -u root
wsl: Unknown key 'experimental.autoMemoryReclaim' in C:\Users\Abc\.wslconfig:2
wsl: Unknown key 'experimental.networkingMode' in C:\Users\Abc\.wslconfig:4
wsl: Unknown key 'experimental.dnsTunneling' in C:\Users\Abc\.wslconfig:5
wsl: Unknown key 'experimental.firewall' in C:\Users\Abc\.wslconfig:6
wsl: Unknown key 'experimental.autoProxy' in C:\Users\Abc\.wslconfig:7
```
TomCN
    185
TomCN  
   2023-11-10 01:31:55 +08:00
今天更新了 23H2 ,正式版可以用了

==========================================================================
$ curl -svo /dev/null https://google.com
* Uses proxy env variable no_proxy == '192.168.*,172.31.*,172.30.*,172.29.*,172.28.*,172.27.*,172.26.*,172.25.*,172.24.*,172.23.*,172.22.*,172.21.*,172.20.*,172.19.*,172.18.*,172.17.*,172.16.*,10.*,127.*,localhost'
* Uses proxy env variable https_proxy == 'http://127.0.0.1:10809'
* Trying 127.0.0.1:10809...
* Connected to (nil) (127.0.0.1) port 10809 (#0)
* allocate connect buffer!
* Establish HTTP proxy tunnel to google.com:443
> CONNECT google.com:443 HTTP/1.1
> Host: google.com:443
> User-Agent: curl/7.81.0
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection established
<
TomCN
    186
TomCN  
   2023-11-10 01:36:58 +08:00
@TomCN #185 不过有个问题,代理变更之后,Windows 会收到“在主机上检测到 Http 代理更改。请重启 WSL 以应用更改。”

要是能实时变更就好了,希望后续更新能够改善~
nextone
    187
nextone  
   2023-11-17 22:13:58 +08:00
WSL 2.0.9 发布了,Windows 10 22H2 能用吗
qwqaq
    188
qwqaq  
   288 天前
@sunmoon1983 #104 @lblblong #2 @lilei2023 #26 @qing18 #47

Windows 10 21H2 (19044.4046) 亲测能用 WSL2

官方文档里提的版本要求是:Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11

https://learn.microsoft.com/en-us/windows/wsl/install
qwqaq
    189
qwqaq  
   288 天前
#188

😅 但是 `networkingMode=mirrored`、`firewall`、`dnsTunneling`、`autoProxy` 文档里说 Win10 不能用:

https://learn.microsoft.com/en-us/windows/wsl/wsl-config

> Entries with an * after the value type are only available on Windows 11.
>
> Entries with an ** after the value type require Windows 11 version 22H2 or higher.
Shook
    190
Shook  
   286 天前
请问应用了新版以后,可以 ping google.com 但是无法 curl 'http://google.com' 应该咋办啊?
ayiyaha
    191
ayiyaha  
   276 天前
@leeyuzhe 171 天过去了,2024-03-09,idea 访问 wsl 的项目还是 127.0.0.42,还有这个问题, 只能通过 remote wsl 连接,但那个有点占内存,唉
leeyuzhe
    192
leeyuzhe  
   275 天前
set `wsl.proxy.connect.localhost` registry value 这个可以,但还是有别的奇奇怪怪的问题,比如 kafka 在 mirrored 模式下老是获取不到客户端 ip 。。。
ayiyaha
    193
ayiyaha  
   269 天前
@leeyuzhe 目前是 network mirror 模式, registry 里设置了`wsl.proxy.connect.localhost` true 也不管用, 都是报错"connect refused: 127.0.0.42:xxx", 好像还是通过 resolv.conf 找宿主机 ip
leeyuzhe
    194
leeyuzhe  
   244 天前
@ayiyaha #193
在.wslconfig 里面加这个
[experimental]
hostAddressLoopback=true
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5003 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 40ms · UTC 09:06 · PVG 17:06 · LAX 01:06 · JFK 04:06
Developed with CodeLauncher
♥ Do have faith in what you're doing.