什么是 OpenWRT ?

或许很多人会对「OpenWRT」感到陌生,不清楚这是一个什么「东西」。官方网站是这么描述的 :

OpenWrt 项目是一个针对嵌入式设备的Linux操作系统。OpenWrt 不是一个单一且不可更改的固件,而是提供了具有软件包管理功能的完全可写的文件系统。这使您可以不使用供应商提供的应用程序选择和配置,而是通过使用软件包来定制设备以适应任何应用程序。对于开发人员来说,OpenWrt 是一个无需围绕它构建完整固件就能开发应用程序的框架; 对于普通用户来说,这意味着拥有了完全定制的能力,能以意想不到的方式使用该设备。

简单来说,OpenWRT 是一款家用路由器的操作系统,路由器安装了它才能正常的工作。就像国内手机厂商基于开源的 Android 系统开发出各种 Rom一样。路由器厂商也可以基于 OpenWRT 这个平台,进行二次开发,增加更多丰富的功能和有厂商特色的路由器系统。独立开发者们同样也可以基于 OpenWRT 开发各种各样的插件,使搭载了 OpenWRT 的路由器具备更丰富的功能。那么有哪些有趣且强大的插件呢?

上网时间控制

很多时候,我们都需要合理的对上网时间进行管控。譬如针对家中的自控力较差的孩子,我们需要想要合理的控制他的上网时间,避免孩子沉迷网络;亦或是我们不想让家中的互联网设备上传任何信息,但又需要他连接到家庭网络中,也可以通过这款插件彻底断掉他的互联网连接;一些自由职业者,为了在固定的时间让自己专注投入,也可以在某些时间段彻底断开相关设备的网络,彻底隔绝网路干扰。

下载地址:上网时间控制

应用过滤(OpenAppFilter)

如果觉得彻底断开相关设备的网络连接太过粗暴,会一定程度影响正常合理的互联网访问。那么应用过滤这款插件就可以满足我们更精细的需求。通过它,我们可以根据自身需求配置规则,只对某些特殊的网站或者应用进行过滤处理。

譬如以下场景:

  • 合理安排娱乐时间,且不阻断其他必须的互联网网站的访问
  • 限制网络环境下对一些视频、招聘、购物、游戏、常用网站的访问
  • 记录终端的上网记录,实时了解各类 App 使用情况

对于想要培养自律习惯的人来说,不失为一种方式

下载地址:应用过滤(OpenAppFilter)

动态 DNS

「动态 DNS」 也就是久负盛名的 DDNS,他最主要的作用是捕获用户网络设备每次变化的 IP 地址,然后将其与相应的域名进行绑定,这样就可以保证不论 IP 怎么变化,我们都可以通过域名对网络设备进行访问和交互。我们可以根据喜好的服务商如:DNSpod、阿里 DDNS 、CloudFlare DDS等。根据不同的服务商来安装插件。

使用动态 DNS 服务,能够让我们轻松的访问家庭中的网络设备,以及所有和网络设备连接的终端。在此基础上我们能做很多有趣的事情,比如进行内网穿透,搭建家庭 VPN 让他人访问你的资料文件等。

下载地址:DNSpod 动态 DNS  阿里云 动态 DNS CloudFlare 动态 DNS

SmartDNS 服务器

少数派的文章里曾经科普过 DNS 的作用 「想要上网体验有保障,如何设置一个更安全的 DNS?」 优秀的 DNS 不仅能够加快网页开启的速度,还能够提高浏览网页的安全性。通过 SmartDNS 服务器插件,我们可以把 DNS 服务器部署到本地,接管所有连接到路由器的终端的 DNS 查询请求,获取不同 DNS 服务器的查询结果,并将访问速度最快的地址返回给客户端,从而提高网络访问速度。 同时它也支持绑定域名 IP 地址,提高匹配性,并达到过滤广告的效果。

