路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。它能够理解不同的协议,例如某个局域网使用的以太网协议,因特网使用的TCP/IP协议。这样,路由器可以分析各种不同类型网络传来的数据包的目的地址,把非TCP/IP网络的地址转换成TCP/IP地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置—百度百科。
简而言之,路由器是把局域网连接到因特网上的设备,我们家庭、办公室常见的有华为 AX3 Pro、TP-LINK AX6000以及 ASUS RT-AX86U 等多种品牌、形状及功能各异的设备。
上述各种品牌、形状及功能的路由器,能实现的功能都是由厂家预先定义好的、有限的,无法实现上网者的一些特殊要求:客户端管理、去广告以及出国上网等,软路有应运而生。软路由是指利用台式机或服务器配合软件形成路由解决方案,主要靠软件的设置,达成路由器的功能;而硬路由则是以特有的硬设备,包括处理器、电源供应、嵌入式软件,提供设定的路由器功能—百度百科。
软路由本质上是一个可以自己定义功能的路由器。与服务器共同形成软路由的软件称为软路由系统,主要有 ikuai、ROS 等,尤以 OpenWrt 为著名(常见的 LEDE 是 OpenWrt 的一个分支)。
一般家庭或者小型办公室,并不需要客户端管理等复杂的路由功能、很强的路由处理能力,用普通的路由器能满足大多数功能需求,但偶尔也有出国上网等特殊需要,便有了旁路由的出现。
旁路由的命名并不标准,本质上是局域网中的一个网关服务器、一个网络设备,是其他网络设备的一个邻居,并不是局域网的路由器,但这个设备的硬件、软件与软路由基本一致,设置也相仿,便被大家称呼为“旁路由”。
现代家庭或者小型办公室一般局域网网络配置:Interne 通过光纤接入千兆光猫,光猫把光信号解调成电信号,电信号通过超五类线接入路由器,路由器通过超五类线把电信号送达 NAS、台式电脑(或者笔记本)和无线 AP 等,无线 AP 与 智能手机、平板电脑(或者笔记本)和智能电视等无线设备则通过 wifi 信号进行网络连接;有线设备比较多的,则在路由器后增加交换机;网络更简单的,则直接利用光猫的路由功能,省却了单独的路由器。
这里要说明的是,有些家庭为了无线信号覆盖,在路由器后再接无线路由器作为子路由,这样的设置使得家庭局域网网段很多、很复杂,应该关闭无线路由器的路由功能、只作无线 AP 用,旁路由(网关服务器)也只对同一网段设备有用。
在这样的局域网中,路由器通过网线连接一个软路由设备、通过软路由系统 OpenWrt 把该设备设置成提供网关服务,这个软路由就成了该局域网中的旁路由。
现在能用作软路由的设备一般性能过剩,需要一机多用,除了做网关服务器、同时需要做网络存储器(NAS)、多媒体中心等,为了设置旁路由可以在设备中安装软路由虚拟机。我自己的旁路由就是在一台闲置的装有 Windows 10 系统的笔记本上,用 VMware 虚拟机软件,虚拟了一台软路由。
设有 VMware 虚拟机旁路由的局域网网络拓扑图大致应该如下。
设有旁路由的局域网一般有以下特点:
VMware 虚拟机旁路由安装需要做好以下准备工作:
eSir.vmdk
(不是必须的,任意合法的文件名都可以);工具软件这里推荐使用 StarWind Converter。接下来就可以开始 OpenWrt 虚拟机旁路由安装。
OpenWrt 旁路由系统,是以开源操作系统 GNU/Linux 为基础开发而来,本质上是一种嵌入式 Linux 操作系统,所以在虚拟机软件 VMwware Workstation 中安装 OpenWrt 虚拟机跟安装大多数 Linux 虚拟机类似。
eSir
(虚拟机也命名为 eSir),这里以D:\我的文档\Virtual Machines\eSir
为例;eSir.vmdk
到文件夹 eSir
;
特别需要说明,用作旁路由的虚拟机网络连接必须是桥接有线网卡(lan),如果宿主机同时有无线网卡(wlan)、宿主机想连接 wifi 上网同时兼有旁路由功能,那是无法做到的,除非在 VMware Workstation 中安装另一台能上网的虚拟机、这样的虚拟机才能使用旁路由功能。
这需要在虚拟机软件 VMware Workstation 的“编辑”菜单栏启动“虚拟网络编辑器”,在该编辑器中把虚拟机网络连接设置为桥接到有线网卡。
跟设置其他 Linux 虚拟机 IP 地址基本一致。
vim /etc/config/network
以打开网络配置文件并编辑,用 Linux 常用文本编辑器 Vim 修改 lan 的 ipaddr(IP地址)为192.168.3.188
;这里要说明的是,OpenWrt 虚拟机旁路由 IP 地址设置跟局域网中其他网络设备的静态 IP 地址设置一样,要根据路由器网关(gateway)设定、且与其他网络设备不能冲突,最后一个数字选择 0~255 之间任一数字、较大数字不容易引起冲突;至于 Vim 编辑器的使用,尚不会的请先移步网络教程,有些 OpenWrt 版本仅安装了编辑器 Vi,好在 Vi 与 Vim 用法基本一致。reboot
命令以重启虚拟机。至此,VMware 虚拟机旁路由已经安装完毕并启动,在局域网中其他设备(包括宿主机)上的浏览器中已经能打开 Openwrt 管理页面。
这样的旁路由尚不能提供网关服务,需要在 OpenWrt 管理页面进一步设定。
192.168.3.188
),浏览器即显示 Openwrt 管理页面登录界面,如下图。root
直接登录,初始密码为空,进入Openwrt 管理页面。root 用户初始密码为空,显然不合适,需要设定。
旁路由要提供网关服务,首先要设定网络接口的相关参数,这里的虚拟机旁路由未设其他接口,只有 lan。
192.168.3.1
的示例:IP 地址先前已经设定为192.168.3.188
,如果更改,保存后管理页面需要重新登录;IPv4网关为192.168.3.1
;网络广播为192.168.3.255
;自定义 DNS 服务器设置成跟网关一样就好,或者设置成通用 DNS 服务器114.114.114.114
、8.8.8.8
等。至此,旁路由网络接口 lan 的相关参数已经设定。
旁路由的网络防火墙也需要做一些设定,才能提供网关服务。
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
(此版本 OpenWrt 系统自定义规则中已经有被注释掉的相应内容,只要删除句首的注释符#
即可);至此,网络防火墙已经设定。实际上,旁路由的 OpenWrt 系统已经能提供网关服务,可以试着用一下了。
VMware 虚拟机旁路由安装完毕、已经可以使用了。但正如前面所述,“网络中由旁路由提供网关服务的设备,需要设置固定 IP 地址、网关,无法利用路由器的 DHCP 服务进行 IP 地址动态分配等”,要使用旁路由,网络设备还要做一些设置。下面就来试用一下旁路由,并探讨一下怎么实现我们的初衷:出国上网、去广告等课题。
电脑要用旁路由上网,需要重新设置电脑网络连接的网关,这个网关就是前面设定的旁路由的 IP 地址,这里是192.168.3.188
;如果网络的 DNS 设置和路由器网关一致,也需要更改为与旁路由的网关一致,所以 DNS 设置成通用 DNS 114.114.114.114
、8.8.8.8
等更合适、不再需要来回更改。
这样,电脑就可以通过旁路由上网了,当然有些网页仍然是无法打开的,因为还没安装需要的一些插件、或者插件还没有设置,尚不具备一些特殊功能。
手机用旁路由上网跟电脑用旁路由上网设置基本一致,需要更改手机网络(当然是 wifi)连接的网关。这里仅说明一下如何进入安卓手机网关更改界面,苹果或者其他系统应该类似。
这样,手机也可以通过旁路由上网了。
用旁路由上网,看上去跟用路由器上网无异,用路由器能上的网站用旁路由也能上、用路由器不能上的还是不能上。其实,这跟买了一台功能强大的电脑是一样的,想做文档当然可以,想编程也来吧;只是,电脑的无穷功能需要有相应的软件来支撑。同样,我们是为了出国上网、去广告等功能配置旁路由的,相应的功能实现除了软路由系统 OpenWrt,也需要很多软件、插件来支撑;但到目前为止,这些软件、插件还没有安装或者还没有设置,这些功能还没能实现。
例如,为了出国上网,我们需要安装 Passwall 或者其他插件,并对插件进行很繁杂的设置。
我们预想的一些特殊功能的实现,就是我们探索旁路由的主要后续课题。让我们在后续课题见吧。
Enjoy Yourself !
OpenWrt 21.02 版,用作 VMware 虚拟机旁路由系统,不用再增加防火墙自定义规则iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
(4.30, 2022)