wsl2 使用桥接网络问题

2023-01-20 18:59:45 +08:00
 guzzhao

2022 年 wsl2 支持用桥接了,我想利用桥接和路由器来设置静态 ip

  1. Hyper-V 创建外部虚拟交换机(switch)
  2. 修改.wslconfig
[wsl2]
networkingMode=bridged
vmSwitch=switch 名

这样配置网络正常,然后我在 linux 里用 ip a 查询 ip 和 mac 地址

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 5c:bb:f6:9e:ee:fa brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.111/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever

192.168.0.111 和 5c:bb:f6:9e:ee:fa ,我在路由器面板里绑定 ip,就连不上外网了,还有个问题在路由器上为什么 wsl2 的 mac 和主机的 mac 是一个

2104 次点击
所在节点    问与答
6 条回复
Joker6666677777
2023-02-10 08:04:38 +08:00
和你一模一样的问题
Joker6666677777
2023-02-10 09:26:39 +08:00
经过测试发现,路由器上不能直接设置绑定静态 IP 到 MAC ,一旦绑定 WSL 就不能正常连接网络了。但是有一个办法可以解决。就是设置路由器的 DHCP 限制只分发一个 IP ,这样 WSL 每次拿到的 IP 都是固定的了。缺点就是,如果家里有新手机联网,也要给在路由器上给新手机设置绑定固定 IP ,不然 DHCP 不会下发新 IP 。
guzzhao
2023-02-10 20:19:18 +08:00
@Joker6666677777
我已经解决了

1. Hyper-V 虚拟机创建外部虚拟交换机
2. 修改.wslconfig
```
[wsl2]
networkingMode=bridged
vmSwitch=替换成你创建的虚拟交换机名称
dhcp=false
```

> 当 dhcp=false 时会读取 `/lib/systemd/network/wsl_external.network` 的网络配置

`vim /lib/systemd/network/wsl_external.network`
```ini
[Match]
Name=eth0
[Network]
Description=bridge
DHCP=false
Address=192.168.1.10/24 # 自行修改
Gateway=192.168.0.1 # 自行修改

```

**修改 DNS 禁止自动生成**

添加 `/etc/wsl.conf` 加入以下内容

```ini
[boot]
systemd=true
[network]
generateResolvConf = false
```

```bash
rm -f /etc/resolv.conf
echo "nameserver 223.5.5.5" > /etc/resolv.conf
```




3. 重新启动 WSL 子系统
mrzhang76
2023-02-10 22:25:12 +08:00
只能在 w11 下使用,我看咖喱味的微软是吃惯了咖喱味的屎,逼着人吃屎味的 w11
Fanta721
252 天前
@guzzhao 关闭了 dhcp 后,设置静态 IP ,能上网吗?这个时候 WSL 里面的 MAC 地址和主机的 MAC 地址还是一个吗?
guzzhao
252 天前
@Fanta721 #5 用最新版的 win11 可以这样设置,wsl 和主机一个 IP,用 localhost 也可以访问 wsl

[wsl2]
networkingMode=mirrored # 网络使用 mirrored 模式
firewall=true
autoProxy=true
dnsTunneling=true

[experimental]
autoMemoryReclaim=gradual
sparseVhd=true
hostAddressLoopback=true

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/910074

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX