在 OCI VPS 上接入 Tailscale 做远程访问
把 OCI Ubuntu 实例加入已有 tailnet,获得 100.x 内网 IP 用于加密远程访问,并与公网 SSH 并行作为冗余通道。
#type / howto
#status / growing
#tech / network
#resource / oracle-cloud
#resource / tailscale
#platform / server
[!warning] Tailscale 不会自动关闭公网 SSH 接入 tailnet 只是多了一条加密通道。若不另行限制 sshd 监听地址和防火墙,公网 22/1688 仍然暴露。真正的「隐藏」来自后续把 sshd 收敛到 Tailscale IP。
在 OCI VPS 上接入 Tailscale 做远程访问
目标
把一台 OCI Ubuntu 实例加入已有 tailnet,使其获得 100.x.y.z 内网 IP,从而:
- 从笔记本、家庭服务器等 tailnet 设备直接加密访问;
- 用 MagicDNS 主机名(如
ssh ubuntu@oracle2)代替记 IP; - 与公网 SSH 并行,互为兜底,避免把自己锁死。
路由器侧的子网路由配置见 Tailscale,本文只讲服务器作为接入端。
前置条件
- 已有一个 tailnet 账号(GitHub/Google 等 SSO 登录);
- 实例可正常 SSH(公网或控制台);
- 实例出站 UDP 未被防火墙拦截(Oracle 默认出站全开)。
1. 安装
curl -fsSL https://tailscale.com/install.sh | sh
2. 认证加入 tailnet
sudo tailscale up --hostname=oracle2
命令会打印一个 https://login.tailscale.com/a/xxxx 认证链接,在浏览器打开并授权。注意:该进程需保持前台运行直到授权完成,放到后台被杀会导致授权不生效。
3. 验证
sudo tailscale status # 看到本机与其它设备列表,状态非 offline
sudo tailscale ip -4 # 输出 100.x.y.z 内网 IP
4. 从其它设备访问
在 tailnet 内任一设备:
ssh ubuntu@100.x.y.z # 用 Tailscale IP
ssh ubuntu@oracle2 # 开了 MagicDNS 时可直接用主机名
连接可靠性
Tailscale 打洞失败时会自动降级到 DERP 中继(全球多节点),连接不会断,只是延迟略高。除非控制平面宕机或账号异常,「永远组不成内网」基本不会发生。真正的风险是单点故障,因此建议保留公网 SSH 或控制台连接作为冗余。
分阶段收敛(推荐)
- 阶段一:装好 Tailscale,公网 SSH(22/1688)与 Tailscale 三通道并行,日常走 Tailscale。
- 阶段二:确认稳定后,关闭公网 22,仅留备用端口 + Tailscale。
- 阶段三:sshd 只监听 Tailscale IP + localhost,公网彻底清净;控制台连接作为最终救急。
每一阶段都先验证新通道可用,再移除旧入口,避免锁死自己。
Related notes
- 所属 MOC:甲骨文云服务器 MOC
- 路由器侧 Tailscale:Tailscale
- 加固主流程:安全加固 OCI Linux 服务器
- 救急通道:使用控制台连接恢复 OCI 实例