跳转到主要内容

在群晖 NAS 上运行 NPC

使用 Container Manager 部署 NPC 并正确访问 NAS 和局域网服务

在支持 Container Manager 的群晖 NAS 上,建议使用 NPC 容器。官方镜像提供 linux/amd64、linux/arm 和 linux/arm64 平台;实际可用性仍取决于 NAS 型号、DSM 版本以及 Container Manager 支持范围。

部署前准备

  1. 在 NPS Web 管理中新增客户端,记录 NPS 桥接地址和客户端验证密钥。
  2. 确认 NAS 能主动访问 NPS 桥接端口。NPC 不需要在路由器上做入站端口映射。
  3. 在群晖套件中心安装 Container Manager,然后打开“项目”功能。

用 Compose 启动

新建项目并填入以下 Compose 内容,将占位值替换为真实配置:

services:
  npc:
    image: yisier1/npc:latest
    container_name: npc
    network_mode: host
    restart: unless-stopped
    command:
      - -server=nps.example.com:8024
      - -vkey=<客户端验证密钥>

network_mode: host 让 NPC 直接使用 NAS 的网络。因此隧道的 target_addr=127.0.0.1:<端口> 可以访问监听在 NAS 本机的服务,也可以填写其他局域网设备的 IP 和端口。

生产环境建议将 latest 改为已验证的具体版本标签,避免重建容器时自动跨版本升级。客户端验证密钥不应公开或提交到代码仓库。

使用 npc.conf

需要在 NAS 上声明多条隧道时,先创建例如 /volume1/docker/npc/conf/npc.conf 的配置文件,然后改用:

services:
  npc:
    image: yisier1/npc:latest
    container_name: npc
    network_mode: host
    restart: unless-stopped
    volumes:
      - /volume1/docker/npc/conf:/conf:ro
    command:
      - -config=/conf/npc.conf

挂载为只读可以防止容器修改 NAS 上的配置。请确认 Container Manager 能读取该目录;配置中含有 vkey 和其他凭据时,不要给普通 DSM 用户授予读取权限。

验证连接

  1. 在 Container Manager 中查看 npc 容器日志,确认出现成功连接 NPS 的记录。
  2. 在 NPS Web 管理的客户端列表中确认该客户端在线。
  3. 从 NAS 上确认目标服务可达。如果目标在另一台局域网设备上,检查该设备的防火墙是否允许来自 NAS 的连接。
  4. 从公网实际访问隧道,不要只以“客户端在线”判定后端服务可用。

第三方套件

不能使用 Container Manager 的机型,可自行评估“我不是矿神”套件源:https://spk7.imnks.com/ 。该套件源由第三方维护,不属于 NPS 项目的发布和更新链路。安装前应核对支持的 DSM 版本、CPU 架构、包签名和更新来源;对供应链有严格要求时,请使用官方镜像或发布页中与 NAS 架构匹配的 Linux 客户端。