s-blog

Tailscale 使用教程

ssssmy · 2026-05-28 · 5 min · 网络

Tailscale 使用教程

简介

Tailscale 是基于 WireGuard 协议的零配置 VPN 工具,可以将不同网络下的设备组成一个私有的虚拟局域网(Mesh 网络),无需公网 IP、无需端口映射,即可实现设备间的安全互联。

核心优势:

  • 零配置,开箱即用
  • 基于 WireGuard,性能强、安全性高
  • 支持 NAT 穿透,无需公网 IP
  • 免费套餐支持最多 100 台设备 / 3 个用户

安装

macOS

brew install tailscale

或从官网下载安装包直接安装。

Linux

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

Windows

从官网下载安装程序,安装后系统托盘会出现 Tailscale 图标。

iOS / Android

在 App Store 或 Google Play 搜索 Tailscale 安装。


快速开始

1. 注册账号

访问 https://tailscale.com,支持 Google、Microsoft、GitHub 账号登录,无需单独注册。

2. 启动并登录

macOS / Linux:

# 启动服务
sudo tailscale up

# 会输出一个登录链接,在浏览器中打开授权
# https://login.tailscale.com/a/xxxxxxxxxxxx

Linux 后台服务:

# 启用并启动服务
sudo systemctl enable --now tailscaled

# 登录
sudo tailscale up

3. 查看设备状态

# 查看当前设备的 Tailscale IP 和所有在线节点
tailscale status

输出示例:

100.64.0.1  my-macbook    [email protected]  macOS   active; direct 192.168.1.x:41641
100.64.0.2  my-server     [email protected]  linux   active; relay
100.64.0.3  my-iphone     [email protected]  iOS     -

常用命令

# 登录
tailscale up

# 登出
tailscale down

# 查看状态
tailscale status

# 查看本机 Tailscale IP
tailscale ip

# Ping 网络中的其他设备
tailscale ping <设备名或IP>

# 查看网络连接详情
tailscale netcheck

子网路由(Subnet Router)

将一台设备作为路由器,让网络中其他 Tailscale 设备访问该设备所在的局域网。

场景: 家里的 NAS 或服务器在局域网 192.168.1.0/24,希望在外网也能访问局域网内的其他设备。

开启子网路由

在需要作为路由器的设备上执行:

# 开启 IP 转发(Linux)
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

# 广播子网路由
sudo tailscale up --advertise-routes=192.168.1.0/24

在管理后台批准路由

登录 https://login.tailscale.com/admin/machines,找到该设备,点击 Edit route settings,启用对应的子网路由。

客户端接受路由

其他设备上执行:

sudo tailscale up --accept-routes

Exit Node(出口节点)

将某台设备设置为流量出口,让所有网络流量通过该设备转发(类似传统 VPN)。

设置 Exit Node

# 在作为出口的设备上
sudo tailscale up --advertise-exit-node

在管理后台批准该节点的 Exit Node 权限。

客户端使用 Exit Node

# 通过指定设备名或 IP 使用出口节点
sudo tailscale up --exit-node=<设备名或IP>

# 取消使用
sudo tailscale up --exit-node=

MagicDNS

Tailscale 内置 MagicDNS,可以用设备名直接访问,无需记 IP。

在管理后台 DNS 页面开启 MagicDNS 后,即可通过 设备名.域名 访问,例如:

ssh user@my-server
ping my-server

SSH 访问

Tailscale SSH 功能可以让你通过 Tailscale 网络直接 SSH 到其他设备,无需额外配置密钥。

# 在目标设备上开启 Tailscale SSH
sudo tailscale up --ssh

# 从其他设备连接
ssh user@<设备名或Tailscale IP>

在管理后台 Access Controls 页面可以配置 SSH 访问权限策略。


访问控制(ACL)

管理后台支持通过 HuJSON 格式配置精细的访问控制策略。

默认策略(所有设备互通):

{
  "acls": [
    {
      "action": "accept",
      "src": ["*"],
      "dst": ["*:*"]
    }
  ]
}

限制只有特定用户可以访问服务器的 22 端口:

{
  "acls": [
    {
      "action": "accept",
      "src": ["[email protected]"],
      "dst": ["tag:server:22"]
    }
  ]
}

常见问题

连接方式:Direct vs Relay

  • Direct(直连):设备之间直接建立 P2P 连接,延迟低,速度快
  • Relay(中继):通过 Tailscale 的 DERP 中继服务器转发,延迟较高

当两台设备都在严格 NAT 后面无法直连时,会自动降级为 Relay。可以用 tailscale netcheck 诊断网络连通性。

查看连接诊断

tailscale netcheck
tailscale bugreport

Linux 开机自启

sudo systemctl enable tailscaled

管理后台

原文链接:https://www.ssssmy.com/notes/tailscale-shi-yong-jiao-cheng