认真上网|搭建家庭网络服务

前言

上一篇我们完成了硬件的搭建以及最基本的网络配置,组成了全屋的mesh网络。但当然,如果仅仅如此,那其实一点都不高级~更没必要用到软路由这样的硬件。

本篇文章,我就来介绍一些围绕全屋mesh网络展开的,能在家庭里配置的一些十分好用的“服务”。既然是介绍,那自然没有那么深入与详细,本文意不在教你手把手配置具体的服务,篇幅也不允许。本文更多是各项服务的功能介绍,同时也希望这些好用的功能,能在你心里埋下让你心痒痒的芽。

 

开始本文之前,最好先确认家里的联网设备都处于同一个网段内,以便对它们进行管理以及各个设备之间可以相互访问。确认的方法很简单,一般来说设备的局域网IP地址一般类似于192.168.2.121,“默认情况”下只要前三位是一样的,它们就是在同一个网段。如果这样设备间还是不能相互访问,最好确认一下网关的子网掩码是不是255.255.255.0。

这里额外补充一个知识点,困扰我许久、最终在暑假的网络改造计划中领悟的——子网掩码的作用。简单的来说,子网掩码正如其名,是用于划分IP地址从多少到多少之间是属于一个网段的,我们最常使用的子网掩码就是「255.255.255.0」,在这个子网掩码下,192.168.1.2和192.168.1.1就是属于同一网段,也就是前文所提及的“默认情况”。子网掩码的具体换算方式需要将其转换成二进制,再进行演算,如果你和我一样不想学的这么复杂,可以Google关键词「子网掩码+查询」,有许多的在线工具可以帮你进行换算。

 

好了,扯远了。接下来,我以家里现有的设备作为分隔文章的结构,介绍我在这些设备上运行的不同服务,这些服务你可以跑在不同的设备上,有的可以跑在不同的系统上。无论如何,它们的使用都很简单,并且原理是相同的,聪明如你,自然能领悟~

 

 

R2S/Openwrt系统

R2S上运行了openwrt系统,作为mesh网络的网关,它在整个网络起到的作用可以被描述成“总控”与“心脏”。

 

薅运营商的羊毛:多线多拨

Openwrt系统发展至今,许多的开发者为它做出了自己的贡献,如今它能做的有很多,其中在一开始接触了解它,令我感到比较惊奇的一点,是它竟然可以免费“提升网速”,例如你本来是100兆的电信宽带,在他提速之后你的网速在一些情景下可以达到300兆,甚至500、600兆也不是不可能。这一个过程中,除了买R2S的费用,你是不用额外付所谓的“加速包”订阅费的。

但它是如何做到的?这里面其实也有一些限制,首先并不是所有宽带都可以这么做的,其次,不是所有场景都可以“提速”的。

要说限制,我们先来说,“多线多拨”是什么?

一般现在家庭都是通过光猫拨号(PPPoE)上网的,但以前的时候并不如此,都是要通过设备终端来进行拨号上网的,例如windows xp上的宽带连接。有些家庭的上网终端并不只一台,那么显然运营商不会傻到这台设备拨号后,不让另一台设备拨号上网,此时,两台设备都通过拨号上网,这其实就满足了“单线多拨”。

可以说是历史原因,所以尽管现在大家都已经用光猫进行拨号上网了,但“多拨”在许多地区依旧是被运营商允许的。openwrt里有一项插件就提供了一个功能叫做——“多线多拨”。你可以通过运行openwrt的单台设备来拨号多次,夸张的是,如果你本来就被分配到了公网IP,在多次拨号之后,你也会被分到多个公网IP(虽然用处不大而且浪费资源就是了)。

借此,通过负载均衡,在一些多并发的场景下,比如BT下载,家里多个人在同时看流媒体,多文件下载等等(貌似百度网盘的单文件下载也是支持多并发的),都可以达到突破当时你与运营商签订的“协议速度”。但是如果是一些单线程的网络任务,依旧会被限制在原来的速度。

