2023.10 WSL2 CentOS Ubuntu 使用桥接网卡(Hyper-V)固定静态IP/加入局域网
WSL2 CentOS 使用桥接网卡固定IP/加入局域网
2023.10.01 更新:不使用IPv6;不使用vmIdleTimeout;
参考资料
https://zhuanlan.zhihu.com/p/593263088
https://www.cnblogs.com/lic0914/p/17003251.html
-
进入 Hyper-V 管理器新建桥接网卡
-
进入 %USERPROFILE% 目录新建 .wslconfig 文件
[wsl2]
networkingMode=bridged
vmSwitch=Bridge
ipv6=false
dhcp=false
kernelCommandLine=ipv6.disable=1
[experimental]
autoMemoryReclaim=gradual
- 进入 WSL2 /etc 新建 wsl.conf 文件
[boot]
systemd=true
[user]
default=root
[network]
hostname=WSL2
generateResolvConf=false
- 解决 D-Bus 报错
仅适用于 CentOS / Oracle Linux
先使得命令本身可用
mv /usr/bin/systemctl{,.bak}
curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py > /usr/bin/systemctl
chmod +x /usr/bin/systemctl
然后启动 D-Bus 本身
systemctl enable --now dbus
rm -f /usr/bin/systemctl
mv /usr/bin/systemctl{.bak,}
- 更换网络管理服务
systemctl disable network NetworkManager
yum -y install systemd-networkd systemd-resolved
apt -y install systemd-networkd systemd-resolved
cd /lib/systemd/network/
- 新建网络配置管理文件 Bridge.network
如果是 Ubuntu ,可能需要将配置文件改为 01-Bridge.network
[Match]
Name=eth0
[Network]
Description=bridge
DHCP=ipv4
IPv6AcceptRA=true
[Address]
Address=192.168.8.55/24
[Route]
Gateway=192.168.8.1
[DHCP]
UseDNS=true
UseIPv4=true
- 启动网络服务
systemctl enable systemd-networkd systemd-resolved
systemctl start systemd-networkd
systemctl restart systemd-resolved.service
- 修改 DNS 解析地址
rm -f /etc/resolv.conf
echo "nameserver 223.5.5.5" > /etc/resolv.conf
对于 Ubuntu
rm -f /etc/resolv.conf
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
vim /etc/resolv.conf
- 重启后检查 IP 地址