用 Tailscale 搭建 VPS 内网穿透:免公网 IP 也能远程连接

概述

你有两台 VPS,一台在国内,一台在海外。想从 A 连 B 的 SSH,但 B 没有公网 IP,或者防火墙把 22 端口封了。怎么办?

Tailscale 能帮你解决这个问题。它通过 WireGuard 协议建立加密隧道,把不同网络下的设备组成一个私有局域网。不需要公网 IP,不需要路由器配置端口转发,装好就能用。

下面手把手教你在 VPS 上部署 Tailscale。

准备工作

你需要这些条件:

  • 至少一台 VPS(推荐 Ubuntu 20.04 或更高版本)
  • 一个 Tailscale 账号(用 Google、GitHub 或 Microsoft 账号登录即可,免费)
  • 能访问外网的网络连接

步骤

第一步:安装 Tailscale

Ubuntu/Debian 系统最方便:

# 添加 Tailscale 官方源
curl -fsSL https://tailscale.com/install.sh | sh

# 启动 Tailscale 服务
sudo systemctl enable --now tailscaled

CentOS/RHEL 系统:

sudo yum install -y https://pkgs.tailscale.com/stable/tailscale.x86_64.rpm
sudo yum install -y tailscale
sudo systemctl enable --now tailscaled

第二步:登录并加入 Tailnet

# 执行登录命令,会输出一个 URL
sudo tailscale up

# 在浏览器中打开那个 URL,用你的账号授权
# 授权后终端会显示 "Success!"

登录成功后,你会得到一个 xxx.tailxxxxx.ts.net 的后缀域名。这就是你在 Tailnet 中的地址。

第三步:验证连接

# 查看当前节点状态
tailscale status

# 测试连通性(假设另一台机器叫 server-b)
ping server-b.tailxxxxx.ts.net

如果看到回复,说明连接成功。

第四步:多台 VPS 组网

重复第一步和第二步,在所有你想组网的 VPS 上都安装并登录 Tailscale。它们会自动出现在同一个 Tailnet 里。

# 在所有机器上执行 tailscale status
# 你会看到所有已登录的设备列表
tailscale status

第五步:通过 Tailnet 地址访问服务

现在你可以直接用 Tailnet 地址访问任何一台机器的服务了。

SSH 连接:

ssh root@server-a.tailxxxxx.ts.net

访问 Web 面板:

# 浏览器访问
http://server-b.tailxxxxx.ts.net:3001

访问数据库:

# MySQL
mysql -h server-c.tailxxxxx.ts.net -u root -P 3306

# Redis
redis-cli -h server-d.tailxxxxx.ts.net -p 6379

第六步:配置子网路由(可选)

如果你想让 Tailnet 里的设备还能访问你 VPS 所在内网的其他机器:

# 在 VPS 上设置子网路由
sudo tailscale up --advertise-routes=192.168.1.0/24

# 在管理后台开启路由权限
# 访问 https://login.tailscale.com/admin/acls
# 确保 subnet-routes 已启用

第七步:设置开机自启

Tailscale 安装时默认就开启了自启。确认一下:

systemctl is-enabled tailscaled
systemctl is-active tailscaled

验证

部署完成后做以下检查:

  1. 节点在线 运行 tailscale status,能看到其他已登录的节点
  2. SSH 直连ssh user@hostname.tailxxxxx.ts.net 直接连上另一台 VPS,不需要跳板机
  3. 服务互通 在内网服务(如 Docker 容器、本地数据库)配置监听 0.0.0.0,Tailnet 其他机器可以直接访问
  4. 加密传输 运行 tailscale debug,确认连接使用的是 WireGuard 加密隧道

常见问题

Q: Tailscale 免费版有限制吗?

免费版支持最多 100 个设备和 200 个子网路由。对个人和小团队完全够用。企业版才需要付费。

Q: 延迟高吗?

取决于你的地理位置。如果两台 VPS 都在国内,延迟通常在 5-20ms。跨洋连接一般在 100-200ms。Tailscale 会自动选择最优的中继节点。

Q: 安全吗?

非常安全。所有流量都经过 WireGuard 加密,只有你授权的设备才能加入 Tailnet。即使有人截获了数据包,也无法解密内容。

Q: 能替代 VPN 吗?

对于点对点组网场景可以。但如果需要访问公司内网的多个网段,还是传统 VPN 更合适。

Q: 国内能用吗?

能。Tailscale 在中国有中继服务器,连接速度比走海外节点快很多。如果偶尔不稳定,可以尝试指定中继服务器:

sudo tailscale up --advertise-relay=false

Q: 怎么退出 Tailnet?

sudo tailscale down

这会断开当前设备的连接,但不会删除你的账号。


Tailscale 就是这样,装好、登录、组网,三步搞定。没有复杂的配置,没有端口映射的烦恼。你的 VPS 们瞬间组成了一个安全的内网。

试试把你那台吃灰的旧 VPS 也加进来?

这篇文章对你有帮助吗?