那么,现实总不是那么美好,除了多并发这一限制条件之外。有时运营商会锁端口速度又或者根本不支持多拨,无论是哪种情况,如此一来都不能利用“多拨”来提升多并发下的网络速度的。一般来说,小城市的限制会越少、大城市例如北京杭州上海等等限制会更多,移动的限制会更多,电信的限制会更少。当然具体的,还得实际测试过才能知道。

看到这里,有人会感到奇怪,讲到现在全程都在讲“单线多拨”,关“多线多拨”什么事?它们两者之间并没有本质上的区别,“单线多拨”是因为我们只有一条宽带,而“多线多拨”是因为你可能家里拥有不止一条宽带,当然在拥有多条宽带并使用“多线多拨”的情况下,就没“运营商限制”什么事了,你可以很轻松的提升“多并发”下的家庭网络速度。

不过,如果你真有多条宽带,那么R2S这款设备其实并不适合你,因为他只有一个wan口,如果你有这方面的需求其实可以考虑一些多网口的工控机,性能不需要太好,有多个网口就可以。

 

IMG 9513

原本100M的速度在电信给免费提速至300M之后,再叠加“单线多拨”,测速可以达到600M,对于台州这种小城市来说,这个网络速度已经算是很不错了,而且还是在Wi-Fi条件下测的速。

 

 

抉择:DDNS还是内网穿透?

前一面文章说到,软路由给了你在外访问家庭设备的能力,我们就是通过DDNS或内网穿透来实现的。

DDNS和内网穿透属于两种不同的技术,但其目的都是一样的。简单的,我们先来说在它们之间应当如何进行选择。

首先我们需要知道,当地的运营商是否给宽带分配了公网IP。一般来说,移动的公网IP地址最少,分配起来也要更困难,联通其次,最好的是电信。比如我家的宽带是电信,默认情况下就是给了公网IP的。

一般来说,有公网IP地址的朋友们建议使用DDNS,而没有公网IP的朋友们应该、也只能选择内网穿透。

 

 

“最优解”:DDNS

什么是DDNS?讲这个技术之前,我们需要了解一些网络世界的基础知识。

在网络世界中,你在“网上冲浪”可以被划分为上传和下载,但无论何种,你都需要一个地址,就像是在现实世界内写信一样,都需要寄件地点、发出地点。没有地点,网络上的数据包不知道该走向何处,自然你也就“上不了网”。前文说到的,“公网IP”这一概念,其实就对应写信的“地点”。

有了“公网IP”,就在茫茫数据的海洋中有了可循的、唯一的位置。对应的,“非公网IP”,则是没法在网络世界中找到这“唯一”的、“可循”的位置。这是因为,在网络设计之初并未想到网络世界能到达当今的规模,公网IP地址的上限太低、数量太少。为了解决这个问题,各大运营商将部分用户划进了它们设计的“IP地址”内,而这些用户上网时,发出或接受的数据包都会经过运营商的转换。

一般来说,这样的转换对于绝大多数的用户而言都是无感的。当如果我们有一些特殊的需求(端对端),例如在外访问到家庭的资料或服务,没有“公网IP”就成了拦路虎,你想,你家没有门牌号,怎么能让快递员找到它呢?我们把这个问题先放一边,因为我们运气好,有分到公网IP。

好,我们现在有公网IP,虽然我们理论上现在已经可以通过这个IP地址,在外访问家庭内的服务了,但还有个问题。运营商虽然给你分配了IP地址,但是这个IP地址是“动态”的,也就是说这个IP地址会不定期改变,如果在外面的时候访问家庭服务发现IP地址变了,原先的地址不能用,新的地址不知道,这就麻烦了。

DDNS就是解决这个问题的,通过OpenWrt的一个服务将家庭的IP地址绑定到一个甚至多个域名上(你最常见到的baidu.com就是一个域名),每次家庭的IP地址变动都会在服务定期的检查中发现并修改绑定的IP地址,这样一来,以后你直接访问这个域名就行,而不是难以记忆的IP地址。

 

 

天无绝人之路:内网穿透

