当你需要一个带有网络拓扑模拟器的虚拟机环境时,为什么不考虑一下把 GNS3 装进 Windows 的 WSL 2 中呢?
我在以前的文章中曾经提过如何在 WSL 2 上开启 KVM 虚拟化,随着时间流逝,Windows 11 的发布,让整个配置过程又简单了不少,我们已经不需要像过去那样手动编译内核,只要修改配置文件就能开启 WSL 2 中的嵌套虚拟化。
那么,比起我需要一个额外的虚拟机软件运行 GNS 3,为什么我们不能直接把 GNS3 运行在 WSL 2 中呢?实际测试过发现是完全可行的。
配置 WSL 2 开启 KVM
现在已经不需要自行编译内核了,直接编辑 /mnt/c/Users/<username>/.wslconfig
1[wsl2]
2nestedVirtualization=true
打开 Powershell,升级 WSL
1wsl --update
接下来打开 WSL 后,发现 /dev/kvm
权限不正确,根据 WSL 项目中 #7149 所述,由于 WSL 没有 udev,设备文件相当于手动创建的,一个解决方法是加入 boot
设置,使 WSL 每次启动自动更改权限
编辑 /etc/wsl.conf
在末尾加入:
1[boot]
2command = /bin/bash -c 'chown root:kvm /dev/kvm && chmod 660 /dev/kvm'
重启 WSL 2。
将当前用户加入 kvm 组。
1sudo usermod -aG kvm $(id -un)
如果需要使用 Docker 的话可在 Windows 中安装 Docker Desktop,使用 WSL 后端并启用发行版集成。
确认 /dev/kvm
权限无误后,即可继续下一步。
1$ ls -la /dev/kvm
2crw-rw---- 1 root kvm 10, 232 Mar 5 23:24 /dev/kvm
安装 GNS3
安装 GNS3 可以直接到 GNS3 官网按照文档安装即可。
1sudo add-apt-repository ppa:gns3/ppa
2sudo apt update
3sudo apt install gns3-gui gns3-server
安装一些桌面应用程序
1sudo apt install nautilus firefox
可以运行一下 firefox 确认一下 wslg
是否按预期工作。
无误后,输入 gns3
即可运行。
配置 GNS3 使用 Windows Terminal
这个在 WSL 2 里运行的 GNS3 也可以使用 Windows Terminal。
打开终端程序配置,将终端程序设为自定义,后输入:
1wt.exe -w 1 --title %d telnet %h %p
Windows 的 PATH 环境变量已经和 WSL 共享,所以完全不成问题。
可以搞一个 FRR 快速测试一下。
WSL 2 万岁!
评论