Post

家庭 NAS 配置

家庭 NAS 配置文档 技术配置记录,已对公网 IP、域名、密码等敏感信息脱敏。 占位符:<NAS-LAN-IP> 内网地址 / <NAS-TAILSCALE-IP> 组网地址 / <VPS-IP> 反代 VPS IP / <DOMAIN> 主域名 / <FRP-TOKEN> 隧道凭证 / <SSH

VPS 阅读 7 点赞 0 评论 0

家庭 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首页仪表盘
1Panel8080面板/管理入口
alist 云盘5244多网盘聚合
ittools40116在线工具集
yacd12345代理面板
YesPlay 音乐8086音乐服务
Jellyfin8096影音媒体库
qBittorrent8181下载
Navidrome40108音乐库(Subsonic)
Halo 博客<HALO-PORT>Markdown 博客(需装 ByteMD 插件开启 MD 编辑)
WebDAV8081文件访问
SMB445/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 上的代理出口配置见单独文档,不在此篇)

新增一个子域只需两步:

  1. NAS /etc/frp/frpc.toml 增加 [[proxies]]remotePort = localPort),systemctl restart frpc
  2. VPS /etc/caddy/Caddyfile 增加 xxx.<DOMAIN> { reverse_proxy 127.0.0.1:<port> }caddy reload
  3. DNS 用通配符 *. <DOMAIN> 已指向 VPS,无需改解析

5. 子域名映射表

子域后端服务(端口)
<DOMAIN> / wwwHydro(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_* 类变量。

继续阅读

全部归档

评论