本文最后更新于 2025-04-22,文章内容距今已超过七天,可能已经过时。

OpenWrt 项目是一个针对嵌入式设备的 Linux 操作系统。OpenWrt 不是一个单一且不可更改的固件,而是提供了具有软件包管理功能的完全可写的文件系统。这使您可以从供应商提供的应用范围和配置中解脱出来,并且让您通过使用适配任何应用的软件包来定制设备。对于开发人员来说,OpenWrt 是一个无需围绕它构建完整固件就能开发应用程序的框架; 对于普通用户来说,这意味着拥有了完全定制的能力,能以意想不到的方式使用该设备。

以上来自OpenWrt WIKI

前言

最近我的虚拟机集群越来越多,如果只使用虚拟网络控制器进行控制的话,那么管理集群将会变得非常复杂和繁琐,于是我打算搭建一台虚拟机用做是虚拟机集群的路由,通过集群使用OpenWrt作为网关上网,整个虚拟机平台只有OpenWrt可以上网,其他虚拟机无法直接和外界通信。

安装OpenWrt

首先下载OpenWrt镜像,我使用的是Bleach OpenWrt

下载链接:

https://openwrt.mpdn.fun/?dir=lede/x86_64/

我们下载的img镜像,需要通过StarWind V2V Converter转换为Vmware的虚拟磁盘。

下载链接:

https://www.starwindsoftware.com/starwind-v2v-converter

我们首先选择img镜像所在位置,选择Local file:

随后选择转换后文件所在位置:

由于我需要安装到Vmware Workstation上,所以我需要转换为VMDK文件:

根据需求选择磁盘格式,我选择的是按需增长的磁盘:

磁盘设置好后,确定信息就可以转换了,转换好的VMDK可以作为虚拟机磁盘使用。

接下来创建虚拟机,一切都和正常创建虚拟机一致,我选择的是2核2G的配置,唯一的不同是我没有设置网络,在创建好后我再单独设置。

接下来选择磁盘时,选择现有的虚拟磁盘,选择刚才转换得到的VMDK磁盘,创建好后,我创建了两个网络适配器,NAT负责上网,仅主机模式负责和其他集群进行通信,作为网关。

接下来开机,进入系统,如果没有出现可输入的命令行,点一下回车就好。

设置OpenWrt

接下来设置网络

vi /etc/config/network

lan口地址输入成自己仅主机的地址,可以去虚拟网络编辑器查看对应网段:

设置成网段中一个ip地址即可,随后重启网络,访问对应地址:

/etc/init.d/network restart

默认密码时password

进入系统,随后重设密码:

配置网络

然后选择网络菜单:

点击添加新接口,接下来添加的wan口是用于NAT上网的,我们需要选择一个固定的IP地址,作为其他虚拟机的网关:

设置wan口:

设置好NAT接口后,我们就可以通过OpenWrt上网了,同时也可以使用OpenWrt所自带的各项流量控制服务去控制上网。可以通过网络测试测试其和外网的连通性:

可以发现有丢包,可能是我本地网络并不好,导致上网有波动。但证明当前可以访问外网了

测试上网

目前我的OpenWrt设置完毕,可以通过仅主机链接设置的IP访问后台,其他机器则将网关设置为我们刚才设置的IP地址即可上网。

接下来我们创建一台测试的Windows7虚拟机,设置一个网络适配器,仅主机模式:

成功访问公网的博客,以此证明OpenWrt设置成功。接下来的机器只需要按此设置网关即可以通过OpenWrt上网!

结语

这篇文章写得有点匆促,未来可能还会有补充~