在 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 或控制台连接作为冗余。

分阶段收敛(推荐)

  1. 阶段一:装好 Tailscale,公网 SSH(22/1688)与 Tailscale 三通道并行,日常走 Tailscale。
  2. 阶段二:确认稳定后,关闭公网 22,仅留备用端口 + Tailscale。
  3. 阶段三:sshd 只监听 Tailscale IP + localhost,公网彻底清净;控制台连接作为最终救急。

每一阶段都先验证新通道可用,再移除旧入口,避免锁死自己。

创建于 2026/7/21 更新于 2026/7/21