OpenWrt路由器无线中继、桥接、信号放大、访客网络的实现方案

发布于 2020-02-22  223 次阅读


在使用无线路由器的过程中,最长见的是直接把路由器挂载光猫后面拨号,然后分出 wifi 给其他设备供其上网。但是在一些情况下往往会有特殊的需求,比如有可能路由器不采用有线接入,而使用无线接入。有可能我们用这个路由器只是放大一下其他路由器的信号,也许我们用这个路由器中继其他的无线信号而且还要还在原来的子网中。也许我们的路由器只是拿来当网卡用给不能使用 wifi 的台式机连接 wifi,也许路由器想要挂个 USB 网卡来接收 500m 外的微弱 wifi 信号。于是本人在使用多个不同的路由器做了大量的测试后将基于 OpenWrt 系统的路由器奇葩使用方法记录在这里。

方式一:有线转 NAT 热点

特性:最普通的上网模式,有线和无线不同网段,无线为有线的子网

关键字:无线网卡 Master 模式 / 接入点 AP, 无线网卡对接 LAN 区域:

在 Master 模式下,我们可以把路由器的 WAN 口由一根网线接到光猫或者交换机上,这时 WAN 口就具备了公网 IP,而 LAN 口接入的设备会通过 DHCP 分配一个内网 IP,OpenWrt 的接口配置如下:

此时的模式为接入点 AP,网络为 LAN

接口方面应该有三个接口,分别是 WAN,WAN6 和 LAN,其中 WAN 口的 IP 应该是你的公网 IP,由于我这个是一个二级路由器,一级路由器的 LAN 网段为 192.168.12.X,所以这个路由器的 WAN 口地址就变成了 192.168.12.106,而这台 OpenWrt 路由器自己的子网网段为 192.168.1.X, 所以它 LAN 口的 IP 为 192.168.1.1,连接这个 OpenWrt 路由器的设备的 IP 也为 192.168.1.X

此时客户端的 IP 为 192.168.1.X,网关为 OpenWrt 路由器,DNS 服务器一般为 OpenWrt 路由器

方式二:有线直接转热点(有线中继)

特性:无线有线同网段,路由器无 DHCP

关键字:路由器 Master 模式 / 无线 AP,无线网卡对接 WAN 区域

经常会有这样一种需求,就是把有线转成无线,就好像让一根网线插入了一个交换机,产生的 wifi 网络与原来的有线在同一子网中,也就是说假设我有一个一级路由器,网段是 192.168.12.X,这时候我想添加一个无线路由器分享 Wifi,而连接到 Wifi 上的设备网段依然是 192.168.12.X,没有产生新的子网,没有 NAT,一级路由器下面的设备可以自由的访问任何一个二级路由器下面的设备而不需要做端口转发,那么可以像下面一样配置

Master + 无线 AP + 网络 WAN

仅仅是吧模式一中的网络由 lan 改为 wan,其他的什么都没变。

这样再连入这个 wifi,发现 IP 地址已经不是方式一中的 192.168.1.X 了,而变成了上级路由器子网的 192.168.12.X 的 IP,网关为上一极路由器,DNS 服务器为一极路由分配的服务器,实现了有线的中继模式。

方式三:路由器无线接入

特性:路由器成了信号放大器,路由器上没插一根网线却能上网,常用于连接 CMCC 然后用同一个手机账号带起多个设备来蹭网

关键字:路由器客户端 Client 模式 + 无线网卡一分为二,一个对接 XXX(新接口),一个对接 LAN

有的时候,你拿不到一根网线来接入你的 OpenWrt 路由器,比如你想让你的无线路由器连接 CMCC 然后分享一个新 Wifi 给多个设备上网,或者在宾馆里想用无线路由器接入宾馆的 Wifi 然后分享另一个 Wifi 信号等等。这时候你的 OpenWrt 不是通过插一根网线接入广域网,而是通过一个已有的 wifi 接入广域网。

