Featured image of post 我的家庭网络设计思路,开启debian的旁路由之路(十一)

我的家庭网络设计思路,开启debian的旁路由之路(十一)

本篇主要是整个系列的总结。

关于systemd

本系列全部服务都使用 systemd 来启动和管理,在系列中并未过多的说明这些服务如何启动、开启自启、重启、重载、停止、查看日志、筛选日志等等。关于 systemd,阮一峰大佬有详细的教程:Systemd 入门教程,该文详细的介绍了 systemctljournalctl 相关命令的使用方法。

关于磁盘占用

整套系统配置下来,初始的磁盘占用不到2G。从长远来看,只要不会有需要占用大量磁盘空间的应用程序,16应该是绰绰有余。

关于内存

安装完这一系列内容,实际上内存使用并没有增加多少,才 340MiB 左右。注意 buffercache 是可以通过调整参数降低的,这个占用不算真正的占用。 buffercache 反而是对系统运行有好处的,在内存足够的前提下,不建议清除它们。如果内存真的不够,你可以按照 这个链接 来限制它们。

内存使用也才340MiB

如果想要进一步降低内存使用,可以自行动态编译前面所使用到的全部软件包,再使用 upx 来深度压缩,这样处理后能让内存消耗再小一些,能缩减到 300MiB 以下。不过注意 unblocknem 不能这样操作,如果想要减小它的内存占用,请按照 官方仓库 安装 nodejs 后使用源码运行,并调整 unblocknem.service 中的 ExecStart

关于DNS

我们在 本系列第(三)篇 使用了 adguardhome mosdnsclash 来实现自建DNS服务,在 adguardhomemosdns 中都存在后备,两级后备保证局域网中的设备访问中国大陆的服务不会因为 clash 的代理节点出问题,而导致无法访问。我想这点对家人的使用比较重要,他们大多数都只需要能够访问中国大陆有服务就可以了,他们不会再闹着说“又上不了网了,你咋搞的嘛”。

OpenWRT 中默认是会安装 dnsmasq 的,许多包都会操作 dnsmasq ,这可能也是导致解析不到DNS的原因。 使用 Debian 没有此烦恼,因为压根没有安装 dnsmasq

关于网络故障

我们将 nftables 规则绑定到 clash 启动之后才执行,在 本系列第(四)篇 我们是以 ExecStartPost 来让 nftables 规则在 clash 启动之后才执行的。如果 clash 没启动好, nftables 规则也就不会执行,假如这个时候 adguardhomemosdns 都启动好了,由于 mosdns 无法使用 clash 的DNS服务,它会全部切换到后备也就是国内公共DNS服务器去解析,这不会影响家人的上网体验。另一方面,假如 clash 启动好了, nftables 规则也创建好了,可是 clash 的代理节点全部故障了,这个时候,由于我们有绕过中国大陆IP的 nftables 规则,仍然不会影响我们使用境内服务。即使再极端一点,连 nftables 也坏了,因为我们是使用 nftables 脚本来生成的,而不是使用 shell 命令一句一句输入的,所以只会整个 mynftables.nft 脚本中的规则全在或者全不在(有任何一句出错就会全不在),那么全不在就意味着没有任何 nftables 规则,旁路由这时除了DNS,就是一个纯粹的 IPv4 转发器,更不会干扰网络的运行(只会影响特殊服务而已)。

OpenWRT 中许多包都会操作 iptbales 或者 nftables,它们之间可能并没有很好的协调与配合,毕竟分属不同的人开发。并且多数都是以一句一句的 shell 命令来增加的规则,很有可能有些语句生效了,有些语句没有生效,然后导致网络故障。现在我们全部自写 nftables 规则,逻辑清楚,并且只会随着 clash 的启动而启动,而不是脱离 clash 自己单独启动,并且直接采用 nftables 脚本而非 shell 脚本,这样就能避免一些网络故障问题。

关于IPv6

所配置的旁路由只作为了IPv4的网关,不作为IPv6的网关主要有两个原因,一是IPv6代理并未普及,二是想要旁路由成为IPv6网关异常复杂。不过,仍然保留了中国大陆网址的IPv6访问的能力。局域网中对公网转发的服务也是可以提供IPv6访问的,这点并不影响。在非旁路由所在的子网中,IPv4/IPv6双栈都是默认可用的状态。

关于软件包

国内的用户使用 OpenWRT 一般是使用 LEDE,如果是自己编译的话,面对繁多的选项无从下手,用别人的 高大全 又老是配置不好,而且还面临不太好升级的问题。一些旧的软件包想要更新,都要先更新固件的编译依赖仓库。

而使用 Debian 的话,它自带的仓库是极度稳定的,自己想要额外安装的一些软件包,基于这个稳定的环境,运行也更稳定,而且额外安装的软件包可以保持追新。这样基础环境稳定,部分特殊软件追新,让体验更加完美。

本系列第(二)篇 中还提及了一些其他的软件包,这些都是简单地应用,如有需要可自行搜索其帮助文档。

关于本系列提供的脚本

如果你相对于我的改动较多,你就可能不能直接使用本系列提供的 shell 脚本。如涉及到改动,可能需要你自行修改相关脚本内容,以适应你的环境。若因此脚本出现错误,本人无法提供过多的建议,可能需要你自行排故。

系列

Built with Hugo
主题 StackJimmy 设计