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

**URL:** <https://idcflare.com/t/topic/74181>\
**Category:** 教程\
**Tags:** 服务器\
**Created:** [2026 年4 月 2 日 01:07 UTC](https://idcflare.com/t/topic/74181 "2026-04-02T01:07:09Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![bin0.o](https://idcflare.com/user_avatar/idcflare.com/bin0.o/32/41650_2.png) [@bin0.o](https://idcflare.com/u/bin0.o)\
**Post date:** [2026 年4 月 2 日 01:07 UTC](https://idcflare.com/t/topic/74181/1 "2026-04-02T01:07:10Z")

</div>

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

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

## 适用场景

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

- VPS 在线，`ping` 能通。
- 本地 `ssh root@公网IP` 或 `ssh -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](https://tailscale.com/download/windows)。如果安装时出现下面的提示，说明系统依赖服务 `iphlpsvc` 被禁用了。

这时用管理员 PowerShell 执行：

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

```

执行成功后，应该看到 `Status` 为 `Running`。

 ![image](https://idcflare.com/uploads/default/original/3X/c/a/ca98a15c6cb989e9ece1b703f2d8add8fe1f8079.png)

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

## 第 2 步：在 VPS 上安装 Tailscale

登录 VPS 的 VNC 终端，执行下面两条命令：

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

```

说明：

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

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

## 第 3 步：获取 VPS 的 Tailscale 内网 IP

在 VPS 上执行：

```bash
tailscale ip -4
tailscale status

```

如果一切正常，你会看到：

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

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

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

此时不要再用公网 IP：

```powershell
ssh root@72.xxxxxxxxx

```

改成直接连接 Tailscale 地址：

```powershell
ssh root@100.xxxxxxxxxx

```

也就是用下图这个新ip，[https://login.tailscale.com/admin/machines](https://login.tailscale.com/admin/machines)

 ![image](https://idcflare.com/uploads/default/original/3X/4/1/41beb6e9c831275e534e7318107b9c94d9fb69af.png)

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

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

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

## 常用命令汇总

### Windows

检查 Tailscale 是否在线：

```powershell
tailscale status

```

使用内网地址 SSH：

```powershell
ssh root@100.x.x.x

```

### Ubuntu VPS

查看 Tailscale 状态：

```bash
tailscale status

```

查看 Tailscale IPv4 地址：

```bash
tailscale ip -4

```

确保服务开机自启：

```bash
sudo systemctl enable tailscaled
sudo systemctl start tailscaled

```

## 开机自启建议

### Windows

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

### Ubuntu VPS

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

```bash
sudo systemctl enable tailscaled

```

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

通常不会。

原因很简单：

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

更稳妥的做法是：

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

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

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

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

也就是说，你连接的是：

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

```

而不是：

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

```

## 推荐的后续优化

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

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

## 结论

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

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

---

<div class="post-metadata">

**Author:** ![yqyan](https://idcflare.com/user_avatar/idcflare.com/yqyan/32/3375_2.png) [@yqyan](https://idcflare.com/u/yqyan)\
**Post date:** [2026 年4 月 2 日 01:32 UTC](https://idcflare.com/t/topic/74181/2 "2026-04-02T01:32:58Z")

</div>

感谢分享教程 🙏

---

<div class="post-metadata">

**Author:** ![SONY](https://idcflare.com/user_avatar/idcflare.com/sony/32/2299_2.png) [@SONY](https://idcflare.com/u/SONY)\
**Post date:** [2026 年4 月 2 日 01:39 UTC](https://idcflare.com/t/topic/74181/3 "2026-04-02T01:39:59Z")

</div>

谢谢大佬

---

<div class="post-metadata">

**Author:** ![bingdong](https://idcflare.com/letter_avatar/bingdong/32/6_22734026db12803ebb3e059622ac3534.png) [@bingdong](https://idcflare.com/u/bingdong)\
**Post date:** [2026 年4 月 2 日 02:14 UTC](https://idcflare.com/t/topic/74181/4 "2026-04-02T02:14:29Z")

</div>

感谢教程！

---

<div class="post-metadata">

**Author:** ![Luis](https://idcflare.com/user_avatar/idcflare.com/luis/32/247_2.png) [@Luis](https://idcflare.com/u/Luis)\
**Post date:** [2026 年4 月 2 日 06:07 UTC](https://idcflare.com/t/topic/74181/5 "2026-04-02T06:07:04Z")

</div>

这操作太强了\[1\]！ 感谢分享教程！ 🥰

* * *

1. 简直像是打开了我的脑袋

---

<div class="post-metadata">

**Author:** ![nero](https://idcflare.com/user_avatar/idcflare.com/nero/32/714_2.png) [@nero](https://idcflare.com/u/nero)\
**Post date:** [2026 年4 月 2 日 06:11 UTC](https://idcflare.com/t/topic/74181/6 "2026-04-02T06:11:21Z")

</div>

感谢分享 🫰

---

<div class="post-metadata">

**Author:** ![iouvps](https://idcflare.com/user_avatar/idcflare.com/iouvps/32/974_2.png) [@iouvps](https://idcflare.com/u/iouvps)\
**Post date:** [2026 年4 月 2 日 08:49 UTC](https://idcflare.com/t/topic/74181/7 "2026-04-02T08:49:13Z")

</div>

感谢分享，点赞收藏回复一条龙

---

<div class="post-metadata">

**Author:** ![an1xing](https://idcflare.com/user_avatar/idcflare.com/an1xing/32/10465_2.png) [@an1xing](https://idcflare.com/u/an1xing)\
**Post date:** [2026 年4 月 2 日 12:05 UTC](https://idcflare.com/t/topic/74181/8 "2026-04-02T12:05:53Z")

</div>

不错不错

---

<div class="post-metadata">

**Author:** ![listen11](https://idcflare.com/user_avatar/idcflare.com/listen11/32/9940_2.png) [@listen11](https://idcflare.com/u/listen11)\
**Post date:** [2026 年4 月 6 日 00:01 UTC](https://idcflare.com/t/topic/74181/9 "2026-04-06T00:01:08Z")

</div>

感谢分享教程

---

<div class="post-metadata">

**Author:** ![George](https://idcflare.com/user_avatar/idcflare.com/george/32/4097_2.png) [@George](https://idcflare.com/u/George)\
**Post date:** [2026 年4 月 6 日 04:58 UTC](https://idcflare.com/t/topic/74181/10 "2026-04-06T04:58:08Z")

</div>

感谢佬教程~

---

<div class="post-metadata">

**Author:** ![OYeah](https://idcflare.com/user_avatar/idcflare.com/oyeah/32/44091_2.png) [@OYeah](https://idcflare.com/u/OYeah)\
**Post date:** [2026 年4 月 6 日 06:21 UTC](https://idcflare.com/t/topic/74181/11 "2026-04-06T06:21:41Z")

</div>

谢谢分享

---

<div class="post-metadata">

**Author:** ![wis](https://idcflare.com/letter_avatar/wis/32/6_22734026db12803ebb3e059622ac3534.png) [@wis](https://idcflare.com/u/wis)\
**Post date:** [2026 年4 月 6 日 07:11 UTC](https://idcflare.com/t/topic/74181/12 "2026-04-06T07:11:55Z")

</div>

感谢佬分享

---

<div class="post-metadata">

**Author:** ![murong2026](https://idcflare.com/letter_avatar/murong2026/32/6_22734026db12803ebb3e059622ac3534.png) [@murong2026](https://idcflare.com/u/murong2026)\
**Post date:** [2026 年4 月 6 日 08:42 UTC](https://idcflare.com/t/topic/74181/13 "2026-04-06T08:42:19Z")

</div>

版里之前推荐过自助easytier，Tailscale算是商业方案

---

<div class="post-metadata">

**Author:** ![Termux](https://idcflare.com/letter_avatar/termux/32/6_22734026db12803ebb3e059622ac3534.png) [@Termux](https://idcflare.com/u/Termux)\
**Post date:** [2026 年4 月 6 日 16:31 UTC](https://idcflare.com/t/topic/74181/14 "2026-04-06T16:31:10Z")

</div>

受益匪浅，有时间了就参照你的文章自己动手试试

---

<div class="post-metadata">

**Author:** ![ShirimpNiko](https://idcflare.com/user_avatar/idcflare.com/shirimpniko/32/30630_2.png) [@ShirimpNiko](https://idcflare.com/u/ShirimpNiko)\
**Post date:** [2026 年4 月 8 日 02:39 UTC](https://idcflare.com/t/topic/74181/15 "2026-04-08T02:39:26Z")

</div>

有easytier的教程贴吗

---

<div class="post-metadata">

**Author:** ![wxxt](https://idcflare.com/user_avatar/idcflare.com/wxxt/32/5049_2.png) [@wxxt](https://idcflare.com/u/wxxt)\
**Post date:** [2026 年4 月 10 日 09:55 UTC](https://idcflare.com/t/topic/74181/16 "2026-04-10T09:55:07Z")

</div>

> [@bin0.o](#):
>
> 改成直接连接 Tailscale 地址：
> 
> ```auto
> ssh root@100.xxxxxxxxxx
> 
> ```

可以直接使用machine name哈

---

<div class="post-metadata">

**Author:** ![vague](https://idcflare.com/user_avatar/idcflare.com/vague/32/41440_2.png) [@vague](https://idcflare.com/u/vague)\
**Post date:** [2026 年4 月 13 日 11:51 UTC](https://idcflare.com/t/topic/74181/17 "2026-04-13T11:51:59Z")

</div>

谢谢佬！，我终于可以稳定连上了

---

<div class="post-metadata">

**Author:** ![Lable](https://idcflare.com/user_avatar/idcflare.com/lable/32/34841_2.png) [@Lable](https://idcflare.com/u/Lable)\
**Post date:** [2026 年4 月 16 日 09:54 UTC](https://idcflare.com/t/topic/74181/18 "2026-04-16T09:54:32Z")

</div>

下午racknerd一直超时，跟着教程解决了，感谢佬友
