侧边栏壁纸
博主头像
土拨鼠说Halo 博主等级

行动起来,活在当下

  • 累计撰写 48 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

使用 Tailscale 解决本地无法 SSH 连接 VPS 教程 - 教程

土拨鼠
2026-04-08 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

title: 使用 Tailscale 解决本地无法 SSH 连接 VPS 教程 - 教程
source: https://idcflare.com/t/topic/74181
site: IDC Flare
author: “IDC Flare”
published: 2026-04-02
clipped: 2026-04-06 09:36
tags:
• inbox/readlater
• webclipper

使用 Tailscale 解决本地无法 SSH 连接 VPS 教程 - 教程

一句话结论
通过为本地电脑和VPS安装Tailscale,建立私有网络通道,绕开不稳定的公网链路,成功解决了本地SSH连接VPS超时的问题。

内容摘要

  • 问题:本地SSH连接VPS超时,但VPS在线且公司网络可连,问题出在公网回程链路。
  • 方案:使用Tailscale为本地和VPS建立私有网络,通过内网地址(100.x.x.x)进行SSH连接。
  • 步骤:分别在Windows和Ubuntu VPS上安装Tailscale客户端并登录同一账号,获取VPS内网IP后使用该IP进行SSH。
  • 优点:对VPS原有业务影响小,安全性更高,且绕开了有问题的公网路径。

结构拆解
目标-步骤-注意事项

对我有用的部分

  1. 故障排查思路:当公网SSH连接失败但服务在线时,问题可能在于回程链路而非服务本身,可通过抓包分析(SYN到达但握手未完成)来定位。
  2. Tailscale的实用场景:作为一种Overlay网络工具,可用于快速建立设备间的私有、稳定连接,绕过有问题的公网路由,尤其适用于跨运营商或复杂网络环境下的设备互访。
  3. 安全与业务连续性平衡:在解决连接问题的同时,强调“先保持原有配置不动,验证新方案稳定后再考虑收紧公网入口”的稳妥操作流程,并给出了后续禁用root密码、改用密钥登录等安全优化建议。

标签建议
SSH连接故障,Tailscale,私有网络,VPS管理,网络排障

原文摘录

[!info] Info
真诚友善团结专业 ,共建你我引以为荣之社区。 《社区准则》

教程

这是 bin0.o 首次发帖 - 让我们欢迎他/她加入社区吧!

使用 Tailscale 解决本地无法 SSH 连接 VPS 教程

本文记录一次真实排障过程:VPS 在公司电脑可以用SSH正常连接,但在本地设备上通过 SSH 经常超时(压根连不上),我怀疑是运营商不同的问题。捣鼓了各种方法,换端口(22换到443),没有用。最终通过 Tailscale 给本地电脑和 VPS 建了一条稳定的私有网络通道,成功实现 SSH 连接。

适用场景

如果你遇到下面这些情况,这篇教程基本就适用:

  • VPS 在线, ping 能通。
  • 本地 ssh root@公网IPssh -p 443 root@公网IP 一直超时,挂vpn也不行。
  • 公司网络能连,家庭宽带、手机热点或移动网连不上。
  • 你有 VPS 的 VNC 或控制台权限,可以登录服务器终端。

这次问题的典型现象

本地已经能测到 443 端口,但 SSH 连接依然超时,说明问题不一定在 VPS 配置本身,也可能在公网回程链路上。

为了进一步确认,我们在 VPS 上抓包,看到本地的 SYN 到了,VPS 也返回了 SYN,ACK ,但客户端迟迟没有完成后续握手。这说明 VPS 侧基本正常,问题更像是公网链路或本地网络环境导致的丢包。

为什么改用 Tailscale

Tailscale 的核心思路是:

  • 给本地电脑和 VPS 拉进同一个私有网络。
  • 每台设备获得一个 100.x.x.x 的内网地址。
  • 以后直接用这个内网地址 SSH,不再依赖那条有问题的公网路径。

优点是:

  • 对现有 VPS 业务影响很小。
  • 不需要先修好公网 SSH 才能继续工作。
  • 安全性通常比直接暴露公网 SSH 更好。

安装前说明

这篇教程对应的环境是:

  • 本地系统:Windows
  • 远程系统:Ubuntu 24.04
  • 远程管理方式:VNC

在开始之前,请确认:

  1. 你本地电脑可以正常打开网页并登录 Tailscale 账号。
  2. 你能通过 VNC 进入 VPS 终端。
  3. 不要先删掉现有 SSH 配置,先把 Tailscale 连通。

