上一篇文章:个人数字基建(1):在 VMware 安装 OpenWrt 主路由 里讲述了怎么在 VMware 中安装 OpenWrt 并且作为主路由使用。不过,出于一个或者多个以下原因,旁路由就可能是一个比较好的选择:

  • 宿主机本身只有一个网卡。
  • 宿主机网卡的各种乱七八糟的设置太麻烦了。

这个时候就需要另一种方案:保留原本的主路由器,外接一个旁路由。

先决条件

  • 有一台电脑(下文中称为台式机),承担作为虚拟化宿主机的任务。
  • 网络通过实体路由器接入。
  • 台式机上安装了 VMware。
  • 台式机能上网就行。网线/WIFI 连接到实体路由器上。

本文环境

  • 宿主机:Windows 10 专业版 22H2,版本号 19045.3208
  • VMware WorkStation 17 Pro

网络拓扑设计

逻辑上,应该如下图:

软路由和局域网内其他的设备一样接在主路由器下面。实际上如下图:

  • 软路由的一个 LAN 口网卡(VMNet0 网卡)桥接到台式的实体有线网卡上。这样,因为台式连着主路由器,虚拟机软路由也连着主路由器。
  • 软路由不需要有其他虚拟网卡。也就是说,相当于实体旁路由一个网口就行。

配置虚拟网络

参见 配置虚拟网络 一节,只需要配置 VMNet 0,也就是桥接到有网的实体网卡上。其他的虚拟网卡不需要配置。

下载 OpenWrt 镜像

参见 下载 OpenWrt 镜像 一节。

安装 OpenWrt 虚拟机

参见 安装 OpenWrt 虚拟机 一节。不过,自定义硬件时只需要添加一张网卡,就是之前设置的 VMNet 0。

配置 OpenWrt

第一次开机

vmware 开机刚刚建好的软路由虚拟机。在类似下面的界面静止不动大约 20-30 秒(或者显示 crng init done)之后,鼠标点进去并回车。

出来 openwrt 的欢迎界面和 bash:

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

备注

当主路由的局域网 IP 是 192.168.1.1 时,将旁路由的 IP 设为 192.168.1.x,最后一位的 x 是还没被分配的数字,范围 2-254(1 一般都是被当作主路由,255 是广播地址不可分配)。

比如,如果主路由的局域网 IP 是 192.168.114.1 ,但是 192.168.114.2 已被占用,那么可以设置为 192.168.114.3

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

访问 WebUI

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

安装汉化

参见 安装汉化 一节。

路由器配置

注意:以下架构不是唯一的,网络上还有很多种不同的设置方式。

参考:https://iroot.cc/86.html

旁路由配置

你的界面可能与我的不同,因为我的打了 argon主题包

首先进入刚刚安装好的软路由 WebUI,然后在防火墙添加一行:

iptables -t nat -I POSTROUTING -j MASQUERADE

重要

这个规则会让所有的上下行流量都经过旁路由。严格来说,这不是特别好的方法,所有下行流量经过旁路由是不必要的,只会增加旁路由负担(我只是图省事罢了)。更多内容请参见:

透明代理的旁路由实现、原理和常见的误区

然后编辑 LAN 口:

首先把 IPv4 网关指向主路由并且保存:

再次点击 LAN 口编辑(下面都是这样),设置 DNS 服务器(DNS 服务器来源于主路由器拨号时运营商或者校园网下发的 DNS 地址,如右图;或者找其他的公共 DNS)。记得点击输入框的加号才能添加 DNS 服务器。

关闭旁路由上的 DHCP。

最后保存并应用修改。

主路由设置

核心要点是把主路由的 DHCP 下发的网关指向旁路由。

主路由就因个人而异了。比如我的是水星路由如图。

上述设置下的流程

让我们来复习/学习一下计算机网络的知识。

假设有一台电脑连接到网络,此时它还没有任何局域网 IP。

首先,它在网络里广播“谁是 DHCP 服务器?”,然后开了 DHCP 服务的主路由回应了“是我”。双方取得联系后,主路由分配 IP 并告知电脑:真正的网关/路由器是旁路由。

之后,电脑要向外网发送数据,首先发到它自认为的网关,也就是旁路由。旁路由收到数据后,因为在旁路由视角里网关是主路由,所以把数据又转发给了主路由,主路由再转发到外网。

设备设置

此时,旁路由设置完成。不过,其他在此之前就已经连上网络的设备,默认网关仍指向主路由,需要插拔网线、开关 WIFI 乃至重启(智能设备)才能生效。

备注

此方案下,旁路由和主路由任意一个出现故障,都会导致不能上网。