一直以来,我都想写篇文章记录一下我玩网络、路由器、服务器、Linux等的历程。由于这一年中我能分享的折腾经验实在太多,我会把整个过程分成几篇写。
万恶之源
事情还得从2024年7月说起。6月底我中考完,进入了初升高的衔接阶段。尽管这个暑假大部分时间被英语和经济预学班占满,我仍然对于折腾电子产品充满热情——初中因为学业被压抑了两年,也是时候释放自我了。由于我早先就听说过使用软路由来进行全家透明代理的方案,我也就最先从软路由和家庭组网优化入手。
2024年7月:软路由和初步组网
硬件踩坑
既然决定玩“软路由”,先从硬件开始。在参考了油管不良林和一些其他b站博主后,我把目标锁定在了三种机型上:友善NanoPie R2S, 友善NanoPie R5S, 幻网(康耐信)J4125工控机。前两者均为arm架构的开发板进行简易封装得到的工控机,其中R2S只有两个1g网口,R5S有三个2.5g网口。由于这次我打算进行全屋2.5g组网,原本也眼馋arm架构的优秀能耗比和低发热量,我先是选择了R5S。然而,到手后我发现这台arm机器其实坑点不少。机器原厂预装了一个类似原版的FriendlyWRT,并非我希望使用的ImmortalWRT,于是我使用了原厂系统的emmc刷写功能直接在线刷入了ImmortalWRT。遗憾的是,我开始并不知道大部分OpenWRT固件因为缺少交互式安装过程并且主要面向小闪存的硬路由设计,存在原厂系统分区过小的问题,装完插件才后发现系统分区被撑爆。当时我还是一个Linux盲,十分惧怕以往从未接触过的Linux命令行,对Linux的文件系统也是一窍不通,不敢用命令行修改挂载分区或是给分区扩容。我开始慌了,想给这台R5S刷回原厂就能识别全部emmc空间的FriendlyWRT。然而,ImmortalWRT并没有在线刷写固件的功能,于是我开始尝试使用官方工具进行线刷,却发现我被挡在了第一步——这个工具在我的旧台式机上根本没能识别到R5S。最终,在尝试按下恢复出厂按钮无果后,我对于这台机器彻底死心,走平台流程退货了。
接下来,我购买了价格只贵100元的J4125小主机。这台机器和前两台有着本质上的区别——基于成熟稳定兼容性强的x86架构,带4G的DDR4内存和64G的SATA固态,并且有4个2.5G网口(虽然是万恶的英特尔i226-V),俨然是一台成熟的工控机。到手后我就把原厂的爱快系统刷成了ImmortalWRT,并且刷机方式也是十分优雅——因为J4125是x86架构,所以我就理所当然的进WinPE刷写镜像。不过可惜的是,ImmortalWRT当时在J4125上似乎有一些驱动问题,导致我被迫尝试驱动更全也更臃肿的iStoreOS,尽管我后续证实了Immortal固件其实能够完美兼容这个平台。对于分区扩容,因为当时不会命令行,我走了个“歪门邪道”——直接在WinPE下用DiskGenius把未分配区域合并到了系统分区。当然这招似乎对于大部分只有几十到几百m的op镜像不太管用,我也不知道iStore这个巨无霸是怎么做到的。
初步部署
装好iStore后,我开始对机器进行初步部署。在iStoreOS这个高度集成的平台上,我几乎不许要安装太多基础的插件,甚至默认也有docker。最初,我只是把这台机器当作旁路由,安装在客厅的空闲网口处,接管DHCP后配合路由模式的光猫实现了简单的旁路网关代理功能,只是安装了几个科学上网插件。安装插件的过程中,我还碰到了点麻烦——由于iStoreOS的软件源并没有针对国内特殊网络环境进行优化,部分科学上网插件无法在opkg里搜到,无奈只得用github上社区贡献的.run脚本进行安装。并且,在我使用的iStoreOS版本里,防火墙还没有更新到Firewall4,系统本身也缺失一些依赖, 所以像homeproxy这样的新一代网络插件就无法正常安装使用。我尝试通过手动更新内核和强行安装依赖来解决问题,结果搞坏了环境,只得重装系统。不过,在这过程中,我发现了一个社区贡献的系统一键备份脚本,一定程度上加快了我的效率。
全屋组网改造
实现了基础的科学上网功能后,我开始萌生了改造全屋网络的想法。我家于2023年装修,2024年一月投入使用,网络布线也是常见的家庭网络布局:ISP光纤在弱电箱入户,在弱电箱分出4条支路,分别连接玄关(固定电话预留)、客厅、书房和卧室,弱电箱内预留光猫和路由器的位置。最初,我们将光猫、无线路由都放在弱电箱。由于装修后办理宽带接入时让ISP的装维负责了弱电箱接线,一开始我们也没逃过国内宽带部署的陷阱:光猫拨号后自身本就开启了路由模式,为了补足无线功能又在LAN口接入了一个无线路由器,并且也开启了NAT,这就导致了双层NAT,让本就跑不满千兆下行的宽带雪上加霜。并且,几条有线支路都是直接接在了光猫的LAN口上,与无线路由器平级,网关为光猫而非无线路由,导致家庭无线网和有线网隔离,无法内网互通。并且无论是旧光猫还是无线路由器都最多支持千兆,无法满足我对内网2.5G速率的要求。更何况因为我们家的弱电箱位于客厅最外侧边的橱柜内部,WiFi信号本来到达另一侧的卧室后就有些吃力,加上橱柜门的阻碍,信号到达卧室后几乎不可用。所以2024年7月,我在和家人商量后,准备耗资1000人民币左右(含之前购买的软路由)对家庭网络进行改造(虽然在后期深入了解实际需求和市场行情后,我发现其实能节省几百)。
家庭内网组网
经过几天的网上自学,并且了解了一些网络的基本知识后,我大致确定了将来网络部署的基本结构:光猫“改桥接”关闭NAT和DHCP功能,仅保留基础的光电转换功能。光猫下游接入OpenWRT主路由,拨号上网并进行NAT、DHCP和上网流量的代理、过滤、监控等网管功能。主路由的下游接入无线路由(改中继模式当作无线信号发射器)、PC等内网设备。然而,由于我们家的弱电箱空间太小,并且电源接口数量有限,所以只能将主路由和内网设备平级接入内网。这样一来,我至少需要一个中心交换机(和光猫一起放置在弱电箱,用于连接所有内网支路和光猫)、一个二级交换机(用于在一个支路中拓展网口数量,达到单线复用)、一个无线性能足够强的无线路由器,以及一堆网线。由于空间和美观因素,我决定将无线AP放在客厅网口处(电视下方),二级交换机以及软路由放在书房的网口处。由于书房的网口位于橱柜内,这两个有线网络设备也被隐藏了起来。然而,将重要网络设备部署在书房支路的举动也为日后的问题埋下了祸根——书房线路实际上并不稳定。当然迁移是后面的事了。
光猫的调教
买好交换机和网线并组装完毕后,接下来就是把光猫改桥接了。然而,当我真正走到这一步时,我才发现这件事比想象中要复杂和折磨很多。也许是为了节省装维后续的维护成本,近几年国内运营商逐渐收紧用户对于光猫的自主控制权,而国内三家主流运营商中在这方面政策最恶心的,就是我们家接入的中国电信。如今电信的光猫默认不告知用户具有对光猫的完全控制权的超级管理员账户的密码,也默认关闭了telnet调试接口。为了获取超级管理员密码,我只得联系了我们家宽带的装维师傅索要,结果发现超级管理员密码竟然还不是静态的。经过一番搜寻,我发现这是因为电信在光猫上配置了TR069协议来动态更改超级管理员密码,为的就是防止用户更改光猫上网的关键配置。并且,我们家的光猫不知为何,即使进入了超级管理员后台也无法取消NAT。到这里,我终于对电信的默认光猫失去了耐心,直接在某宝上花了150元买了一个支持2.5g网络并且支持改桥接的电信光猫,并且直接让卖家迁移配置调试好。终于,在使用软路由拨通PPPoE上网的那一刻,我享受到了满血的1200m宽带下行速度——尽管上行还是只有可怜的50m。
总之,经过一番折腾后,我阶段性的解决了卧室上网慢的问题并实现了全屋2.5g组网,也为后续的NAS、服务器的部署预留好了空间。
这篇文章姑且写到这里,欲知后事如何,请听下回分解。
1 条评论
sent from whbc as3 klazroom