Matrix 首页推荐

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


前言

相信各位身处异乡的同学一定会被父母抱怨过家里的网络或者电脑问题,也时不时打开诸如  FaceTime 或者微信视频之类的软件帮助父母远程解决问题。现在国内网络基建发展迅速,几乎做到了 FTTH(光纤入户),但是很多老房子的配套网络硬件都很古老,新房子开发商也会留下很多暗坑。而各大运营商的宽带服务也只解决到光猫端。所以老家的网络一直是我们这些在外漂泊折腾人的心头大痛。

当然每家每户的情况都很不一样,本文我就以我老家三次网络结构调整的一些经验和问题为主,详细讲讲怎么让家中的老人用上舒心的网络。

正文

我家是一个二〇一〇年代中后期的房子,在交房之初国内还处于百兆宽带普及的阶段,因此家庭的基础网络布线还是不错的——做到了 Cat.5e 线布到每个房间,这为之后铺设良好网络建立的良好的条件。但是开发商仍然留了不少暗坑给我,下面让我们先整理一下最开始的网络拓扑结构。

拓扑梳理

最开始我们先看看我家的的结构图以及弱电箱

家中的户型,以及网口分布图

可以看的出几个主要活动的区域的网口覆盖还是相当到位的,但是弱电箱在走廊中间的储物柜中且只有一点点大,塞满了设备的弱电箱简直惨不忍睹:

开发商留下的弱电箱

让我们梳理一下弱电箱中的各个部分和模块的功能:

  • GPON 光猫:负责光纤入户以及播号,同时需要供给电话信号。
  • 百兆交换机模块两个:负责全屋网络交换,共计两个 12 根网线。
  • 电话线交换模块:负责电话信号拨入以及分发。
  • 有线电视分配器:负责分配有线电视信号。
  • 电源:负责供给弱电箱中的电能。
  • 数字电视线:负责电视盒子(类似 IPTV)的数字接入,连接在交换机上。

体积不大的弱电箱里塞下了满满当当的线缆与模块,从目前的配置上来看,实现百兆网络明显是没有问题的,但是百兆交换机也限制了网络的最高速度,如果宽带提速,很有可能落实不到家中的任何一个终端上。而仅靠在铁质弱电箱中光猫的 Wi-Fi 信号,覆盖全屋也非常勉强。并且局域网和数字电视网线连接在同一个没有管理功能的交换机上,也非常容易造成广播风暴,网络卡顿等问题。

在最开始为了解决 Wi-Fi 覆盖的问题,选用了小米的 AX3600 与 AX1800 组成了一个无线 Mesh,分别放置在客厅以及书房中,组成了如下拓扑结构:

第一阶段

可以看的出来,最开始的拓扑结构问题非常多。两个主力无线路由器由于使用了 DHCP 的方式上网,且小米路由器并没有转换成有线中继模式,家中的无线网络和有线网络不在同一个 NAT 中。简单的来说并不在一个网段中,且不能正常的进行局域网通讯。这样做的结果会让有线设备无法和无线终端进行广播通讯,比如说连接着网线的电脑并不能让连接着无线信号的打印机打印文档。并且双层 NAT 也会让网络性能也会受到一定的影响。

有关于网络以及 NAT 的详细介绍可以阅读这些文章:

加上这个时期家中添置了 Apple TV 以及 NAS,宽带也因为种种原因升级到了 300Mbps,老旧的百兆交换机显然并不适合现在的家庭网络。因此这个脱离时代的产物最终被决定拆除,但是考虑到弱电箱的大小和市面上其他 16 口交换机的体积,最后我选择了傻瓜式的 8 口千兆交换机:

傻瓜式千兆交换机

配合体积小巧的 R2S 软路由放在弱电箱中播号上网:

NanoPi R2S

而两台无线路由器也被我改成 AP 模式(有线中继模式)重新组成了有线 Mesh 网络。这个阶段的网络拓扑如下:

到这个阶段家庭网络改造完成之后,基本上可以算是让父母舒适的网络了,Apple TV 可以正常观看 NAS 中的影片,打印机等在局域网中的设备也可以直接进行访问打印。

这个阶段主要优化的项目是:

  • 光猫改为桥接模式,让整个家庭局域网中仅保留一层 NAT,提升网络性能的同时加强连通性。
  • 两台胖 AP 组成了有线 Mesh,提高了子节点的网络速度。

第二阶段

