NAS(7)—— Docker 服务
回到目录
概述
恭喜你读到了这里!如果你按照前面几篇文章配置下来,那么你的 NAS 已经可以应对各种数据存储需求了。接下来,我们要让 NAS 行使作为一台服务器的功能了。
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache 2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
如果有条件,请务必为你的 NAS 配置科学上网服务,可以使用部署在 OpenWrt 上等方法。由于国内镜像源不全面等原因,部分镜像在拉取时很容易出现超时的问题。尤其是 Docker 的安装过程,在没有代理的情况下很难完成。
Docker 架构
守护进程 (Docker daemon):负责管理镜像、容器、容器网络、数据卷等。
Client:负责发送 Docker 操作指令,日常主要通过 Client 完成镜像和容器的管理。
镜像 (Image):即容器的模版,镜像是可以继承的,镜像主要通过 Dock ...
NAS(6)—— SMB & WebDAV
回到目录
概述
经过前面几个模块的配置,我们已经能够在 NAS 上存放我们的数据,并且通过组建 RAID 与接入 UPS 等方式加强了数据存储的安全性。在这个部分,我们需要通过配置来实现通过各种设备来访问 NAS 中存储的数据,并且进一步加强数据存储的安全性。
SMB / Samba
SMB(Server Message Block)可用于在计算机间共享文件、打印机、串口等,电脑上的网上邻居就是靠它实现的。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过 SMB 协议,应用程序可以访问远程服务器端的文件、以及打印机等资源。
Samba 能让 Linux 服务器实现文件服务器、身份授权和认证、名称解析和打印服务等功能。
Samba 也是 SMB 协议的实现,它允许 Windows 客户访问 Linux 系统上的目录、打印机和文件(就像访问 Windows 服务器时一样)。重要的是,Samba 可以将 Linux 服务器构建成一个域控制器。这样一来,就可以直接使用 Windows 域中的用户凭据,免去手动在 Linux 服 ...
NAS(5)—— 数据冗余保障
回到目录
硬盘健康监测
SMART
S.M.A.R.T. 代表的是 Self-Monitoring Analysis and Reporting Technology,意思是自我检测、分析及报告技术。可以用来预测和分析硬盘的潜在问题。
对于机械硬盘(HDD)的寿命信息,我们主要关注这几个条目:
重新分配扇区系数(05)
当前等待中扇区数(C5)
无法修正的扇区总数(C6,重要,不为零即建议备份数据、换盘)
对于固态硬盘(SSD)的寿命信息,我们主要关注这几个条目:
可用备用空间(03)
已用寿命百分比(05)
媒体与数据完整性错误计数(0E,重要,不为零即建议备份数据、换盘)
在 Windows 系统,我们可以使用 CrystalDiskInfo 这款软件来查看硬盘的 Smart 信息。
在 Linux 系统,我们可以使用smartmontools包来查看硬盘的 Smart 信息。
1sudo apt install smartmontools -y
要确保您的驱动器支持 SMART,请键入:
1sudo smartctl -i /dev/sda
其中/dev/sda一般为机 ...
NAS(4)—— UPS 不断电系统
回到目录
UPS
笔者可以很负责任地说:如果你组建的 NAS 有数据存储需求,那么一定需要一同配备一台 UPS(Uninterruptible Power Supply,不间断电源)。在遇到突发情况导致断电时,UPS 可以保证继续维持一段时间的稳定供电。此时,UPS 可以通过 USB 连接等方式向 NAS 发送低电量(离电)信号,NAS 在接收到这个信号后进行自动关机,从而保护其中的数据。
关于 UPS 选购的部分,本文不作说明,满足以下要求即可:
保证在突然断电时能够维持一段时间的稳定供电
保证处于供电状态时能够向机器发送信号
停电告警
通过 USB 连接到 UPS
一般在购买时 UPS 会随机器附赠一条 USB Type-B 线,将其与 NAS 连接起来即可。
将 NAS 的电源插头插到 UPS 上,在终端中输入如下命令:
1lsusb
以查看连接到 NAS 的 USB 设备。结果如下所示:
123Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hubBus 001 Device 008: ID 0764: ...
NAS(2)—— 基于原生 Debian 搭建系统
回到目录
选择 Debian 的原因
选择 Debian 的原因有很多,包括但不限于:
完全自定义的配置
海量、可自由选择安装的软件包
喜欢折腾(不喜欢折腾也有脚本)
…
Debian 最小化安装
以下部分主要来自于这篇教程。
下载安装包
进入官网:https://www.debian.org/,点击其他下载链接
选择较庞大的完整安装映像,64 位 PC DVD-1 iso
因Debian系统在安装过程中需要联网更新安全源,国内访问速度有时候异常缓慢,动辄几个小时。故国内用户建议按上面教程下载完整系统镜像包,这样将避免此问题发生,完成系统安装只需要四分钟左右,大大提高系统安装效率。
推荐使用Ventoy工具辅助安装,此工具可以将U盘制作为启动盘,制作完成后只需将镜像拷入即可。官网:https://www.ventoy.net/en/download.html
选择安装方式(图形界面安装 Graphical install)
设置系统默认语言(English,避免 bug)
设置系统时区(other-Asia-China)
设置地区(Asia-China)
设置区域语 ...
NAS(1)—— 概述 & 硬件
回到目录
概述
我们为什么需要一台 NAS?
笔者在组建自己的第一台 NAS 之前,曾购置过一台 N100 的迷你主机准系统,给它装入了 Windows 10 系统,并在上面尝试了 PT、Jellyfin 等服务。
有一天笔者想找到自己 5 年前的一份文件,但是找遍了所有设备都没有。笔者的设备太多了:手机、平板、笔记本、台式机、N100 主机、Switch,还有几个 U 盘…有的时候一份文件需要在多个设备上工作,难以同步,使用 Onedrive 等方式又太慢,等待同步的时间令人着急。这种混乱的文件管理方式让笔者有了自己组装一台 NAS 的想法:不仅需要以稳定的方式存储数据,还能够运行 PT、Jellyfin 等服务。
DIY NAS
DIY 与成熟方案的比较
如果你有 DIY 的能力和意愿,或者就是单纯地喜欢折腾,笔者还是很建议采用 DIY 方案的。
DIY NAS 的优点:
硬件配置完全由自己挑选
性价比高
配置后续可升级,扩展性好
DIY NAS 的缺点:
组装硬件较为麻烦,需要自己手动接线
硬件兼容性未知,可能会出现意想不到的问题
如果出现问题,售后较困难
软件配置需要耗 ...
已迁移至新域名!
迁移原因
据著名安全网站 Krebsonsecurity 的消息,7 月 16 日,ICANN 致信 .top 域名注册局的所有者江苏邦宁科技有限公司,要求其在 2024 年 8 月中旬之前建立起管理网络钓鱼举报和暂停滥用域名的系统,否则将吊销其许可证。
ICANN 十分罕见地单独指出负责维护整个顶级域名(TLD)的域名注册管理机构,ICANN 还指责该注册局未能对涉及 .top 域名的网络钓鱼攻击报告做出响应。ICANN 在信中 (PDF) 写道: “根据数周来收集的信息和记录,我们确定 .TOP Registry 并未制定一套流程来及时、全面、合理地调查和处理有关 DNS 滥用的报告。”
Interisle 咨询集团今天发布的一份新的网络钓鱼报告中,以 .top 结尾的域名占据了显著位置,调查发现在 2023 年 5 月至 2024 年 4 月期间,钓鱼网站占所有新注册 .top 域名的 4%
刚好旧的域名也快到期了,就顺带着注册了一个新域名一起搬过来了,还简短一些。
自 2024 年 8 月 11 日起,本博客已迁移至deans.fun域名下。
简要谈谈关于域名等方面 ...
NAS(3)—— Cockpit & 系统调优
回到目录
本篇文章主要来自于这篇教程。
Debian 初始化
安装初始软件
1apt install sudo curl git vim net-tools -y # 以 root 用户运行
添加用户至 sudo 组
添加安装系统时创建的第一个用户至 sudo 组,以方便我们后续管理系统。
1usermod -aG sudo <user_name> # 请将 <user_name> 替换为要添加的用户名
更换国内镜像源
Debian 的软件源配置文件是/etc/apt/sources.list。将系统自带的该文件做个备份,将该文件替换为下面内容,即可使用 TUNA 的软件源镜像。
12sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 备份 /etc/apt/sources.listsudo vim /etc/apt/sources.list # 修改 sources.list 文件
替换为:
123456789101112# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行 ...
硬路由(4)—— Tailscale & 远程访问(IPv4)
回到目录
Tailscale 与 VPN
如果想要远程访问路由器局域网内的设备,有两个办法:
路由器暴露在公网,并作端口映射 / 转发使得远程设备能够访问到局域网内的设备
组建虚拟局域网,使得想要访问的公网设备也在这个局域网中
LeSnow:虚拟局域网 其实也算暴露在公网
LeSnow:异地组网的必要性也体现在对 NAS 的访问上。最方便的协议是 SMB,SMB (139 / 445端口)一般是不能跑在公网上的,所以需要组网。一些专用 NAS 系统也是默认不运行在公网环境下的,它们可能连防火墙配置都没有(比如 TrueNAS)
方案 1 对路由器安全配置的要求较高,针对日常使用的情况,我们采用方案 2。
Tailscale 是一个基于 WireGuard 的 VPN 配置工具,通过去中心化的方式实现各个节点之间点对点的连接。配置简单友好,跨平台支持。
安装与配置 Tailscale
OpenWrt Tailscale 自动安装脚本,亲测有效。
踩坑记录:如果要将 OpenWrt 装在 AX3000T 上,建议使用此安装脚本。其原理为:每次启动后都通过脚本获取最新版本 ...
硬路由(3)—— 校园网 & 认证方案
回到目录
本篇文章主要参考这篇博客。
校园网环境下的特殊配置
静态路由
如果主机只能 ping 通网关,但不能 ping 通其他地址,这可能是路由表的问题。Linux 下有一种称为“策略路由”的高级路由方法,它可以根据不同的策略转发到不同的(最多256个)路由表并执行不同的路由。而从路由器发出的 ping 和从主机发出的 ping 默认走的不是同一个路由表,因此出现了上述的问题。我们可以用下面的命令简单地让所有经过路由器的数据都走主路由表,这样我们设置一个路由表就相当于设置所有的路由,在当前的网络情况下是没问题的。
1ip rule add from all lookup main pref 0
我们最好将这个配置保存起来以便每次开机自动执行。修改/etc/rc.local文件,在前面增加两行:
12ip rule add from all lookup main pref 0ip -6 rule add from all lookup main pref 0
每次无线网络重启时也需要执行这两句。
当然,我们也可以在 OpenWrt 的 LuCi 界面中配置静态路由。
在网络 - ...