在这篇博客中,我将分享大学生涯中最引以为傲的项目——宿舍网络改造计划。从最初的灵感到最终实现一个高度智能化和连接化的生活环境。这个项目始于对小米10发布会的一次偶然观看,那时我被AIoT的未来愿景深深吸引。随着我在自动化专业的学习深入,我开始着手改善我的宿舍网络,使之不仅满足基本需求,还能突破校园网的限制,提升日常生活的舒适度和便捷性。这个过程充满了挑战和学习,也让我深刻体会到技术带来的无限可能。跟随我的步伐,一探宿舍智能化改造的每一个细节。

从小米到智能化宿舍

高三时,我在观看小米10发布会后开始逐步了解并接触小米及其生态系统米家。我十分认同小米所描绘的AIoT的未来,也希望自己以后能拥有一个更智能化的住宿环境。于是我开始尝试逐步改善宿舍的网络环境,企图为自己提供一个更加舒适的环境。

到了大学因为博主本人学习的是自动化专业,和计算机属于是沾点边但没沾太多,很多关于计算机网络的知识都是在自己一点一点的摸索中进行。在即将毕业的现在看来,我的宿舍的智能化程度也确实是校内数一数二的了。所以在即将毕业之际,写下这篇帖子,做一个小小的总结。

宿舍网络设备概览

网络改造第一阶段

最开始想要优化网络还是要从游戏说起,高考后,由于我对电脑知识了解不深,便盲目冲了一台搭载RTX1650的笔记本。到了大二发现很多想玩的游戏都没有办法流畅运行了,这时候想换电脑但是又不好意思找父母开口要太多钱,于是买了Xbox Series S来临时解决游戏问题。但是回到宿舍发现Xbox的游戏加速是个令人头痛的问题,加之校园网的设备登录限制——每个账号最多允许两个设备同时在线,这对于我这种同时使用手机、平板、笔记本及游戏主机的用户来说非常不便。

因为学校同学大部分都是用手机、电脑玩游戏,最多也就是有小部分同学会使用Switch进行游戏,而这些都可以在手机端/电脑端实现简单的游戏加速。而如果想要实现Xbox/PS5的加速则比较困难,我经过查阅材料发现主要有以下几个途径:

  1. 使用电脑进行网络加速。
  2. 购买专用的游戏加速盒子。
  3. 使用路由器插件进行加速。

这些解决方案的难度依次递增。由于我的笔记本配置限制,无法启用自带热点,因此无法为Xbox实现联网,更不用说网络加速了。考虑到这一点,我尝试用UU游戏加速盒子,但由于校园网每次联网都需要登录认证,而加速盒子无法显示登录页面(这似乎与DNS重定向有关),导致我无法通过它联网。因此,使用路由器插件成为了我唯一的选择。正是这些挑战推动了我开始进行宿舍网络改造的第一步。

在网上查找了许多资料后,我知道了自己需要一个叫做软路由的硬件,来实现网络的代理以及游戏的加速。经过多番查询我决定先满足自己最基础的需求:也就是Xbox的游戏加速。我购买了R2S这个很经典的软路由,刷入了Openwrt。但是在软路由联网的时候,我遇到了不小的问题。我发现R2S在有的Openwrt版本中可以跳出来校园网认证界面但是有的则一直跳不出来导致无法联网。在经过系统选项的对比,以及身边多位同学的帮助后,我意识到问题出在DNS重定向上。校园网通过DNS重定向引导未认证的设备至登录页面,关闭Openwrt系统设置中的DNS重定向后,恢复了校园网的DNS控制,从而正确加载并显示了登录界面。

就这样,我成功在宿舍部署了软路由,并在Openwrt中安装了UU加速器和师夷长技以制夷插件,极大地改善了我的宿舍网络环境。这一改动也巧妙地突破了校园网设备登录的限制——每人最多只能同时在线两个设备,这一限制对于多设备用户来说确实很不便。现在,我的软路由只占用一个设备名额,并通过它连接了一个作为AP(同时充当四口交换机)的小米路由器。此外,我还引入了米家空调伴侣,实现了宿舍空调的定时自动化操作,进一步提升了宿舍舒适度。

由于我一直在使用米家的台灯和屏幕挂灯,到了大三,我开始考虑是否可以通过人体传感器来实现灯光的自动控制,以满足我(懒狗)想要“坐下自动开灯,离开后自动关灯”的需求。正巧那时小米商城推出了新款的人体传感器2,价格也相当亲民,我便一时上头下单购买了。

收到产品后,我意外发现这款人体传感器并不支持直接的蓝牙连接,而是需要连接到一个蓝牙mesh网关。虽然这出乎我的预料,但秉着买都买了的原则,又购入了小米多模网关2以兼容这个传感器。安装后,我发现现有的路由器AP的网口数量不足以支持新增的设备,真是一个郁闷的事情。为了彻底解决这一问题,并遵循“既然已经开始就做到最好”的原则,我购买了一个Tp-Link的8口交换机。通过这些增加和调整,完善了宿舍的智能灯光控制系统,还彻底解决了网络基础设施的限制问题。现在,每当我坐到座位,灯光会自动开启,离开时则关闭,极大地增强了宿舍的便利性和舒适度。

