最近想熟悉一下 Linux ,大学安装的 VMware 使用不了了,正好看到 Windows 下可以安装子系统,也就正好试试 wsl2 ,wsl 启动后,默认 Hyper-v 创建 nat 模式的虚拟交换机,每次开机 IP 都会变,所以想改用桥接模式固定静态 IP ,这样部署服务也好通过 IP 端口直接访问
系统:Ubuntu22.04
1 | 版本 Windows 11 企业版 |
进入 Windows 用户根目录创建 .wslconfig 文件,并写入以下配置。(注:快捷键 win+R ,输入 %UserProfile%
直接进入你当前用户的根目录)
1 | [wsl2] |
创建上面名称为 WSL 的虚拟交换机,我用终端(管理员)创建,可以使用 Hyper-v 管理工具创建
1 | //查看已有的网络适配器,多张网卡的话选一个有网的网卡,比如名称是'以太网 9' |
终端运行 WSL 启动安装的 Linux 子系统,修改 sudo vim /etc/wsl.conf
中配置
1 | [boot] |
设置静态 IP ,创建网络配置文件 sudo vim /lib/systemd/network/wsl_external.network
,设置你自己的静态 IP
1 | [Match] |
修改一下域名解析服务器 sudo vim /etc/resolv.conf
1 | nameserver 8.8.8.8 #可以使用你本地服务商的域名解析服务器 |
重启一下网卡和域名解析服务
1 | sudo systemctl restart systemd-networkd |
终端彻底关闭重启一下 wsl
1 | //查看已安装linux子系统状态 |
一些发现:由于 WSL2 使用同一个网络空间且没有网络隔离,所以你使用 WSL2 同时运行多个分发版的 Linux 子系统,会发现多个子系统的 IP 一样,即使你为每个子系统都设置了静态 IP ,例如你同时运行两个发行版 Debian12 和 Ubuntu22 .04,并分别为两个子系统设置 IPV4 的 IP ,你会发现每个系统都会同时拥有这两个 IP
参考:
设置桥接
创建虚拟交换机
WSL2配置文档
[WSL 2] Multi WSL2 distributions use the same network namespace