没有公网IP地址的朋友也不是死路一条,虽然我们不能在外面直接访问到家中的设备。但是,如果你先在家里让一台设备连接上一台有“公网IP地址”的服务器(前面说到 大部分情况下 没有公网IP都是无感的 这里自然是没问题的),在外的时候访问这台服务器,通过这台服务器来间接访问到家中设备,也是可行的。让服务器像跳板一样,这就是内网穿透的“真面目”。

但是,既然多了一步,在稳定性和带宽上都会不如DDNS,特别考虑到另外再租一台服务器更是额外的开销。

 

 

一个萝卜一个坑:端口转发

前面我们通过DDNS或内网穿透已经令公网访问家庭服务成了可能,现在我们需要把特定的服务透过防火墙、暴露给公网,让我们在外可以访问到特定的服务。

我们还是需要了解一个基本的网络知识,端口。

前面说到,家庭地址有了,邮员能找到我们家了,但是我们还没开门,光开门不行,还要知道开的是前门还是后门,是侧门还是车库门。

不同的门,我们通常有不同的作用,大门一般都是会客的时候用,车库门是用来停车的,后面偶尔会用……

计算机上同时运行的服务有许多,把其中的哪些服务“打开门”,暴露给“外人”访问,就是端口转发。这个“门”就叫端口。

特定的端口有着特定的功能,例如80端口就是用作web,445端口就是微软SMB文件共享的默认端口,也是“永恒之蓝”漏洞使用的端口。而这两个端口,一般在宽带运营商分配的公网IP,一个因为相关的法律法规、一个因为安全问题都被运营商屏蔽了,所以无论你怎么设置,你都不可能通过这两个端口访问到相应的服务。

解决的方法很简单,换个端口映射就行了,比如把常见的80端口映射到6022这样不常见的端口上,就可以了。相应的服务地址类似于「xxxxxxx.com:6022」。

 

 

 

甜点级功能:广告屏蔽&魔法上网&定时重启……

Openwrt中还有许多非常实用的功能,它们使用起来没有那么的难,基本属于识字就会用。这里简单提一些比较有代表性的、十分实用的功能。

广告屏蔽。在弹窗满天飞、广告告不停的21世纪。有广告屏蔽的日子,你可能根本不会想起还有一个东西叫广告屏蔽,但没有它的日子,你一定过的不好。通过简单的设置,你可以轻松的屏蔽一些常见的广告域名地址。如此一来,你虽然可能还是会见到一些广告,但是也不至于广告满天飞了。

魔法上网。不好详细介绍的功能,简单而言,让你全家的设备上网方式都能“魔幻”起来的“特殊服务”,懂的人自然心领神会。

定时重启。你可以设置一些计划,让Openwrt在凌晨自动重启以保证网络的稳定性。

更多的甜品级功能,还等各位看官慢慢挖掘。

 

 

NAS

毫不夸张的说,Openwrt是搭建家庭网络服务的心脏,NAS就是家庭网络的灵魂与大脑所在。一台NAS上能配备的功能远远不止简单的局域网文件分享那么简单。搭配Openwrt,下面这些好用的服务不仅在家能用,在外也能用。

 

既是超大的储存也是不限速的网盘:SMB/FTP/SFPT/AFP/WebDAV

先说作为NAS,它最基本的功能,就是可以通过SMB/FTP/SFTP/AFP/WebDAV这些协议进行文件的共享。

你不需要为家庭内的每台设备都配备好几块硬盘作为它们的储存,通过NAS的文件共享,你可以将所有大文件都储存在NAS上,通过文件共享协议,让所有的PC、移动设备、电视盒子等等,只要连上家里的网络都能访问到它们。

出门你需要访问它们的时候,也可以通过文件共享协议直接访问到它们,而不是为了找他们特地跑回家一趟。

在协议的选择上,如果是在家使用局域网时,个人建议使用SMB,在外则建议使用SFTP/WebD AV,当然最安全的选择还是VPN。

 

 

种子下载神器:qbittorrent/Transmission