下面还是以一极路由和二级路由为例来介绍配置,首先一级路由分享了一个 wifi,你可以想象成 CMCC,你想把 OpenWrt 接入进去然后分享一个新的 Wifi 出来。那么这个时候要考虑到网卡的数量的问题。有些双频路由器有两块网卡,一块 2.4G 一块 2.5G, 而多数的单频路由器只有一块 2.4G 的网卡,在 OpenWrt CC 15.05 和 15.05.1 中,可以向 ddwrt 那样让一块物理的无线网卡产生多个 Wifi 网络。下面以一块网卡的 2.4G 单频超廉价路由器 HG255D 为例介绍如何实现一块物理网卡一边作为客户端从上级路由上接收信号,然后又作为 Master 向它的客户端发送 Wifi

首先通过网线连接无线路由器的 LAN 口,进入路由器后台,选择 “无线” 页面,然后对原有的无线网络点击停用,

然后点击 “搜索” 按钮,选择一个你想要中继(蹭网)的无线信号,比如 CMCC,点击“加入网络,

然后输入这个父 wifi 的无线密码(如果父 wifi 没有密码就不会有这一项),“新网络名称” 为新的接口名称,默认为 “wwan”,下图中我改成了 “cmcc”,点击 “提交 ”,

然后进入下一个页面后,频段为上级 wifi 的频段,已经自动填好,“无线安全”中的加密方式和密码为上级 wifi 的密码,已经自动填好,不用动。ESSID 为上级 WIFI 的名字,也不要改,网络为一个新的接口,一般为 “wwan”,但是由于上面我改成了 cmcc,于是这里就不是 wwan 了, 直接点击“保存 & 应用” 即可。

然后再返回查看 “接口”,就会看见刚才创建的接口,你的 OpenWrt 路由器从原来的 WAN 口有线接入方式变成了无线接入方式,然后一个 wifi 的接入模式就做好了,你现在可以通过连接在 LAN 口电脑上网了,通过 ip 的查询你可以看到你是通过一极路由的 IP 来上网的,而且你的 OpenWrt 路由器上什么都没插。如果这个时候你的电脑上不了网,那你就检查一下“接口” 中新建的接口 wwan 有没有分配到 IP 地址,如果没有就点击 “连接” 按钮,如果还不管用就重启你的路由器。如下图中的 192.168.13.84 就是上级路由器分配给 OpenWrt 二级路由器的 IP 地址(下图是 HG255D 的截图,而前面两张是 WNDR4300 的截图)


但是现在你想让你的手机通过无线也能蹭网,那么就需要让 OpenWrt 路由器的一块网卡在连接上级路由器的同时,还要再分享出一个 wifi 网络。网上的有些资料和博客说 OP 一块网卡是不能同时完成这两个任务的,但那可能他们的 OP 版本太旧了,我在 CC 15.05 和 15.05.1 中均开启成功,该博客就是我使用 HG255D 这个单网卡 2.4G 路由器中继了一个无线信号后写的。

我们只需要在上面的基础上去 “无线” 页面,点击 “添加” 按钮,然后像配置方式一中那种普通的 wifi 来配置一个中继后的 wifi,这里的频段和主 wifi 的频段相同,因为一块网卡不能工作在两个频段上,但是 wifi 的 ESSID 也就是新 wifi 的名字,wifi 密码你都可以自定义了。如下图我给新 wifi 起名叫 Bridge,无密码。wifi 网卡对接的网络为 LAN。

点击 “保存 & 应用”,一个名字叫 Bridge 的网络就建立起来了,可以用手机连接这个 Bridge 然后蹭邻居家或者 CMCC 的网络了。

下图是我实现了无线信号的中继放大后,接入了一个设备后(192.168.10.107)的截图,其中 192.168.13.1 是上级路由器的地址,“IMG VPN TEST” 是上级 wifi 的名字