至此,宿舍网络改造的第一阶段已顺利完成。目前,我已经实现了以下功能:

  1. 网络代理全覆盖:成功突破了校园网设备登录数量的限制,实现了网络环境的全域代理。
  2. 游戏加速:通过安装UU游戏加速插件,有效提升了Xbox的网络游戏体验,实现了游戏过程中的流畅连接。
  3. 智能照明:桌面台灯和屏幕挂灯现在能够根据人体存在自动开启或关闭,离开后5分钟自动关闭,并且在凌晨1点后自动切换到夜间模式,对亮度和色温进行了优化。
  4. 空调自动化:宿舍的空调系统已实现自动化控制,可以在冬季起床前20分钟自动开启暖风,夏季则在返回宿舍前远程启动,吹送冷风。

尽管已取得显著进展,但仍有一些需要改进的地方:

  1. 校园网认证:目前,校园网每3至5天需要重新认证一次,这一过程仍需手动操作,如果不及时登录,将导致网络中断。
  2. 智能设备控制:从小米切换到iPhone后,宿舍的智能设备控制必须通过米家APP进行,无法使用小爱同学的语音控制功能,使得控制过程较为繁琐。

网络改造第二阶段

在浏览各种技术论坛的过程中,我逐渐发现软路由的应用远比我预想的广泛,尤其是基于X86架构的软路由,它们提供了更多的定制和扩展可能性。尽管R2S软路由在初期满足了我的基本需求,但它的性能和稳定性仍有限。特别是R2S偶尔会出现死机的问题,尝试更换不同版本的OpenWrt操作系统和TF卡都未能根本解决问题。

因此,在大四的时候,我决定启动网络改造计划的第二阶段——升级我的软路由。这次升级的目的是选择一个更稳定、更强大的硬件平台,以适应更高的性能需求和未来可能的扩展。

在软路由升级的前期,我在N100和J4125两款产品之间进行了激烈的比较。最初我本打算采用更高性能的N100,希望一次性满足所有未来可能的需求,但宿舍环境中的散热问题让我担忧。考虑到实际情况,我选择了J4125裸机,这是一个性能和散热之间较好的妥协选择。随后为这台机器配备了2×8GB的DDR4内存和一块三星120GB的MSATA存储,以期提高系统的响应速度和存储能力。

然而,当设备到手后,我发现其发热问题仍然相当严重,这迫使我不得不另外购买了散热风扇来解决过热问题(同时发现风扇声音真的很小)😇,早知如此当初就上N100了。

接下来,我进行了常规的系统安装环节。首先在网上查找相关资料和教程,然后在我的新软路由上安装了PVE系统。基于这个平台,我进一步安装了OpenWrt、Synology和Ubuntu三个操作系统,以满足不同的网络和存储需求。

为了增强数据存储和共享能力,我将之前用于Xbox Series S的2TB希捷机械硬盘挂载到了PVE系统上,主要空间分配给了Synology,实现了宿舍内文件的高效传输和共享。这一设置特别符合我们专业的需求,因为我们大多数人的电脑都配置了Windows和Ubuntu的双系统。在Synology的Docker环境中,我部署了Nastools、Transmission、Jackett、Jellyfin和ChineseSubFinder等多个容器,整合了影视内容的下载和观看功能。通过在iOS设备上使用Infuse应用,我们能够享受到便捷的影视观看体验。

在自学计算机网络课程的过程中,我对校园网的认证机制进行了深入研究。我发现校园网的登录过程仅仅是向特定的URL发送一个包含用户名和密码的明文POST请求,这种方式暴露了一定的安全风险,因为信息以未加密形式传输,容易被截取。

为了优化这一登录过程并提升使用便捷性,我设计并编写了一个自动化脚本,部署在我的OpenWrt系统上。脚本的工作原理是每隔一分钟利用ping命令检测与百度的网络连接是否正常,以此作为网络连通性的简单测试。如果ping测试失败,表明校园网认证可能已失效,脚本会自动重新发送登录的POST请求。通过这种方式,我成功实现了校园网的无感知自动登录,显著提高了宿舍网络的稳定性和访问便捷性。

在宿舍网络和智能家居系统的后续改进中,我在Ubuntu的Docker环境下尝试了更多的应用。部署了Home Assistant和HomeBridge这两个容器,以便将米家的智能设备直接集成到iOS的HomeKit中。这一集成简化了对宿舍内智能设备的控制,使得日常操作更为便捷。

此外,考虑到我有一个阿里云服务器(大学生白嫖),我还尝试搭建了内网穿透功能。这使得即便在校外,我也能远程访问和管理宿舍中的设备,无论是安全监控还是环境控制,都变得更加灵活和高效。

最终效果

至此,宿舍网络改造计划终于圆满完成。在这个过程中,我通过不断地学习、尝试和修正,逐步优化了宿舍的网络环境。虽然某些功能对于我这个大学生来说可能稍显过剩,但出于对技术的热情,我仍然投入了大量时间去探索和实践。这个项目是我大学生涯中最引以为傲的项目,极大地锻炼了我的信息搜集、学习和实际操作能力。