写在开始
使用Hyper-V的时候他会自动分配一个Default Switch这么一个网卡用于NAT, 然而这个网卡的ip似乎每次重启都会自动更换, 所以这个就挺令人烦恼了, 毕竟如果Hyper-V虚拟机里面是一堆linux的话那每次都是自动更换ip的, 连接起来还是很麻烦的。 所以我打算在内网给解决掉这个问题, 把IP地址至少可以接近静态的, 之前那个连IP段都要变确实有点受不了。
技术选型
其实这个可以直接在虚拟机里跑一个OpenWRT之类的东西的, 但是鉴于我有一个这样子的虚拟机, 而且还被我莫名其妙搞坏了, 这次我就手动搭建一个路由器系统了。
至于选哪个系统, Linux用的比FreeBSD之类的熟悉一点, Windows太占资源。 然后基于节约资源的角度考虑, 我用了 Alpine Linux。 毕竟这个系统的体积小。 而且这个系统我在玩Docker镜像的时候经常用, 所以也不算陌生。
其他的东西也就是用vagrant来操作hyper-v了, 这样子会简单点。
那开始吧
下载 Alpine Linux 的 Box
先去找找有没有现成的Vagrant的Box, 然后我发现了
那首先随便找个目录, 然后输入vagrant init generic/alpine310
sudo vagrant up --provider=hyperv
因为不是用管理员打开的这个终端, 然后如果操作Hyper-V的虚拟机的话需要管理员权限, 所以需要提权。 这里推荐一下这个人的
顺便一提, vagrant是用curl来下载box的。
Hyper-V部分的设置
在vagrant下载box的这一会去设置一下Hyper-V那边的东西。
打开Hyper-V管理器, 在右侧找到虚拟交换机管理器
点开之后创建一个内部的交换机
名称随意, 注意是要设置成内部网络, 就像这样
然后点确定就好。
Vagrant Box 下载完成后
vagrant up执行过程中会打印出类似以下的输出
这个时候选择 Default Switch就好然后接下来会出来一堆输出, 其实也不用在意是啥。
然后sudo vagrant halt关闭这个虚拟机, 接下来往里面添加一个给内网用户使用的网卡。
首先要在Hyper-V控制台里面找到这个虚拟机, 然后