提示:在网件 WNDR4300 中,手机连接 Bridge 后马上就可以上网了,但是廉价路由 HG255D 还不行,这时候需要重启 HG255D,停用所有 wifi 节点,然后启用作为 Client 的接入信号,去 “接口” 中 wwan 中点击 “连接” 按钮,等获得一级路由分配的 IP 地址后,再去 “无线” 页面启用 Bridge 这个热点,才能上网。如果还是不行,那就反复多试几遍,我也是重启了路由器好多次后才实现了 wifi 中继。

注意:如果使用一块网卡同时做接入和分享 wifi 的工作,会导致这块无线网卡的带宽减半,影响最大的上网带宽。所以推荐的方式是使用两块网卡,一块用于接入父 wifi,一块用于产生子 wifi,具体做法参考方式 5

方式四:把路由器变无线网卡

有些 Linux 台式机,比如 Ubuntu 的台式机,经常会因为驱动问题没法像 Windows 那样使用小米 Wifi,360Wifi 等等无线网卡,这个时候想让 Linux 设备通过无线网上网怎么办呢,难道要去淘宝买个无线网卡然后下载编译其驱动么,其实不用,让 OpenWrt 无线路由器来作为无线网卡,然后直接用双绞线连接到 Linux 电脑的 RJ45 口就好了,方法参考方式三

方式五:2.4G 转 5G 或 5G 转 2.5G

在方式三中已经实现了不同网段的 wifi 中继和信号放大,但是使用一块网卡在两个网段上工作会导致最大带宽减半,但是使用两块网卡就不会这样,所以不妨将 2.4G 的无线信号放大成 5G 信号,或者两块 2.4G 网卡承担这两项任务,比如我手中的网件 WNDR4300 双频路由器,WNDR4300 有一块 2.4G 和一块 5G 网卡,只需将方式三网卡的点击 “添加” 按钮之后的配置应用到新挂网卡的区域即可,下面以 WNDR4300 为例。

首先像方式三中一样停用原来的 2.4G wifi,然后到 “无线” 页面中,点击“搜索”,然后挑一个 wifi 点击“加入网络”,然后填写密码等等。这里跟方式三一模一样,不用修改什么配置,都保持默认就好,如果父 wifi 有密码别忘了填正确的密码,确认这时候模式是客户端 Client,然后点击“保存 & 应用”

与方式三中不同的就是我们不在 2.4G 网卡的项目上点击 “添加” 按钮了,而是将 5G 网卡原来的热点 “停用”,然后再 5G 网卡上点击“添加”,之后的配置和方式三配置 2.4G 的新 wifi 一样,起一个自己的 ESSID 名字,自己设定一个密码,让新 wifi 对接到“网络 - LAN”,就实现了 2.4G 网卡收,5G 网卡发的信号转换模式,带宽不会像“方式三” 中那样减半了。分享出来的网络和方式三中一样,是一个新的经过 NAT 的子网。

方式六:挂 USB 网卡做信号远距离接收

同方式五,只需将 5G 网卡的点击 “添加” 按钮之后的配置应用到新挂网卡的区域即可

方式七:单纯信号放大,不产生新子网

上面的方式三,四,五,六使用 OpenWrt 路由器在信号中继和放大的过程中都将让客户端都放到路由器的后面形成了一个子网,这样才实现了 CMCC 共享账号的功能,如父路由器的 IP 段是 192.168.12.1 而客户端的 IP 段变成了 192.168.1.X,那么有没有办法仅仅是单独的转换 Wifi 信号并且客户端还在原来的子网呢,这个操作在 OpenWrt 上是比较难实现的,但据说在 dd-wrt 上非常容易。我在网上还是查到了一些资料,但是在实验的过程中,发现 windows 客户端在信号中继后没什么大问题,但是 IOS 设备不稳定,Android 连接了中继后的信号后无法上网。这里贴出来给大家参考。
方法参考 http://blog.ltns.info/linux/wds_over_openwrt_router/ 我这里就不占篇幅了。如果你有同网段的中继需求可以照这个试试,不过我这边只有 WNDR4300 windows 接入设备是正常的,HG255D 所有设备都不行。执行此方法的风险非常高,因为即使实现了该功能也无法进入路由器后台了,路由器也就变砖了。需要使用 reset 恢复原来的配置

