基于 OpenWrt 搭建的 NAS 和 TimeMachine(时间机器) 服务

本文将结合提供了 GUI(图形界面)的 OpenWrt 系统进行介绍,并将以 ArgonTheme 主题作为例子。

一、查看设备信息

建议搭建服务前先去了解自己设备的一些基本信息,如处理器类型、系统版本等。

1. 处理器

此部分信息一般位于 状态 → 概览 页面中,如图所示,本文使用的 FastRhino R68S 设备就是采用了基于 ARMv8 架构的 Rockchip RK3568 处理器,通常仅需了解采用的架构即可。

![](/images/基于-openwrt-搭建的-nas-和-timemachine-时间机器-服务/Untitled 21.png)

2. 系统版本

目前 OpenWrt (也称作 LEDE)存在官方分支和第三方分支(如常用的 Lean’s LEDE source),因此最通用的查看适合的系统版本的方法是去查看 系统 → 软件包 → 配置 中的软件源信息,因为此处一般由固件开发者指定,其相比使用者更为了解。如下图所示,本文对应的 OpenWrt 的发行版本是 21.02.1。

![](/images/基于-openwrt-搭建的-nas-和-timemachine-时间机器-服务/Untitled 22.png)

二、安装

1. 卸载原始版本

由于固件中可能提供了早期版本的 Samba 库(如 samba36),建议先进行卸载,因为其与 Mac 系统的时间机器等功能存在兼容性的问题。

首先进入 **系统 → 软件包 → 动作 页面,在下方过滤其中输入 samba,并点击 查找软件包 **按钮,之后将 状态 → 已安装软件包中搜索出来的带有 samba 的软件包卸载。

2. 安装新版

进入 **系统 → 软件包 → 动作 页面,在下方过滤其中输入 samba4,并点击 查找软件包 **按钮,之后下方 **状态 → 可用软件包 **中便会出来一系列的结果,找到 samba4-server 软件包,并点击安装。

三、配置

之后的配置过程将需要你登录到软路由的系统中,你可以使用自己的 SSH 终端,或者进入 GUI 中的 系统 → TTYD 终端 页面,用户名和密码与进入 GUI 时的相同。

之后首先需要修改一些基础配置,此处将使用到一系列 vim 文本编辑器的命令,建议先对该编辑器进行一定的了解,之后输入命令 vi /etc/config/samba4 即可编辑配置文件。

首先可以反复敲击 d 键,删除掉所有内容,并键入 a 进入编辑模式,将内容替换成以下内容,其中使用 <> 符号标记的内容代表可以进行自定义,编辑完成后先敲击 esc 键,再输入 :wq 进行保存。

text
1
2
3
4
5
6
7
config samba
option workgroup 'WORKGROUP'
option charset 'UTF-8'
option name '<nas>'
option description '<Nas of Chenming>'
option homes '0'
option macos '1'

之后输入命令 vi /etc/samba/smb.conf.template 编辑详细配置文件,首先可以键入 a 进入编辑模式,之后将光标移动到文件的最后,自行加上下面的内容。

text
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 仅用于存储普通文件的目录
[nas]
path = </mnt/sda3> #目录位置
valid users = <cm_nas> #后续访问的用户名
create mask = 0777
directory mask = 0777
read only = no
guest ok = yes
fruit:encoding = native
fruit:metadata = stream
fruit:veto_appledouble = no
vfs objects = catia fruit streams_xattr

# 仅用于苹果 TimeMachine 的目录
[backups]
path = </mnt/sda2> #目录位置
valid users = <cm_nas> #后续访问的用户名
create mask = 0777
directory mask = 0777
read only = no
guest ok = yes
fruit:encoding = native
fruit:metadata = stream
fruit:veto_appledouble = no
fruit:time machine = yes
fruit:time machine max size = 450G
vfs objects = catia fruit streams_xattr

添加完成后先敲击 esc 键,再输入 :wq 进行保存,文件共享的基本配置就完成了。

下面进行账户的配置,首先输入命令 useradd cm_nas创建一个系统账户,名字和上方输入的 valid users 相同,后续还会多次用到该账户名。

之后输入命令 passwd cm_nas 修改密码,并输入命令 smbpasswd -a cm_nas 并再次输入刚才修改后的密码。

输入命令 chown -R cm_nas /mnt/sda2 修改目录权限即可,其中参数分别为刚才的账户名和上面指定的目录位置。

最后输入命令 /etc/init.d/samba4 restart 应用刚才的配置即可。

四、连接

通常此时 samba 服务已经成功启动了,此时可以使用自己的电脑连接到该目录中。

Mac

Mac 用户打开 访达 → 网络,如果顺利的话此时里面已经出现了你刚刚配置的服务,双击即可连接。如果未出现服务,则需点击上方菜单中的 前往 → 连接服务器,并输入 smb://<软路由 IP地址> 即可。连接时要使用注册用户登录,用户名和密码就是配置时设置的那些,并建议勾选保存到钥匙链中。

若一切顺利的话,你此时已经得到了一个可以使用的 NAS 服务了。

![](/images/基于-openwrt-搭建的-nas-和-timemachine-时间机器-服务/Untitled 23.png)

如果还希望使用其作为 Mac 时间机器的存储设备的话,则需要进入 Mac 的 **设置 → 通用 → 时间机器 **中进行配置,点击加号一般即可自动弹出刚刚配置好的服务,选择上即可。

![](/images/基于-openwrt-搭建的-nas-和-timemachine-时间机器-服务/Untitled 24.png)

Windows

Windows 设备通常需要手动连接到服务商,进入文件资源管理器中,右键点击 网络 → 映射网络驱动器,在地址中输入 \\<软路由 IP地址> 即可。

五、已知问题

1. 缺少 libatomic1 库

在安装 samba4 时,可能会遇到提示缺少 libatomic1 库的情况,这时可能需要手动安装,进入此链接 https://downloads.openwrt.org/releases/ 中寻找,这里需要根据自己的处理器和系统版本进行选择,如本文最终使用此链接进行的下载 https://downloads.openwrt.org/releases/21.02.1/targets/rockchip/armv8/packages/libatomic1_8.4.0-3_aarch64_generic.ipk

之后在软路由上使用上述下载链接手动安装该库即可。

text
1
2
wget https://downloads.openwrt.org/releases/21.02.1/targets/rockchip/armv8/packages/libatomic1_8.4.0-3_aarch64_generic.ipk
opkg install libatomic1_8.4.0-3_aarch64_generic.ipk