WSL2访问宿主Windows机器上的应用的极简之道
WSL2访问宿主为何麻烦
随着WSL2的流行, 开发者可以在Windows上享受到Linux开发带来的便捷. 然而, 从WSL访问宿主Windows机器上的应用, 如代理等, 并不容易.
其原因在于, WSL2无法直接用localhost访问宿主, 且受Windows防火墙阻止.
现有网络资料多采用复杂脚本配置, 在本人看来属于杀鸡用牛刀.
为此, 本文总结了一种简捷的方式, 来访问WSL2访问宿主Windows机器上的应用.
步骤: 防火墙是最大敌人
- 用管理员模式打开PowerShell
- 输入如下命令添加防火墙规则, 来允许WSL2访问
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
- 打开"控制面板\系统和安全\Windows Defender 防火墙"-高级设置, 可在入站规则中看到WSL, 证明防火墙规则添加成功
- 检查其他入站规则, 若有规则阻止了待访问应用, 则禁用该规则
- 在WSL2中, 不要用localhost或127.0.0.1访问宿主, 要用WSL的地址, 可在PowerShell中用ipconfig命令获取
ipconfig
...
以太网适配器 vEthernet (WSL):
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::2404:b1d1:7791:96ab%57
IPv4 地址 . . . . . . . . . . . . : 172.23.208.1
子网掩码 . . . . . . . . . . . . : 255.255.240.0
默认网关. . . . . . . . . . . . . :