真正危险的不是计算机开始像人那样去思考,而是人类开始像计算机一样思考。

西德尼·哈里斯(Sydney Harris),记者

感谢亲爱的祖国保护了我们三年,感谢亲爱的祖国在合适的时机放开疫情管控,让绝大多数人有了抗体,健健康康、安安心心地过了个年。

上回我们聊了拦截广告的插件,让整个世界更清净一些。这回我们来聊聊关于孩子的。各位可能要奇怪了,这不是聊软路由吗,怎么聊孩子去了?

你还真别感到奇怪,现在已经是21世纪了,互联网已经非常普及了,孩子触网是必然的,而且有些孩子用起手机电脑来比很多成人都溜。然而孩子嘛,分辨是非对错和好坏的能力可能不足,触网后容易被蜘蛛当美餐了;再加上被网粘住后不容易自拔,轻则影响学习,严重的还可能毁掉一生。所以对孩子触网这事儿还得加点保护手段。

懂行的朋友应该已经知道了,本文的主题是流控和管控。这是 iKuai 这种软路由的强项,在安装了 iKuai 的软路由中,可以轻松地进行配置。由于笔者主要聊的是 OpenWRT,所以请忽略 iKuai 吧,OpenWRT 也能做到,也许路道也是有些崎岖,但只要能到达目的地,都是英雄!

本文将通过两把刷子来保护孩子安全触网:

  1. 内容管控;
  2. 时间管控;
  3. 速度管控。

咦,说好的两把刷子,怎么有三个呢?其实第3把刷子并不是保护孩子的,而是辅助保障整个家庭网络顺畅的,说白了可以限制他人蹭网而影响网速的,当然了,第2把刷子就可以做到了,只是聊到管控,肯定要提到速度管控。

内容管控

这里需要用到一个插(软)件(件)——OpenAppFilter。

  • 项目地址:https://github.com/destan19/OpenAppFilter
  • 目前最新版本:v5.0.2

如图,可以根据自己的 OpenWRT 系统版本及硬件架构选择对应的 .zip 文件下载。压缩包里有5个文件:

可以用 SSH 连接到软路由,用 wget 命令下载且解压,再一个个安装,例如我的是22.03.2版本,硬件是x86-64位,命令如下:

# 先切换到 tmp 临时文件夹
cd /tmp
wget -O openwrt-22.03.2_x86-64_oaf-5.0.2.zip https://github.com/destan19/OpenAppFilter/releases/download/v5.0.2/openwrt-22.03.2_x86-64_oaf-5.0.2.zip
# 解压 .zip 文件
unzip openwrt-22.03.2_x86-64_oaf-5.0.2.zip
# 开始安装软件
opkg update
opkg install kmod-oaf_5.10.146-1_x86_64.ipk
opkg install appfilter_5.0.2-1_x86_64.ipk
# luci-compat 在官方的软件库中已有,所以直接安装官方的
opkg install luci-compat
opkg luci-app-oaf_5.0.2_all.ipk
opkg luci-i18n-oaf-zh-cn_git-22.333.43289-fd21eb3_all.ipk

然后“服务”菜单中会多个“应用过滤”:

软件设置其实很简单,选中你要禁止连接的网站服务即可。“开启应用过滤”这个勾必打,工作模式根据你软路由的位置,拨号上网,给全家提供网络接入的,就是“网关模式”(推荐);如果你弄了个旁路由玩玩,而且这个插件是装在这个旁路由的,就选择“旁路模式”(部分应用不受控,不推荐)。

基本设置——选择具体要屏蔽的 APP
生效用户——选择要管控的设备 MAC 地址

生效用户这儿,只要是在线的设备,都会显示机器名,这个可以看自己手机、平板等设备的设备名或电脑的计算机名即可,当然,如果结合 MAC 地址来选就更准确了。

生效时间就不用多说了,自己去设。虽然这是设置时间,但是在内容的基础上的,所以还没到第2项哦。

这个应用特征库就用页面中给出的地址下载最新的库到电脑,然后在下面点“选择文件”,选择下载好的特征库,再点“上传”即可。

目前笔者对内容管控主要是依赖 OpenAppFilter 来实现,如果你有更好的内容管控插件,请回复告知笔者哦!🤝🤝🤝

时间管控

还记得这篇文件吗:安装和使用软路由【进阶篇】——软路由可以干什么?(三)这篇文章介绍了防火墙,它是家庭网络的总管家,也是家庭网络的警察,所有的数据进出都要通过它的检查,严禁携带易燃易爆物品上车!