但是第一阶段的改造其实也有很多问题:

  • 由于华数入户线是百兆网线,很容易把傻瓜交换机的其他千兆网口也协商成百兆速度。
  • ARM 架构的 R2S 不够稳定,在使用仅仅两个月之后就当机无法重启工作。
  • 多个广播域重合,容易造成广播风暴。

对于第二点,好在当时在家中留了一个灾备路由器,连接上 WAN 与 LAN 之后不影响父母正常上网。也正好坏掉的时间正值清明假期前期,在假期回家探望父母的同时进行了第二阶段的网络改造,主要目的:

  • 更换主路由到更加稳定的 X86-64 架构
  • 隔离华数数字网线信号,防止交换机的端口被协商成百兆网口,或者产生广播风暴。

但是 X86-64 的路由器和其电源的体积都比 R2S 大了一个数量级,小小的弱电箱中无法同时塞下这么多设备。即使放下,在弱电箱中塞入一个功耗可能接近 20W 的小主机后散热也是一个问题。不过既然要同时隔离华数的数字信号,就必须用到网管型交换机和 VLAN (虚拟局域网)这项技术,而 VLAN 也可以帮助我们进行单线复用,让路由器不在弱电箱中播号。通过 VLAN 划分光猫入户的 WAN 以及华数电视的 IPTV,还有局域网设备的 LAN 三个网段。就可以在避免广播风暴的情况下,让路由器在弱电箱之外的地方播号上网。同时也不干扰电视盒子的正常观看。

详细的教程可以看这一篇文章:

这次改造结束之后的拓扑图如下:

路由器我选择放在了客厅电视柜中,这样仅用两个网管型交换机就完成了网络的升级。

这个阶段我做的改进主要有:

  • 腾出了弱电箱的空间,让三层设备更好被维护。
  • 隔离了 IPTV WAN LAN 三个网络,避免网络风暴以及网口协商速度问题。
  • 更换了兼容性更好的 X86 架构的路由器设备,保证网络稳定性。

第三阶段

第二阶段的改造从网络结构上看已经没有太大的问题了,但是在经历过两次小区断电,X86 路由器无法正常重启,在里面的播号上网服务也无法正常运行的重大网络危机事件之后。我意识到使用自己 DIY 的路由器用作家庭主路由器并不算一个明智的选择。家庭内也仅有两台 Apple TV 需要使用 DIY 路由器提供网络服务。原本的拓扑结构出了问题管理和排查问题需要耗费的时间过多等等问题。我决定把家中的交换和路由设备迁移到 Ubiquiti Inc. 旗下的 Unifi 系统中进行统一管理。

在之前的网络改造中,迫于弱电箱的大小我选用了 8 口的交换机,而决定迁移到 Unifi 全集桶之后正好其系列产品中有一款 16 口 PoE 交换机—— USW-Lite-16-PoE,这款交换机支持 8 口 PoE/PoE+ 的供电输出,全部端口都可以进行 VLAN 管理:

USW-Lite-16-PoE

先简单介绍一下 Ubiquiti Inc. 旗下的 Unifi 设备,这是一个为了中小型企业以及家庭设计的企业级网络设备系列,由于其用户界面简洁明朗,产品 ID 设计优秀这些优点深深的抓住了我的心。而不同于普通家用的无线路由器,使用 Unifi 设备搭建网络一般需要这些:

  • 控制器:接管和配置所有 Unifi 设备的统一管理中心,可以是 Ubiquiti 销售的专用控制器(硬 AC),也可以安装在 PC / Mac / Linux 甚至是 Docker 中(软 AC)。
  • 安全网关:也就是通俗意义上的路由器,用于家庭网络的播号上网,以及防火墙等功能。
  • 交换机:Unifi 系列的交换机都可以在同一的控制器 UI 中配置,这一点相比于传统网管型交换机需要一台一台逐一配置体验是完全碾压的。
  • 无线 AP:用于发射 Wi-Fi 信号,但是不具备家用无线路由器一样播号上网功能。也可以组成无线 Mesh。

为了将来可能会有的通过 PoE 供电的 AP 升级,我决定把弱电箱整理一遍以放下这台 USW-Lite-16-PoE 交换机。顺便,为了更好的维护和管理,我做了这些:

整理电话线:由于家中仅有一台固定电话,因此我拆除了电话线交换模块,并且整理了弱电箱中的电话线,把需要的一根直连到光猫上。

整理有线电视线:由于家中仅有两台电视需要有线电视服务,我拆除了有线电视模块替换成了体积小巧的 1 分 2 分配器。

 

