# 需求:远程员工访问不到NAS：分发正本写死内网IP，需公网入口或mesh

状态: rejected(2026-11-08 boss 拍板「走内网」：公网入口与 mesh 两个补法都不做，分发正本继续只写内网地址；异地员工不在本期覆盖)
归属: 公司基建(员工入职分发)
来源: 登记缺口(ops/products/)
日期: 2026-10-19
建议: 做,ONBOARDING-STANDARD.md:39 与 npm 私源行全部写死 192.168.31.192；远程员工按卡上不了岗，而这套分发已上线。补法二选一待 boss 拍板：①NAS 加公网入口+Cloudflare Access（员工不装软件，沿用 Forgejo 令牌）②mesh（Tailscale 类，不开公网，每人装客户端）

## 现状

员工入职卡把 NAS 当唯一入口，地址一律写死内网 IP（2026-10-19 实查三处，不只文档）：

1. `docs/工程规范/ONBOARDING-STANDARD.md:39` clone 地址 `http://192.168.31.192:13000/xlkj/<仓>.git`
2. 同文件 :40 npm 私源两行（`@pinnadash:registry` + `//192.168.31.192:13000/.../:_authToken`）
3. `ops/onboard.json` 的 `endpoints`（host/git/npm/mysql 四行）与 `steps` 里给员工的 how 文案（:166/:168/:174/:175）——入职卡由它生成，所以卡面读数本身就是内网地址

远程员工（不在公司局域网）按此卡命令直接连不上，等于分发上线了但这一类员工上不了岗。同一病根第二次显形：`ops/products/onboard-hub.yaml:29` 记的 `http://onboard.lan:3291/` 短域名要靠各机自己加 hosts，条目原文自己写了「卡链接仍写 IP(新人机器没配 hosts，`.lan` 打不开)」。

否定性结论口径声明：断言的是「无跨网访问路径」，统计口径 = 全仓（ops+docs，排除 node_modules）字面工具名 grep `VPN|Tailscale|ZeroTier|WireGuard|frp|ngrok|内网穿透`，命中 0（除本次新落的 spec 与本票）。宽口径 `反向代理|公网入口|cloudflare access` 有三处相邻记录，交叉人读后确认都不构成 NAS 跨网路径：`ops/agentrouter-proxy/worker.js` 是 CF Worker 代墙外上游；`docs/安全/2026-10-04-全线渗透测试报告.md` SEC-04/SEC-10 是给产品公网 admin 域/驾驶舱套 Access 的**建议**，未实施、也不涉及 NAS；`ops/README.md:301` 同属口径提法。已知漏计形态：员工侧凭记忆另建的自建隧道不在本仓，查不到。

规则分发本身（`ops/onboard.py rules`）已随仓上线，所以这条缺口影响的是「拿到仓」这一步，不是「拿到规则」这一步。

## 方案

补法二选一，需 boss 拍板，本票不代决：

1. NAS 加公网入口：域名反代到 Forgejo/npm，前置 Cloudflare Access 挡访问；员工不装软件，沿用现有 Forgejo 令牌。改动面 = NAS 侧反代与 Access 策略 + `ops/onboard.json` 的 `endpoints`/`steps` 地址口径 + `ONBOARDING-STANDARD.md:39/:40` + 入职卡随生成物跟随。
2. mesh 组网（Tailscale 类）：不开公网端口，每人装客户端，装完内网 IP 直接可达。改动面 = 每人一次安装 + NAS 侧开 mesh；卡面地址可以不动，但要把客户端安装写进入职卡步骤。

两条都要一并处置 `onboard.lan:3291` 这条 hosts 依赖（`ops/products/onboard-hub.yaml:29` 的剩余项），否则短域名入口仍是「配过 hosts 的机器才成立」。

拍板后本仓只动分发地址口径与入职卡，不在本票内做统一校验承载（那是另一条已落地的两步路线）。

## 验收标准

- [x] 2026-11-08 boss 拍板走内网，公网入口与 mesh 均不做（见状态行）
- [ ] 一名远程员工（不在公司局域网）按更新后的入职卡从零走通 clone + npm 私源，读数进票
- [ ] `ops/onboard.json`、`ONBOARDING-STANDARD.md`、入职卡三处员工面载体不再出现「只有内网才成立」的地址形态（或明确标注该地址仅内网可达并给出外网替代）
- [ ] `onboard.lan:3291` 的 hosts 依赖一并消除或写清适用边界
- [ ] 全量 `pytest ops/` 无新增红