还有另一个看起来比较靠谱的方法,需要安装一个组件 luci-proto-relay 

方法见此:http://www.right.com.cn/FORUM/thread-190115-1-1.html 目前我也没试过,有需要的可以试试
另外再介绍一个关键字:relay bridge,可以用它去搜索相关的资料,如果有人用 OpenWrt 中继同网段成功的话请告诉我

方式八:访客网络

有些 APP 比如 “万能 wifi 钥匙”,当你家的客人用装有这个 APP 的手机连接到你家 wifi 上时,你家 wifi 的密码就会上传到一个远程数据库,下次有你完全不认识的人使用这个 APP 并从远程下载到你家的 wifi 密码,就可以蹭你家无线网了。发现网速变慢的你只能选择修改密码来解决,可没两天又被破解了,所以一个访客网络对于保证家里网速稳定还是很有必要的。

访客网络一般要满足如下条件:

1、wifi 的 SSID 和 ESSID,网卡 mac 地址要和主 wifi 不同,也就是要有不同的名字和 mac 防止被识别。

2、是从同一个路由器产生的两个不同 wifi 信号,均可以接入广域互联网,但是互相不可访问。

3、访客 wifi 和主 wifi 的 IP 网段不同,并且可以通过 IP 地址进行限速或者 QOS。

4、访客 wifi 上的设备网关要和主 wifi 的网关 IP 地址不同。

5、访客 wifi 和主 wifi 的加密方式和密码不同。

并且对于 wifi 信号的频段和强度,分为两种情况。当你的路由器只有一块无线网卡时,访客 wifi 和主 wifi 的频段和信道和信号强度是完全一样的,但是 wifi 的名字不同。如果你的路由器有多块网卡,比如一块 2.4G 一块 5GHz,那么两个 wifi 的频段,信道和信号强度可以不同。

下面简单介绍一下搭建过程,主要分为如下几个步骤:

1、在 “无线” 选项卡中使用 “添加” 按钮添加一个新 wifi,模式选用 “接入点 AP”,“ESSID” 选一个访客 wifi 的名字,“网络”要选择 “创建” 并新建一个接口,如下图我新建一个叫 “guest” 的接口。“无线安全”设置访客 wifi 的密码,理论上要和主 wifi 的不同,“高级设置”标签页保持默认即可,点击“保存 & 应用”

然后你的网卡下就有两个 wifi 了,下图我使用 HG255D,因为只有一块网卡,所以两个 wifi 的信道一样

然后我们要为新建的 wifi 设置自己的网段,自己的 DHCP,比如我们让主 wifi 的客户端都是 192.168.1.X, 而访客 wifi 的网段为 192.168.2.X,方便我们以后通过 IP 进行限速和 QOS

于是需要去 “接口” 页面,找到刚刚新建的 “GUEST” 接口,点击“修改”

一共需要修改好多个地方,如下面几张图

“基本设置” 中修改协议为 “静态地址”,并指定路由器的网段和子网掩码,并开启 DHCP

"高级设置" 一般不需要修改

“物理设置” 也不需要修改,不要勾选 “为指定接口创建桥接”

“防火墙设置” 选择分配区域为 “lan guest”

这样一个访客网络就搭建完成了,手机连接访客 wifi 分到的 ip 为 192.168.2.107,如果想要限速,只要把 192.168.2.1/24 的网速进行限制即可,而主网的设备 192.168.1.X 速度不受限,但是要注意如果你的路由器只有一块网卡而分出两个 wifi,最大传输带宽会减半,也就是 300M 的路由器这样做就变成 150M 路由器了,而双频路由器不用担心这个问题。


或许明日太阳西下倦鸟已归时