2022 年 wsl2 支持用桥接了,我想利用桥接和路由器来设置静态 ip
[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 是一个
1
Joker6666677777 2023-02-10 08:04:38 +08:00 via Android
和你一模一样的问题
|
2
Joker6666677777 2023-02-10 09:26:39 +08:00
经过测试发现,路由器上不能直接设置绑定静态 IP 到 MAC ,一旦绑定 WSL 就不能正常连接网络了。但是有一个办法可以解决。就是设置路由器的 DHCP 限制只分发一个 IP ,这样 WSL 每次拿到的 IP 都是固定的了。缺点就是,如果家里有新手机联网,也要给在路由器上给新手机设置绑定固定 IP ,不然 DHCP 不会下发新 IP 。
|
3
guzzhao OP @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 子系统 |
4
mrzhang76 2023-02-10 22:25:12 +08:00
只能在 w11 下使用,我看咖喱味的微软是吃惯了咖喱味的屎,逼着人吃屎味的 w11
|