这第2把刷子是对进阶的第三篇的补充,当时有提到“通信规则”,但并未掰开了揉碎了事无巨细地深入了解。这里呢,通过时间管控这个需求,来稍微窥探一下“通信规则”的门径。为什么这么说呢,因为防火墙的功能实在是太强大了,如果你能轻松且灵活地配置防火墙,那还在这儿看我写这些有的没的干嘛?不敢说 B A T 随便进,起码一般的互联网企业肯定是能收留你的(只是个人猜想,学好防火墙后真找不到工作可别怪笔者,不承担任何法律责任🤫;当然,如果你因为学好防火墙找到了个好工作,请笔者喝杯咖啡☕就行😁)。

添加通信规则的常规设置

为什么不使用 IP 地址,因为大多数家庭的内网 IP 都是 DHCP 方式获取的,可能会变,所以填 IP 可能今天有效,明天就不该禁的被禁的,该禁的却能上网。

通信规则的高级设置

“高级设置”这页就是重点了,填你要管控的 MAC 地址。如上图,在“源 MAC 地址”这里选择你要管控的设备的 MAC 地址。

注意:

  1. 细心的小伙伴一定注意到了这里有个“限制匹配”,是限制单位时间匹配该规则的数据包数量,对于普通人来说不好辨别和计算,所以要实现速度管控用这个功能不太合适。
  2. 现在的设备 MAC 地址其实也是可以变化的,如何在设备上使用原本固定的 MAC 地址这个问题到最后再聊。
通信规则的时间限制

再来看“时间限制”,终于到本项的重点了——时间!其实很简单,设个开始和结(停)束(止)时间,就可以“保存”了,其它内容如日期、星期之类的就根据自己家小孩的情况去调整好了。

速度管控

这一项需要另一个插件——QoS(Quality of Service,服务质量),就是控制网络数据包优先级的,同时也有流量控制的功能。我们要用到的就是流量控制。

由于笔者的防火墙是 firewall4,基于 nftables 的防火墙,所以使用到的 QoS 软件是 QoS Nftables 版,OpenWRT 官方自带的软件包 搜“nft-qos”就能找到并安装,直接安装“luci-i18n-nft-qos-zh-cn”这个软件包,系统就会把“nft-qos”所需要的所有软件和依赖都安装好了,这里就对安装展开说明了。至于防火墙 firewall 基于 iptables 的 QoS,官方自带的软件包有个“qos-scripts”,但好像不带限速功能,有需要的可以自行研究。

QoS Nftables 的速度限制页面,请无视中部的流量优先级设置

在 OpenWRT 的菜单中选择“服务”→“QoS Nftables 版”就进入了 QoS 界面了,与上一项时间管控一样,建议使用 MAC 地址,如上图的顺序设置你要管控的设备。如果谁来蹭网,这里给他设个1 KByte 的上下行,让他随便蹭。这把刷子一般在企业的作用会多一些,可以管控不同设备的网速,从而使整个网络更加顺畅。


至此,家里的孩子该在何时触网,触网的时可以触到哪些内容,大体上是在咱们家长的管控中了,这样在上班或加班时,也不用怕孩子无节制、无边界地上网了。


前面提到,现在的设备都可以使用随机的 MAC 地址,而且很多设备都是默认使用随机 MAC 地址,有些机器甚至可以天天自动更换 MAC 地址,这对我们的网络管理是非常不利的。其实,我们只要设备连篇家庭网络,然后在设备的 WLAN 连接中进入连入的家庭网络 SSID,找到“隐私”,选择“使用设备 MAC”,即可使用设备本来的 MAC 地址。这是某安卓机的设置,水果和笔记本大同小异,反正是在连上的 WiFi 中设置。

又有小伙伴要问了,我这么一改,去连别人的 WiFi 会不会不安全啊?大可不必担心,因为这个设置改动只对当前连上的 WiFi 有效。这回放心了吧,在家就大胆地用设备原有的 MAC 地址,也方便管理。

还有小伙伴又要提意见了,改这个玩意儿这么方便,那孩子只要把这个改成随机的,那这篇文章里说的这些不都成无用功了?唉,看来笔者这篇文章是白写了。这么问的伙伴请回去看第2把刷子,既然能拒绝 MAC,那咱们能不能全禁了,然后添加 MAC 白名单?要学会举一反三!

白名单可以添加两份,一份是正常使用的设备,不限制时间;另一份是孩子使用的设备,“时间限制”中设置允许使用的时间。由于笔者家孩子都不知道 MAC 这回事,所以不需要这么极端的手段,这里只是给出一种思路,具体的设置还需要各位伙伴自行去摸索调试。


本号兔年的首篇文章就这么不经意间产生了,感谢耐心阅读,如有谬误或不足之处,望回复批评指正,如有更好的管理手段和管理思路,也欢迎在评论区留言来交流。

之后的文章可能会讲 Docker 应用,敬请期待哦!

安装和使用软路由【进阶篇】——软路由可以干什么?(六)
Tagged on:         

发表回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据