详细的描述和配置可以查看 官方文档,作者最近完全开源了代码,让大家可自由的添砖加瓦。

下载地址:SmartDNS 服务器

网络唤醒

网络唤醒的全称为 Wake-on-LAN ,我们可以利用它向支持唤醒的网卡,发送特定格式的数据帧,达到启动计算机目的。因为是通过 Lan 口发送的数据,所以设备需要使用网线和路由器相连。通俗来说的话,就是进行远程开机。

在插件界面配置好需要使用的网络接口以及要唤醒的设备主句的 MAC 地址之后,就可以通过路由器来远程唤醒设备。试想一下我们如果通过 DDNS 绑定了路由器的 IP 地址,就可以在远程唤醒我们的家用电脑,然后通过类似 TeamView 或其他远程连接方式连接到家里的设备,有了他就可以不用让家中电脑常年开机,不仅节省了电费,还真正做到了对家庭设备的「云控制」。

下载地址:网络唤醒

Shairplay

Shairplay 是一个 Github上的开源项目(地址),在它的之前有一个类似的项目 ShairPort,但已经无人维护更新了,作为它的接替者 Shairplay 同样在 Linux 系统上实现了苹果的 Airplay Server 协议,使得我们可以把 iOS 设备的音频输出到任意一台运行着 Shairplay 的设备上。

从实际使用性上来说,Shairplay 并不太适合安装在普通的路由器上,它更适合安装在树莓派或其他开发板上。我们在树莓派上装好 Shairplay 之后,音箱与树莓派连接,就可以通过手机的 AirPlay 将播放的音乐投射到对应的音箱上了。通过这种方法让那些不支持 AirPlay 的音箱,也能乖乖播放音乐。

下载地址:Shairplay-sync-for-openwrt

Turbo ACC 网络加速

Turbo ACC 网络加速模块本身是一个插件合集,利用的都是开源且有切实效果的开源项目,使用它能够对我们的网络进行优化和加速。比如其中的 BBR 加速,就是由 Google 在 2016 年底开源的一个针对 TCP 协议的拥塞控制算法,能够更有效的使用当下网络环境,提升 TCP 的性能。除了 BBR之外, DNS 加速能通过多线程查询、和缓存 DNS 记录,有效的提升网络请求速度,并一定程度上防止 ISP 服务商的 DNS 广告和域名劫持。我们可以自己硬件和实际的使用情况来选择开启相关的加速方法。

下载地址:Turbo ACC 网络加速

ser2net

如果说上述的那些插件,更贴近一个普通用户的日常生活使用,那么 ser2net 这个插件可以说的上是非常 Hardcore 了。

ser2net 是有一位国内的开发者 liuhuiviking 开发的工具,他的功能是能够将网口与串口的数据进行互相传输与转换。我们在 OpenWRT 上安装了他的话,就可以使用笔记本电脑以无线的方式,通过路由器来控制和路由器连接的各种串口硬件(比如串口摄像头、单片机等等)。可能大多数人还是很一头雾水,这有什么作用呢?

最大的作用就是用他来制作和控制简单的机器人,比如 制作会呼吸的WIFI机器人 ,再比如哈尔滨工程大学的同学设计的「移动机器人无线局域网控制系统」也用到了他。

下载地址:ser2net

尾巴

OpenWRT 作为一款开源的路由器系统,从诞生到现今已经18个年头,它的出现极大的改善了网络性能,加快了互联网的速度。除了 OpenWRT,同样也活跃着其他开源系统比如 DD-WERT、Tomato等。就像互联网的发展并非一帆风顺的一样,OpenWRT 也几经波折,中间也出现过核心开发者出走,另立山头推出 LEDE。但最终通过众多开发者的不懈努力, OpenWRT 有了现在丰富完善的生态。在本文中,笔者没有讨论细节的教程,只罗列了各种有趣实用的插件,希望读者看了之后能激起好奇心,去探索改造自己的网络环境,发现更大的世界。