在 Arch Linux 上搭建个人 NAS:Samba 与 Tailscale 入门
语言: English | 简体中文
发布日期:2025-05-25
这是我最早的技术博客之一,记录了把闲置电脑改造成个人 NAS 的过程。
项目起点
早期寻找 Co-op 的经历让我意识到,需要用能运行的工程项目积累经验。恰好我有一台闲置电脑和约 500 GiB 存储,也有朋友在搭 NAS,于是决定从 Linux 命令行、文件共享和网络配置开始实践。
NAS(Network-Attached Storage)通过网络集中提供共享存储,可以理解为多台电脑都能访问的一块远程磁盘。除了传文件,也能运行媒体服务。我在自己的 NAS 上使用 Docker,并部署了 Jellyfin。
这个项目让我开始接触实际 CLI、共享协议,随后延伸到容器管理和多媒体服务。
- 一台可以安装系统并提供存储的闲置电脑。
- 能安装 Linux 发行版;本文使用 Arch。
- 了解基本 Linux 命令行。
其他发行版也可以借鉴流程,但包管理命令和路径需按实际环境调整。
Samba 的作用
Samba 通过 SMB/CIFS 为 Linux / Unix 与 Windows、macOS 等设备提供文件和打印共享。这里使用 Samba 解决跨平台传输;如果全部客户端都是 Linux,也可以评估 NFS。
安装并启动
1 | sudo pacman -S samba |
smb.service 负责基础文件共享。若需要 macOS 上的服务发现,可进一步了解 Avahi 等相关配置。
目录与权限
我把共享内容集中放在 /srv/nas/share,也可以按用途继续分目录。
1 | sudo mkdir -p /srv/nas/share |
| 权限数字 | 对应权限 | 含义 |
|---|---|---|
| 7,owner | rwx | 读、写、进入目录 |
| 5,group | r-x | 读与进入,不可写 |
| 5,others | r-x | 读与进入,不可写 |
755 不代表所有人都能写。若只有本人使用,可按目录所有权考虑更严格权限;共享子目录本身也必须为实际用户配置适当的 Linux 权限。
创建共享用户
1 | sudo useradd -M -s /usr/bin/nologin nasuser |
nasuser 可换成自己的用户名。系统账户与 Samba 密码是相关但不同的配置;Windows 等客户端连接时使用 Samba 凭据。
最小配置示例
Arch 环境下需要自行准备 smb.conf。原文使用一个简化的 public share 示例:
1 | [global] |
这里的 /srv/samba/public 是配置示例路径,应替换为实际创建并授予权限的目录,例如前面的 /srv/nas/share。Public 是客户端看到的共享名。允许 guest 的示例与账号登录的共享需求不同,需要按自己的使用方式配置;Samba 设置也不会绕过底层目录权限。
先检查语法,再重启服务:
1 | testparm |
通过 Tailscale 访问
我的设备加入 tailnet 后,可以由另一台同样加入网络的客户端使用 Tailscale 地址连接 SMB,不必在路由器上直接开放共享端口。
Windows 连接格式是:
1 | \\100.x.y.z\Public |
地址应替换为自己的 NAS Tailscale 地址,共享名必须与配置中的 section 一致。本文使用的是私有 tailnet 访问方式。
后续计划
- 配置回收站,把误删文件放入
.RecycleBin。 - 使用 Docker 继续运行 NAS 服务。
- 随维护经历补充权限、网络和容器方面的记录。
参考
- 标题: 在 Arch Linux 上搭建个人 NAS:Samba 与 Tailscale 入门
- 作者: Sirui Liu
- 创建于 : 2025-05-25 18:50:20
- 更新于 : 2026-10-25 12:00:00
- 链接: https://vanquisher.world/zh-CN/2025/05/25/NAS-Network-Attached-Storage-simple-building-on-Arch-Linux/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。