家庭 NAS 配置文档
技术配置记录,已对公网 IP、域名、密码等敏感信息脱敏。
占位符:<NAS-LAN-IP>内网地址 /<NAS-TAILSCALE-IP>组网地址 /
<VPS-IP>反代 VPS IP /<DOMAIN>主域名 /<FRP-TOKEN>隧道凭证 /
<SSH-PASS>SSH 密码 /<ADMIN-EMAIL>管理员邮箱
1. 硬件架构
| 项目 | 配置 |
|---|---|
| 机型 | 老款笔记本(x86 低压 U / 8GB DDR3) |
| 系统盘 | 256GB SSD(系统 + 隐私数据) |
| 数据盘 | 500GB 2.5" HDD(光驱位) |
| 内网地址 | <NAS-LAN-IP> |
| 远程组网 | Tailscale,地址 <NAS-TAILSCALE-IP> |
2. 系统与存储
- 系统:Debian 12 + OMV 7
- 存储拓扑:
HDD (/dev/sda1)
└─ /srv/data # HDD 真实挂载点
└─ bind → /srv/nas-data/data # 对外共享根(SMB / Web 共用)
SSD
└─ /srv/nas-data/private # 隐私目录(仅管理员可见,700)
└─ bind → /srv/nas-data/data/private
/etc/fstab关键项:
/dev/sda1 /srv/data ext4 defaults 0 0
/srv/data /srv/nas-data/data none bind 0 0
/srv/nas-data/private /srv/nas-data/data/private none bind 0 0
3. 服务清单(端口 / 用途)
| 服务 | 端口 | 说明 |
|---|---|---|
| Hydro(导航/门户) | 8090 | 首页仪表盘 |
| 1Panel | 8080 | 面板/管理入口 |
| alist 云盘 | 5244 | 多网盘聚合 |
| ittools | 40116 | 在线工具集 |
| yacd | 12345 | 代理面板 |
| YesPlay 音乐 | 8086 | 音乐服务 |
| Jellyfin | 8096 | 影音媒体库 |
| qBittorrent | 8181 | 下载 |
| Navidrome | 40108 | 音乐库(Subsonic) |
| Halo 博客 | <HALO-PORT> | Markdown 博客(需装 ByteMD 插件开启 MD 编辑) |
| WebDAV | 8081 | 文件访问 |
| SMB | 445/139 | 局域网文件共享 |
OMV(80)、FileBrowser(8082) 已停用,无反代隧道。
4. 反向代理架构(FRP + Caddy)
浏览器
→ <DOMAIN>:443(VPS Caddy 做 TLS 终结)
→ 127.0.0.1:<port>(VPS 上 frps 监听的隧道端口)
→ NAS:<localPort>(frpc 转发到内网服务)
- VPS 侧:frps(控制端口 7000)+ Caddy(80/443,自动 Let's Encrypt)
- NAS 侧:frpc 建立 TCP 隧道到 VPS
- (VPS 上的代理出口配置见单独文档,不在此篇)
新增一个子域只需两步:
- NAS
/etc/frp/frpc.toml增加[[proxies]](remotePort = localPort),systemctl restart frpc - VPS
/etc/caddy/Caddyfile增加xxx.<DOMAIN> { reverse_proxy 127.0.0.1:<port> },caddy reload - DNS 用通配符
*. <DOMAIN>已指向 VPS,无需改解析
5. 子域名映射表
| 子域 | 后端服务(端口) |
|---|---|
<DOMAIN> / www | Hydro(8090) |
| nas. | 1Panel(8080) |
| alist. | alist(5244) |
| tools. | ittools(40116) |
| clash. | yacd(12345) |
| music. | YesPlay(8086) |
| blog.(可选) | Halo(<HALO-PORT>) |
6. 关键配置示例(脱敏)
frpc.toml(节选)
serverAddr = "<VPS-IP>"
serverPort = 7000
auth.token = "<FRP-TOKEN>"
[[proxies]]
name = "alist"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5244
remotePort = 5244
Caddyfile(节选)
{
email <ADMIN-EMAIL>
}
alist.<DOMAIN> {
reverse_proxy 127.0.0.1:5244
}
7. 运维要点
- SMB 配置锁定:OMV 的
omv-salt deploy会覆盖/etc/samba/smb.conf,
已用chattr +i锁定。修改前先chattr -i,改完再chattr +i。 - SMB 共享:仅保留
[data],指向/srv/nas-data/data;
普通用户看不到private,管理员账号可见。 - 数据备份:隐私目录在 SSD,建议定期离线备份;HDD 数据盘做重要文件异地副本。
- 证书:Caddy 自动续期 Let's Encrypt,无需手工干预。
8. 常用命令
systemctl restart frpc # NAS:重启隧道
caddy reload --config /etc/caddy/Caddyfile # VPS:重载反代
ss -ltnp | grep <port> # 查隧道是否在 VPS 监听
chattr -i /etc/samba/smb.conf # 临时开放 SMB 可写
9. 故障排查速记
- 子域打不开:先在 VPS 用
curl -sk https://子域看是否 200;
若 VPS 本地都不通,查 frps 是否监听该端口、frpc 隧道是否连上。 - 全站 500(某 Java/Node 服务):多为缺失环境变量(如加密密钥),
检查 compose 里的SECRET_*类变量。
评论