第 1 步:在 Windows 上安装 Tailscale

先在本地 Windows 安装 Tailscale 客户端 https://tailscale.com/download/windows 。如果安装时出现下面的提示,说明系统依赖服务 iphlpsvc 被禁用了。

这时用管理员 PowerShell 执行:

Set-Service -Name iphlpsvc -StartupType Automatic
Start-Service -Name iphlpsvc
Get-Service -Name iphlpsvc

执行成功后,应该看到 StatusRunning

image

然后重新打开 Tailscale,登录你的账号。登录成功后,Windows 端会加入你的 tailnet。

第 2 步:在 VPS 上安装 Tailscale

登录 VPS 的 VNC 终端,执行下面两条命令:

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --ssh

说明:

  • 第一条命令用于安装 Tailscale。
  • 第二条命令用于启动 Tailscale,并开启 Tailscale SSH 支持。

执行后,终端通常会返回一个登录链接。你只需要在本地浏览器中打开这个链接并授权即可。

第 3 步:获取 VPS 的 Tailscale 内网 IP

在 VPS 上执行:

tailscale ip -4
tailscale status

如果一切正常,你会看到:

  • VPS 获得了一个 100.x.x.x 地址。
  • Windows 和 Linux 两台设备都在同一个 tailnet 中。

这次实际拿到的 VPS 地址是 100.x.x.x

第 4 步:从本地通过 Tailscale SSH 连接 VPS

此时不要再用公网 IP:

ssh [email protected]

改成直接连接 Tailscale 地址:

ssh [email protected]

也就是用下图这个新ip, https://login.tailscale.com/admin/machines

image

连接成功后,你会直接进入 VPS Shell,说明问题已经被绕开了。

第 5 步:在管理后台确认两台设备都在线

你还可以登录 Tailscale 管理后台确认状态。如果看到 Windows 和 VPS 都是 Connected ,说明这条私有链路已经建立成功。

常用命令汇总

Windows

检查 Tailscale 是否在线:

tailscale status

使用内网地址 SSH:

ssh [email protected]

Ubuntu VPS

查看 Tailscale 状态:

tailscale status

查看 Tailscale IPv4 地址:

tailscale ip -4

确保服务开机自启:

sudo systemctl enable tailscaled
sudo systemctl start tailscaled

开机自启建议

Windows

如果你以后要长期通过 Tailscale 登录 VPS,建议把 Windows 客户端设置为开机自动运行,并启用 Run unattended 。这样重启电脑后也不用每次手动重新登录。

Ubuntu VPS

Ubuntu 侧通常在安装后就会以服务方式运行,但仍建议执行一次:

sudo systemctl enable tailscaled

这套方案会不会影响 VPS 上原有项目

通常不会。

原因很简单:

  • Tailscale 只是给服务器增加了一条额外的私有网络路径。
  • 它不会直接修改你原来的 Web 服务、数据库服务或项目进程。
  • 只要你不主动去改现有防火墙、Nginx、Docker、应用端口,这套方案对原有业务基本是无侵入的。

更稳妥的做法是:

  1. 先保持原有公网配置不动。
  2. 先验证 Tailscale SSH 可以稳定登录。
  3. 确认业务正常后,再决定是否收紧公网 SSH 入口。

使用这套方案时要记住的一点

如果你以后使用的是 Tailscale 内网地址登录 VPS,那么:

  • 本地电脑的 Tailscale 需要在线。
  • VPS 的 Tailscale 也需要在线。

也就是说,你连接的是:

你的电脑 -> Tailscale 私有网络 -> VPS

而不是:

你的电脑 -> 公网 SSH -> VPS

推荐的后续优化

在确认 Tailscale 连接稳定后,可以继续做这些安全优化:

  1. 禁用 root 密码登录。
  2. 改为普通用户 + SSH Key 登录。
  3. 只保留 Tailscale 访问 SSH,不再对公网开放 SSH 端口。

结论

这次问题的本质不是 VPS 挂掉,也不是 SSH 没启动,而是公网路径不稳定(可能是移动的问题,因为我用其他网络成功连接了),导致本地设备很难稳定完成 SSH 握手。通过给本地电脑和 VPS 同时安装 Tailscale ,我们成功绕开了这条异常公网链路,最终用内网地址稳定登录了 VPS。

在下是刚刚接触vps3天的新手小白,如果有更好的方法,欢迎各位佬支招!

0

评论区