不同品牌的NAS,除了储存与分享功能是基础功能,下载也是基础的不要再基础的功能了。在不同平台不同型号的NAS上,qbittorrent/Transmission几乎都有对应的版本。这两块软件堪称是BT/PT的下载神器。

 

 

家庭影院:Plex

如果你的NAS里存了许多的蓝光电影,用Plex管理它们是再好不过了。Plex可以自动检索这些电影的海报、相关信息,并以非常优美的方式展示给你。通过一些支持的app或web页面,你可以在全设备全平台上轻松的访问到它们。

 

 

未曾想到的专业:Docker/PostgreSQL

达芬奇作为影视后期制作里几乎逃不开的一环,NAS能以这种方式和它产生关联,是我未曾想到的。

众所周知,达芬奇的项目是以数据库的方式进行储存和管理的,而达芬奇所使用的数据库则正是PostgreSQL。而Qnap的NAS有一项服务叫Container Station,它本质就是Docker。

Docker,作为一个轻量化、虚拟化的技术,想在它上面运行PostgreSQL也是十分简单的事情。Qnap官方甚至有出一篇文章,专门写如何在自家Container Station上配置达芬奇数据库,让局域网内的所有人都能共同协作。

但是这篇文章有些年头,文章内使用的达芬奇版本是16,而最新的已经更新到了17,要知道达芬奇这货随着版本的更新,它使用的数据库版本也是会随之更新的。

当然,我原本是并不介意按照QNAP官方的教程,配置老版本的达芬奇的。但是我使用的NAS处理器是ARM架构的,而ARM架构的Docker并没有达芬奇16支持的PostgreSQL,于是我便试着升级到了DaVinci Resolve 17,但是QNAP官方并没有出更新的教程,而在这一摸索过程中,我发现其实是有一些坑的。

这里受限于篇幅,就放到未来单独开一篇文章来讲解如何进行配置。最后的实现的结果就是,不仅可以在局域网内进行多人协作,如果有需要,整个团队都可以分散在异地进行影片的线上后期创作,配合上低延迟的5G更是如虎添翼。

哪怕我是个忠实的fcp拥护者,在多人异地线上协作的需求上我也得承认,达芬奇还是要稳稳的压过fcp一头的。

让NAS化身达芬奇数据库的“服务器”,也算是圆了我去年夏天挖的一个坑。

How can I collaborate DaVinci Resolve Studio 16 between macOS and Windows in QTS 4.4.3?

 

 

如果网络世界也有复古风:Wordpress

网络世界如果也有复古风的话,Web绝对是稳摘桂冠。当年网络刚新起的时候,个人博客的概念非常红火,你看几乎每个酷哥酷妹有自己的网站、都在写自己的博客。

如今,使用NAS搭建一个网站,借助Wordpress的力量,可以不费吹灰之力得送你回到“千禧年代”。

 

 

小叮当的时间机:Time Machine

字如其名,你可以在nas上配置一项供macOS使用的服务。配置完成之后,你的Mac电脑会每个小时备份一次。

Apple官方是这么说的:「“时间机器”会自动制作过去 24 小时的每小时备份、过去一个月的每天备份以及之前所有月份的每周备份。如果备份磁盘已满,则最早的备份会被删除。」

走进家门,电脑自动连上Wi-Fi。整个备份过程完全不需要自己操心,恢复起来也很简单,你可以选择整机恢复,也可以选择追溯单个文件的历史。

万一哪天你运气不好,电脑炸了,你的资料、工作、甲方都不会炸。绝对是工作、居家必备好保险。如果你愿意的话,只(不是)需要再掏万把块钱,几个小时的功夫就能续上你原来的进度。

总之,非常的apple,非常的好用。

 

 

每台设备都能“打”:网络打印机

家里有一台打印机,却只有一台电脑能用它打也太麻烦了,你需要来回传文件、开关机,在移动设备如此发展的今天,你完全可以使用手机,“无线”打印你需要的文件。使用NAS,你就可以在Apple设备上轻松用AirPrint协议来打印文件。

(Windows设备大概也可以?)

 

 

N1盒子

