关于systemd
本系列全部服务都使用 systemd
来启动和管理,在系列中并未过多的说明这些服务如何启动、开启自启、重启、重载、停止、查看日志、筛选日志等等。关于 systemd
,阮一峰大佬有详细的教程:Systemd 入门教程,该文详细的介绍了 systemctl
及 journalctl
相关命令的使用方法。
关于磁盘占用
整套系统配置下来,初始的磁盘占用不到2G。从长远来看,只要不会有需要占用大量磁盘空间的应用程序,16应该是绰绰有余。
关于内存
安装完这一系列内容,实际上内存使用并没有增加多少,才 340MiB
左右。注意 buffer
和 cache
是可以通过调整参数降低的,这个占用不算真正的占用。 buffer
和 cache
反而是对系统运行有好处的,在内存足够的前提下,不建议清除它们。如果内存真的不够,你可以按照 这个链接 来限制它们。
如果想要进一步降低内存使用,可以自行动态编译前面所使用到的全部软件包,再使用 upx 来深度压缩,这样处理后能让内存消耗再小一些,能缩减到 300MiB
以下。不过注意 unblocknem
不能这样操作,如果想要减小它的内存占用,请按照 官方仓库 安装 nodejs
后使用源码运行,并调整 unblocknem.service
中的 ExecStart
。
关于DNS
我们在 本系列第(三)篇 使用了 adguardhome
mosdns
和 clash
来实现自建DNS服务,在 adguardhome
和 mosdns
中都存在后备,两级后备保证局域网中的设备访问中国大陆的服务不会因为 clash
的代理节点出问题,而导致无法访问。我想这点对家人的使用比较重要,他们大多数都只需要能够访问中国大陆有服务就可以了,他们不会再闹着说“又上不了网了,你咋搞的嘛”。
在 OpenWRT
中默认是会安装 dnsmasq
的,许多包都会操作 dnsmasq
,这可能也是导致解析不到DNS的原因。 使用 Debian
没有此烦恼,因为压根没有安装 dnsmasq
。
关于网络故障
我们将 nftables
规则绑定到 clash
启动之后才执行,在 本系列第(四)篇 我们是以 ExecStartPost
来让 nftables
规则在 clash
启动之后才执行的。如果 clash
没启动好, nftables
规则也就不会执行,假如这个时候 adguardhome
和 mosdns
都启动好了,由于 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
脚本。如涉及到改动,可能需要你自行修改相关脚本内容,以适应你的环境。若因此脚本出现错误,本人无法提供过多的建议,可能需要你自行排故。