这篇文章想了很久要起个啥名字。本来想归于大内网战略的,但是想了想,既然开始玩软路由了,以后肯定会上服务器是吧,四舍五入也算是个数据中心了是吧,于是干脆开个新系列
本文仅作为一分钱都不想出的抠比们体验软路由和锻炼技术用,实际部署请使用专门的硬件。如:个人数字基建(3):物理机安装 PVE,并新建 OpenWrt 虚拟机
先决条件
- 有一台电脑(下文中称为台式机),承担作为虚拟化宿主机的任务。
- 网络通过实体路由器接入。下文实践中软路由将作为这个实体路由器的下级路由。也可以直接使用软路由进行拨号,但是本次只是一个验证,所以不弄那么复杂。
- 台式机上安装了 VMware。
- 台式机上至少有两张网卡(可以是一张有线一张无线)。如果只有一张网卡,就没办法接笔记本验证实体设备能否通过软路由上网了。
- 一台笔记本通过网线和台式机的有线网卡连接。
- 台式机的无线网卡连接到实体路由器。如果你的电脑有多个有线网卡也是一样的。
本文环境
- 宿主机:Windows 10 专业版 22H2,版本号 19045.3208
- VMware WorkStation 17 Pro
网络拓扑设计
如果把虚拟的设备当成实体设备看待,那么网络的拓扑图可以看作如下(箭头指代上传时数据流动的方向):

而真实的拓扑如下:

- 软路由的 WAN 口网卡(VMNet2 网卡)桥接到台式的实体无线网卡上,使得软路由可以上网。虽然“寄宿”在实体网卡上,但是在上级路由器看来这是两张不同的网卡。
- 软路由的一个 LAN 口网卡(VMNet0 网卡)桥接到台式的实体有线网卡上。这样,笔记本网线插到台式网卡上,相当于插到软路由的一个 LAN 口上。
- 台式机的虚拟 VMNet3 网卡和 Window 虚拟机的 VMNet3 网卡连接到软路由的另一个 LAN 口网卡(VMNet3 网卡)上。
配置虚拟网络
打开 VMware 的虚拟网络编辑器:


一般默认的 VMNet0 就已经是桥接(不是就改成桥接,或者添加一个新的网络),改为桥接到物理有线网卡。

接下来添加一个虚拟网2(已经存在就自行使用其他数字)

把这个桥接到物理无线网卡上。

再添加个虚拟网3,仅主机模式,关闭 DHCP 服务器(将由软路由启用 DHCP 服务),子网 IP 中间的 114
按需修改。

点击确定,虚拟网络就编辑好了。
下载 OpenWrt 镜像
下载镜像文件
到网址:https://downloads.openwrt.org/releases/里搜索你想要版本的 64 位包。
比如:我依次点击 18.06.2 → targets → x86 → 64:(我出于个人需求下的是比较老的 18 版本,无需求完全可以下载更新的)
无脑下第一个就行了。下完解压。

转换镜像
下载的 img 镜像文件 vmware 不认,需要转为虚拟硬盘。
首先打开网址 V2V Converter / P2V Converter - Converting VM Formats ,拉到最下面,随便填个人信息(邮箱要真的),然后点击 download。

等几分钟,会有一封邮件发到你的邮箱,有个链接下载转换器。下载安装即可。
警告
接下来转换镜像时,源目录和目标目录路径不要包含中文,否则会报错。
安装完之后打开。首先选择本地文件,打开之前解压出来的 .img
文件。

然后选择保存到本地 VMDK 文件。

选择第一个,找个位置保存生成的 VMDK 文件。点击转换即可。

安装 OpenWrt 虚拟机
回到 VMware 控制面板,新建虚拟机。

按照下面的步骤设置:

- 自定义
- 下一步
- 稍后安装
- 是“其他 Linux”,选 Ubuntu 等其他发行版会导致无法识别虚拟网卡,md 浪费了我一个下午才发现

- 起个名字
- 随便给核心
- 1G 内存够了
- 不使用网络连接,之后再配置

- 下一步
- 下一步
- 使用现有磁盘
- 选择之前从
.img
镜像转换得到的.vmdk
文件。点击下一步,保持现有格式
接下来是重头戏:设置虚拟网络。点击自定义硬件。

首先删除声卡和打印机,没用。

然后添加一个网络适配器(也就是网卡)。

这个适配器选择虚拟的 VMNet3 虚拟局域网网卡(作为 LAN 口)。

依葫芦画瓢,依次添加一个 VMNet2 网卡(作为 WAN 口)和 VMNet0 网卡(作为另一个 LAN 口)。以上三张网卡顺序不要弄错。


然后关闭,完成新建虚拟机的过程。
重要
OpenWrt 会将分配的第一个和第三个之后的网卡(eth0,eth2 .....)作为和下属设备链接的 LAN 口,第二个网卡(eth1)作为和上级网络链接 WAN 口。因此,上文新建网卡的顺序不能错。
配置 OpenWrt
第一次开机
vmware 开机刚刚建好的软路由虚拟机。在类似下面的界面静止不动大约 20-30 秒(或者显示 crng init done
)之后,鼠标点进去并回车。

出来 openwrt 的欢迎界面和 bash:

输入 vim /etc/config/network
并回车

按 i 键进入 vim 输入模式,按方向键移动光标,修改 ip 地址为 192.168.114.1
,然后按 esc 键,输入 :wq
回车来保存并退出。

然后输入并回车 service network restart
重启网络服务:

设置宿主机的网络适配器
在宿主机的控制面板 → 网络与 Internet → 查看网络状态和任务 → 更改适配器设置 中,修改 VMNet3 网卡的设置:


填入 IP 地址、子网掩码和网关(软路由的 IP),DNS 服务器输入软路由的 IP(192.168.114.1),确定。

访问 WebUI
现在可以在浏览器中输入 192.168.114.1
访问管理页面。初始没有密码。

需要到防火墙中允许 WAN 口的包转发,不然上不了网。

接下来,需要把多张 LAN 网卡的子网段统一。首先点击编辑 LAN 接口。

在“接口”中选上其他的 LAN 口网卡,保存即可。

网络测试
Windows 虚拟机上网测试
在 VMWare 里新建一个 Windows 虚拟机,网卡使用 VMNet3。

自动分配了内网 IP,并且上网毫无压力。

实体笔记本测试
首先,需要将台式机的实体有线网卡的 IPv4 功能剔掉,不然就相当于将网线另一头的笔记本当成路由器,而不是使用软路由,导致大家都上不了网。

然后网线连接笔记本和台式机的网口,关掉笔记本的 WIFI,笔记本依然能上网,并且 IP 是 192.168.114.x
。
宿主机使用软路由上网
目前,宿主机还是使用实体无线网卡走上级路由器上网,而不是走软路由。如果要走软路由,需要也把无线网卡的 IPv4 给搞掉。

之后台式机依然能上网。
警告
不要禁用无线网卡或者关闭无线网卡,因为软路由的 WAN 网卡桥接在实体无线网卡上。
警告
虽然宿主机使用虚拟网卡走软路由也能上网,但是 Windows 似乎不认(如下图)。在这种状态下,虽然有网,但是 UWP 和 onedrive 会仍以为是断网状态而无法使用。

安装汉化
来自:最新的openwrt 19.07官方版怎么设置成中文中?-OPENWRT专版-恩山无线论坛
输入 luci-i18n-base-zh-cn
并点击 OK 即可下载。之后刷新网页就变成中文了。

Comments NOTHING