如果你需要的是一台没有广告、能投屏能4K能看电视的智能电视盒子,你大可以不选小米、华为价格又贵、又不好用的电视盒子。N1盒子绝对是500元以内打遍天下无敌手,而它的售价仅需一百出头。

如果你去检索「N1盒子+暴雷」关键词,你可以查到这款产品的历史故事。而对于我们这种拿它当电视盒子的一般消费者,它的高性价比简直是原价买到就是赚到。

因为其历史原因,它仅在pdd、咸鱼、淘宝店上出现。选择搭配智能电视系统购买时,卖家通常会预装一些好用的app,让你免费就能看到本来需要收费的IPTV、电视剧、电影等(而且没广告 啥叫超越正版的盗版)。而它的性能更是能解码4K蓝光电影没问题。

买它!就买它!

 

 

 

结束

认真上网系列的中篇到此就结束了,感谢你看到这里。本文对于非网络爱好者或专业从业者,可能信息量略大,如有不懂,建议谷歌(不是)。欢迎发邮件来骚扰我~

另外,朋友们,这个系列的最后一篇我也开好坑了,就是智能家居!希望我不要拖很久~

Default image
tshaveanidea
ts, tssblog's owner, a.k.a. Lucas
Articles: 126

3 Comments

  1. 非常感谢你的分享。

    我因身体原因彻底远离江湖很多年了。最近想折腾一个自己的网络环境和影音环境。

    以前尽管天天fanqiang去BBC下载点每天的英语音频听听,但毕竟是单机在电脑上fq。这次买了Apple TV第七代128GB,全家又是苹果生态,买了R2S软路由,NAS还只是未来的计划。

    昨天上午把刚到手的R2S装上了,也下载了iStore这个固件刷上去了。但还是不能科学上网。

    很迷糊,不知道具体还要做什么设置,网上文章都讳莫如深,还请邮件指教,当然电话xxxxxxxx(来自Lucas的打码)或者微信更是感谢不尽。

    其实,我原来还想多折腾,昨天还从满满当当的电脑上挤出一个分区装了Ubuntu,搞成了双系统,还在Ubuntu上装上了cross toolchain……

    后来一看,连个科学上网设置都搞不定,真是感叹自己实在太过于骨灰了。基本的command-line也忘了,以前玩转linux内核编写驱动必须用到的emacs更是完全不会动了,至于bash等各种shell语言和Busybox这个超级小神器,更不用说忘光了,打开了git下来的源码,看了下里面Python文件,还能凑合看懂,这主要是因为Python接近人话。

    上网看的几篇相关文章,很多都看不懂,中文字个个都认识,但就是不知所云,什么机场、酸酸乳等等。当然十多二十年前玩Linux,我们是不可能看中文都是看英文,但我是能看懂中文的,只是后来一直不看而已,没想到现在竟然看不懂中文方面Linux文章了。

    你分享的两篇我能看懂,确实已经很少见了。

    好了,不多说了。

    尽管自己算是个骨灰级嵌入式Linux玩家,但那是老黄历老黄历了。当下最需要的是想你们学习。

    请不吝指教!!!

    谢谢谢谢

  2. 我想问问大佬。单线多拨后。叠加了上下行。内网中有一个nextcloud的NAS。我想问一下。能否也给NAS叠加上行呢?

    • 取决于具体服务,绝大多数不行。

      例如nas的bt服务的上传,因为多拨后获取到了多个IPv4的地址,软路由可以自动做负载平衡,使用不同的IP地址与其他服务器建立连接,在这个场景中,上传带宽是可以叠加的。

      然后,在绝大部份应用场景中,因为服务与服务之间是“单线程”/“点对点”的连接,所以并不能起到叠加上传带宽的效果。例如,在外通过VPN/ss等方法访问nas上的文件时,因为这种连接方式都是点对点的,所以不能叠加。然而,如果你有多个终端或多个用户,通过家庭中获取到不同的IPv4进行连接访问的话,这种情况就不是所谓的点对点而是多点对多点,那么又是可以叠加的。

Leave a Reply

%d bloggers like this: