3.0 KiB
title, lifecycle, evidence, last_reviewed, last_verified
| title | lifecycle | evidence | last_reviewed | last_verified |
|---|---|---|---|---|
| Tailscale 远程访问指南 | unknown | documented | 2026-09-16 | null |
Tailscale
Tailscale 提供远程访问 homelab 的网络路径。维护者于 2026-09-16 表示没有需补充的动态事项;
本页根据 apps/tailscale/subnet-routes.sh 和共享 PostgreSQL Service 配置整理。
未读取含 OAuth 值的安装脚本,也未查询 tailnet、路由批准状态或现场连通性。
两种访问路径
| 路径 | 来源记录的用途 |
|---|---|
| laptop 子网路由 | 访问 LAN 与两个 SDN 网段中的原有地址 |
| Kubernetes operator 暴露 Service | 为特定 Service 提供 tailnet 入口,例如共享 PostgreSQL |
子网脚本将 laptop(LAN 地址 192.168.10.127)记录为唯一子网路由器,声明以下完整路由集合:
192.168.10.0/24:homelab LAN。10.60.0.0/24:SDN labnet。10.61.0.0/24:SDN retronet。
operator 管理的 Service 入口不能直接视为新的通用子网路由器。 子网路由可达也不等于拥有所有目标服务的应用权限。
第一次从远程客户端访问
- 在自己的客户端登录维护者指定的 tailnet,完成该设备所需的批准流程。
- 确认客户端接受子网路由。Linux 客户端需要时可执行下面的设置;它改变本机路由接受配置。
- 打开已有权限的 LAN 服务,例如 Grafana。域名还须通过适当的 DNS 配置解析。
sudo tailscale set --accept-routes=true
客户端行为见 Tailscale 子网路由文档。
服务登录仍按该服务自己的流程进行。
如果访问 operator 暴露的 Service,使用维护者提供的 tailnet 地址;
不要把 Kubernetes .svc.cluster.local 名称当成远程客户端已经可解析的名称。
路由、DNS 与权限分别检查
“客户端已登录”“路由已广播”“路由已批准”“访问规则允许”和“目标服务可用”是不同条件。 LAN 的 Blocky / 路由器 DNS 设计 不自动证明远程客户端已获得相同解析配置。 IP 可达而域名失败时,先查看远程客户端 DNS 路径,不直接改 LAN DNS。
脚本记录两个 SDN 网段由 laptop 从 VyOS 通过 OSPF 学习。 即使 Tailscale 仍广播这两个前缀,底层 OSPF 路由缺失也会导致转发失败。 新增路由还需 tailnet 批准及访问规则配合,单看广播配置不足以验收。
apps/tailscale/subnet-routes.sh 是维护端脚本,--advertise-routes 替换完整集合;
普通客户端接入无需执行它。新增网段时按完整声明审查,避免意外移除既有路由。
现有脚本提供批准信息的查看方法;执行现场检查前仍需按本库规则对齐范围。
依赖为 Tailscale 控制与数据路径、laptop 转发及目标网络;SDN 另依赖 VyOS/OSPF, operator Service 另依赖 Kubernetes 和 operator。 本页没有记录 tailnet OAuth、设备密钥或凭据内容。