整理网线:原本网线在弱电箱中预留的长度很长,极大的占用了弱电箱空间。我剪去了多余的网线,并且使用配线架与接口模块的方式整理了网线,并且配以标签以便排查问题。需要连接到交换机时,仅需从配线架上连接一根跳线即可。

最终整理把三组主要的线材整理完毕之后,我的弱电箱也刚好够放下 USW-Lite-16-PoE 这款交换机,来看一下我的整理成果:

整理完成的弱电箱

有了 PoE 供电,原本放在客厅的网管交换机也可以换成支持 PoE 供电的 USW-Flex-Mini 五口交换机,减少一根电源线对理线来说意义重大,小巧的体积也可以隐藏在各种柜子的背面:

USW-Flex-Mini

而路由器我则采用了和第二阶段一样的方式 —— 放在客厅播号上网,只不过从原本的 X86 路由器换成了 Unifi Security Gateway ,也就是 Unifi 系列的安全网关( USG ):

Unifi Security Gateway

USG 作为家中的路由器,负责拨号上网,DHCP 服务器,以及防火墙功能。而其他的上网功能,我仍然放在原本的 X86 路由器上,只不过作为旁路网关放到了 NAS 所在的杂物间。关于旁路网关大家可以阅读这一篇文章:

全部迁移到 Unifi 之后,最大的优势就可以在统一的 Web 界面同时管理所有的 Unifi 设备,包括其 IP 地址,端口上的 VLAN 设置,以及主路由的网段划分:

Unifi Network 的网页端 UI

并且还有配套的手机 app 和 WebRTC 远程控制技术,让我即使身处广域网也可以检查家里设备的状态并进行相应的调整。

Unifi Network 的 iOS 端 APP

而原本的 X86 主路由则被我连接到了拓扑的下端,作为旁路网关为几个特定的设备提供网关功能,同时在 Unifi 控制器中专门为需要进行通过旁路网关的设备划分出了一条 VLAN 和子网:192.168.2.0/24。DHCP 设置则让在这个子网的所有设备的网关,指向 X86 路由器。这样仅需在手机上控制需要更换网段的设备所连接的交换机端口配置,就可以轻松改变终端所在的网段,网关以及 DNS 等配置:

旁路网关结构

需要注意的是,因为 USG 以一个企业级三层网络设备,因此不同的网段只要最终网关都指向 USG,那不同网段中的设备也可以互相访问,只是无法进行广播通讯。但是 USG 也具有 mDNS 反射功能,可以把家中的 HomeKit 智能家居发出的信息,反射到所有网段中,实现跨网段的广播通讯。

那现在来看看我家的网络拓扑结构

第三阶段网络结构

总结一下这次改造优化的事情:

  • 网络设备换成了更加稳定且容易管理的 Unifi 系列。
  • 整理了弱电箱,让维护升级更加容易。
  • 使用专业的路由设备播号,保证主网络的绝对稳定性。
  • 增加旁路网关和专用网段,以应对不同的上网需求吗,如果旁路网关出现问题不会影响到主网设备,通过远程配置也可以让旁路网段的设备重新加入主网。

远程维护

硬件部分搭建完成,但是免不了偶尔需要重新连接回家里进行网络维修。这时候我一般会用以下这些方法:

远程桌面

远程桌面应该是各位游子最熟悉的方式了,如果你和家中的人都使用 Mac 系统,那么系统自带的「屏幕共享」最为方便,只需要输入对方的 Apple ID 就可以直接远程控制:

而如果不是 Mac 系统,我则会用 VNC Server/Viewer(需要在被远程的电脑上安装服务器)

VNC Viewer

只需要在 Server 和 Viewer 上登陆同一个账号,就可以进行远程配置。

公网 IP 端口转发

如果在你的老家,运营商恰好给你家分配了公网 IP ,那么用端口转发进行远程维护是一种方便且快捷的选择。

端口转发(Port forwarding)就是将一台 主机 的网络 端口 转发到另外一台主机并由另一台主机提供转发的 网络服务

简单的来说就是,稍加设定你的路由器就可以转发一个局域网设备的一个端口号到广域网上。这样通过你家的公网 IP 就可以在任何地方配合端口号进行访问。访问的地址可以通过公网 IP 直接进行访问,也可以通过 DDNS 服务托管到域名上,使用域名进行访问。

在使用端口转发之前,首先要确定你是否有公网 IP。确定的方法也很简单,只需要进入到你的路由器后台,查看 WAN 口所获的的 IP 地址,再在百度中搜索 IP ,如果查询到的 IP 和你家 WAN 口获的的 IP 地址一致,那么恭喜你,你拥有「公网 IP」。

下面以 Unifi 控制台为例,一般来说「端口转发」的选项都在路由器的「防火墙」子选项中:

在名称,端口,需要转发的 IP 以及端口中填入对应的数字和 IP 之后,就完成了端口转发。你的局域网网设备端口就会暴露在公网下,可以在任何地方进行访问。

但是需要注意的是,在国内 80 端口和 443 端口是会被运营商屏蔽的,因此需要选择其他的端口号。而直接把 HTTP 页面暴露在公网上其实也不安全,建议选择各类路由器的 HTTPS 端口进行公网转发,且用户名和密码都使用较为复杂的排列,并进行定时更换,以保证网络安全性。有些路由器也有限制访问该端口 IP 的功能,设定你所在地的 IP 地址也会让端口转发更加安全。

ZeroTier 内网穿透

如果你家没有公网 IP 或者你想选用一种更加安全的链接方式,那么 ZeroTier 也许是个不错的选择。

ZeroTier 是一种开源加密的 VPN 服务,但是这个 VPN 并不是大家广义认知的 VPN ,只是 ZeroTier 通过加密链路,在你安装了它的设备之间虚拟出一个局域网络供你访问,你今需要在地址栏输入 ZeroTier 为你的设备生成的局域网 IP 地址,就可以连接到你的内网设备。

我们以 Mac 与 QNAP 为例:

首先在 ZeroTier 的网站上注册一个账号,并且创建一个网络

这时候页面下方会生成一个网络,你只需要记住生成网络的 NETWORK ID 即可。

然后在你的终端设备上安装 ZeroTier 服务,你可以在这里找到各个平台的安装文件。

在 Mac 上,下载并安装 ZeroTier 后

在下方输入你的 NETWORK ID 并且点击 Join Network。

在 QNAP 上稍微复杂一些,下载并且安装 QNAP 的安装包之后,使用 Admin 账号 SSH 进 QNAP 的终端,输入 zerotier-cli -h 检查 ZeroTier 是否安装成功。如果出现如下界面之后就可以用 zerotier-cli join <NETWORK ID>加入 ZeroTier 局域网。

晚上上面的步骤之后,再进入 ZeroTier 官网,选择你想要设备地址所在的网段:

然后激活所有加入网络的设备:

等到 Managed 上显示出有效 IP 之后,就可以直接在电脑端输入 IP 地址进行管理访问了。

和端口转发不同的是,ZeroTier 这种形式的虚拟局域网,可以直接访问加入网络设备的所有端口,而不需要为想要访问的端口一个一个设定端口转发,并且由于使用了加密连接,在一定程度上也比端口转发更加安全。

Site to Site VPN

相比上面介绍的两种方式,Site to Site VPN 设置起来更加简单,但是需要的条件也更高——在 Unifi 网络中,需要连接的两个网络都拥有「公网 IP 」才可以搭建 Site to Site VPN。这里以 USG 的 Site to Site VPN 设置为例:

仅需要填写远端的公网 IP 地址,和本地的公网 IP 地址,在设置好远端子网的网段就可以完成 Site to Site VPN 的设置。

完成设置之后,你就可以在你所在的位置访问连接 VPN 另一端的所有子网的设备,而无需像 ZeroTier 一样每个设备需要单独设置且需要运行程序才能访问。你的局域网和老家的局域网通过 Site to Site VPN 可以虚拟出一个大型局域网以便管理和访问。


不过需要注意的是,不管用哪种方法远程回家,前提条件是家里的网关设备没有出问题,这也是为什么我在第三阶段改造的时候选用了 Ubiquiti 出品的专用安全网关(USG)以保证主网络的绝对稳定性。只有这样,才可以在需要维护的时候不麻烦父母一个一个位置排查,从外地远程就能帮助他们解决问题。

以上也仅是我使用过的几个远程管理方式,如果你知道其它优秀的穿透或打洞方案也可以用于远程维护。

结语

折腾这么多,无非是希望远在异地的父母能用上舒适的网络。总结一下给老家改造的网络需要遵循下面几点:

  • 选用品牌商的路由器作为主网关。
  • 维护过程需要简洁简单。
  • 留好灾备设备。

在经过一年的磕磕碰碰的学习之后,自己也明白了其实老人们最大的需求是稳定,在稳定的基础上去创造附加功能才是最优的解法。

在此也祝愿各位新年快乐,新的一年网络通顺永不掉线!

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