Ubuntu 22.04 安装 Tailscale 指南

在 Ubuntu 22.04 服务器上从零安装、配置、验证并卸载 Tailscale(WireGuard 组网 VPN)的完整指南,覆盖官方脚本与 apt 源两种安装方案。

TailscaleTailscale安装部署Ubuntu 22.04运维2026/10/09

Ubuntu 22.04 安装 Tailscale 指南

目标:在 Ubuntu 22.04 服务器上从零安装并启动 Tailscale(基于 WireGuard 的零配置组网 VPN),完成登录认证、验证连通与卸载清理。指南命令与回显均在 Ubuntu 22.04 实测通过,Tailscale 版本 1.104.1。

一、环境信息

项值
操作系统Ubuntu 22.04.5 LTS(x86_64,Linux 5.15 内核)
架构amd64
安装方式官方安装脚本 / 官方 apt 仓库
安装版本Tailscale 1.104.1(tailscaled + tailscale CLI)
默认端口UDP 41641(可在 /etc/default/tailscaled 中配置)
状态文件/var/lib/tailscale/tailscaled.state
配置目录/etc/tailscale/(syspolicy.json)
系统服务tailscaled.service(systemd)

💡 说明:Tailscale 官方仓库自带了 tailscaled 守护进程所需的完整依赖(iptables、iproute2、netfilter 相关内核模块头等),无需额外手工安装。

二、前置条件

  1. 一台可联网的 Ubuntu 22.04 服务器,具备 root 权限(本文以 root 账号执行)。
  2. 内核支持 TUN 设备,存在 /dev/net/tun,且 netfilter/iptables 可用(Tailscale 建立隧道与做 NAT 转发依赖它们)。
  3. 一个 Tailscale 账号(个人邮箱注册或企业 SSO),用于登录认证(tailscale up 时需要)。
  4. 防火墙/安全组需放行:控制面(默认 https://controlplane.tailscale.com)、DERP 中继与 Peer-to-Peer 的 UDP 流量(默认动态端口,通常通过 DERP/TURN 打洞完成,一般无需额外放行)。

⚠️ 注意:若服务器位于内网且无法直连控制面,需要能访问 https 出站。离线/隔离网络部署属进阶场景,需借助 tailscaled --state 指定状态文件并预置登录态等方式实现;相关参数可用 tailscaled --help 查看,详细说明见《配置参数详解》篇。

三、版本选型说明

  • Tailscale 客户端(tailscaled + tailscale CLI):由官方「Tailscale 软件仓库」随系统一起维护,执行 apt upgrade 即可随仓库更新,是最稳妥的长期维护方式。
  • 版本策略:Tailscale 采用「当前稳定版本」+ 定期的版本更新节奏。官方 apt 仓库默认跟踪当前稳定线,无需手工锁定版本;若需固定版本,可用 apt install tailscale=1.104.1 锁定。
  • 发行对应:Ubuntu 22.04 通过 Tailscale 官方仓库的 jammy 源提供 tailscale 与 tailscale-archive-keyring 两个包,前者是主程序,后者是 GPG 签名密钥。
  • 足够用即无需自建控制面:开源版 Headscale 可自建控制服务器,但官方 Tailscale 控制面开箱即用,个人/企业小规模直接使用官方即可。
  • 版本确认命令(安装后执行):
tailscale version
tailscaled --version

实测回显(Tailscale 1.104.1):

1.104.1
  tailscale commit: 7f4efe814ff14b064eb080344389ceb9ea2d37ac
  long version: 1.104.1-t7f4efe814-g8da26756c
  other commit: 8da26756c9a2af700dfd05fa38d21b1eef2bcaa2
  go version: go1.27.1 (tailscale/go 24ee2fd061)

四、安装方案 A:官方安装脚本(在线,推荐)

一键脚本会自动识别系统并添加官方 apt 源、安装 keyring 与 Tailscale 包,适合绝大多数场景。

4.1 下载并执行安装脚本

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

实测回显(节选,安装过程较长,此处截取关键部分):

Selecting previously unselected package iptables.
Preparing to unpack .../16-iptables_1.8.7-1ubuntu5.2_amd64.deb ...
Unpacking iptables (1.8.7-1ubuntu5.2) ...
Selecting previously unselected package tailscale.
Preparing to unpack .../17-tailscale_1.104.1_amd64.deb ...
Unpacking tailscale (1.104.1) ...
Setting up iptables (1.8.7-1ubuntu5.2) ...
update-alternatives: using /usr/sbin/iptables-legacy to provide /usr/sbin/iptables (iptables) in auto mode
update-alternatives: using /usr/sbin/iptables-nft to provide /usr/sbin/iptables (iptables) in auto mode
Setting up tailscale-archive-keyring (1.35.181) ...
Setting up tailscale (1.104.1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.15) ...
+ [ false = true ]
+ set +x
Installation complete! Log in to start using Tailscale by running:

tailscale up

💡 说明:脚本用内联 curl 管道执行,等价于「添加 Tailscale 官方 apt 源(如 deb https://pkgs.tailscale.com/stable/ubuntu jammy main)+ 安装 tailscale-archive-keyring + apt install tailscale」三步;已装过旧版时脚本会将其升级到最新。

4.2 安装后检查服务

systemctl is-enabled tailscaled
systemctl is-active tailscaled
systemctl status tailscaled --no-pager

⚠️ 注意:以上 systemd 命令需在具备 systemd 的 Ubuntu 真机上执行(官方 install.sh 会自动 systemctl enable --now tailscaled)。若在无 systemd 的极简初始化环境(如 initramfs),需手动拉起 tailscaled 进程(见「五、方案 B」后的补充说明)。

五、安装方案 B:Tailscale apt 源安装

该方案手动添加官方 apt 源再安装,便于理解、离线缓存、与锁定版本。需要时可完全替代方案 A。

5.1 添加官方 GPG 密钥与源

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | \
  sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | \
  sudo tee /etc/apt/sources.list.d/tailscale.list

💡 说明:适配 Ubuntu 22.04 的 codename 为 jammy。密钥与源两者配套,缺一不可;安装完 keyring 后亦可复用官方 install.sh 再安装。

5.2 刷新索引并安装

sudo apt-get update
sudo apt-get install -y tailscale

实测回显(关键部分,安装的是 1.104.1):

Setting up tailscale-archive-keyring (1.35.181) ...
Setting up tailscale (1.104.1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.15) ...

5.3 启动 tailscaled 服务

sudo systemctl enable --now tailscaled
sudo systemctl is-active tailscaled

⚠️ 注意:同样需要 systemd 真机。若环境无 systemd,可直接前台/后台启动守护进程:

sudo tailscaled --state=/var/lib/tailscale/tailscaled.state &

六、配置说明

Tailscale 的核心配置集中在三处,安装完即可登录使用,绝大多数场景无需改动:

  1. /etc/default/tailscaled:tailscaled 系统级配置(端口、附加启动参数)。默认内容为:
# 供外部连接的 UDP 端口。远端节点会自动感知此端口,主要用于固定防火墙白名单场景。
PORT="41641"

# 想传递给 tailscaled 的附加启动参数。
FLAGS=""
  1. 登录态/节点密钥:/var/lib/tailscale/tailscaled.state(由 tailscale up 生成,勿删除)。
  2. 运行期偏好(是否接受路由、是否作为 exit node、hostname 等):通过 tailscale up/tailscale set 命令设置,持久化于状态文件。完整参数表见《配置参数详解》篇。

💡 说明:Tailscale 的参数可随时用 tailscale up --help / tailscale set --help / tailscaled --help 查看各参数的用法与默认值,无需依赖他篇。tailscale up 登录前,守护进程处于 NeedsLogin 状态,任何组网流量都不放通,属于安全默认。

七、登录与验证

7.1 登录认证(tailscale up)

sudo tailscale up

首次运行时需浏览器控制台认证。实测回显:

To authenticate, visit:

        https://login.tailscale.com/a/651224501c5f1

⚠️ 注意:在无浏览器/无网络控制台交互的服务器上,无法自动完成登录,需人工打开上述 URL 并点击授权。生产环境可用 --auth-key 预置认证密钥实现无人值守(详见《配置参数详解》)。

认证通过后无需重启即可进入 Running 状态。

7.2 未登录态下的状态检查(tailscale status / ip)

登录认证是外部账号交互行为,无法在纯命令行自动完成;但未登录时仍可用 status/ip 观察守护进程状态。实测回显:

tailscale status
Logged out.
Log in at: https://login.tailscale.com/a/651224501c5f1
tailscale ip
no current Tailscale IPs; state: NeedsLogin
tailscale status --json | head -n 30
{
  "Version": "1.104.1-t7f4efe814-g8da26756c",
  "TUN": true,
  "BackendState": "NeedsLogin",
  "AuthURL": "https://login.tailscale.com/a/651224501c5f1",
  "TailscaleIPs": null,
  "Self": {
    "ID": "",
    "NodeID": 0,
    "HostName": "1a3c6f4744a0",
    "DNSName": "",
    "OS": "linux",
    "TailscaleIPs": null,
    "Addrs": [],
    "Relay": "",
    "RxBytes": 0,
    "TxBytes": 0,
    "LastSeen": "0001-01-01T00:00:00Z",
    "Online": false
  }
}

💡 说明:TUN: true 表示 TUN 设备已就绪;BackendState: NeedsLogin 表示只差登录认证。完成 7.1 认证后 status 会列出本机 IP(100.x.y.z)与所有 peer 节点。

7.3 网络连通性自检(tailscale netcheck)

登录认证前即可运行,用于确认服务器网络到 Tailscale 控制面与 DERP 中继的连通性。实测回显(节选):

Report:
        * Time: 2026-10-09 03:56:18.575843462Z
        * UDP: true
        * IPv4: yes, 42.63.89.89:25019
        * IPv6: no, but OS has support
        * MappingVariesByDestIP: false
        * CaptivePortal: false
        * Nearest DERP: Hong Kong
        * DERP latency:
                - hkg: 115.2ms (Hong Kong)
                - sfo: 182.9ms (San Francisco)

💡 说明:Nearest DERP: Hong Kong、hkg: 115.2ms 表示该服务器到香港中继节点延迟 115.2ms,链路正常。

7.4 登录后常用验证命令

tailscale status                      # 查看本机与所有 peer
tailscale ip -4                       # 查看本机 Tailscale IPv4(100.x.y.z)
tailscale ping <对端主机名或IP>        # 在 Tailscale 层 ping 对端,验证隧道

这三个命令的部分回显见《常用 CLI 命令与工具详解》,登录认证后会输出真实 IP 与 peer 列表。

八、常见问题(FAQ)

Q1:安装脚本报 curl: (28) Connection timed out,装不上怎么办? 多为网络到 tailscale.com/pkgs.tailscale.com 出站受限。可改走代理:export https_proxy=http://<代理IP>:<端口> 后再执行 curl -fsSL ... | sh;或先手工添加 apt 源(方案 B)再重试 apt-get update。离线服务器可把 .deb 包下载后 dpkg -i 离线安装。

Q2:tailscale status 输出 failed to connect to local tailscaled? 说明守护进程没起来。真机执行 sudo systemctl enable --now tailscaled 后再看;若仍报,检查 /var/run/tailscale 目录与 socket 权限(ls -l /var/run/tailscale/tailscaled.sock)。

Q3:tailscale up 后一直停在 NeedsLogin? 意味着尚未完成浏览器控制台授权。认真打开回显中的 https://login.tailscale.com/a/xxxx 完成登录即可。若是 SSH 远程操作,注意在授权后会话不要被误断。

Q4:如何固定机器在组网中的名字? tailscale up --hostname=<自定义名> 即可。若不指定,默认用机器 hostname。

Q5:想让这台服务器作为子网路由器/出口节点(exit node)? sudo tailscale up --advertise-routes=10.0.0.0/8,192.168.0.0/24 --advertise-exit-node,并在后台开启 IP 转发(见《配置参数详解》中的生产模板)。注意仅当确有此类组网需求时再开启,避免广播不必要的路由。

九、卸载与清理

  1. 先退出组网:
sudo tailscale down
  1. 停用并禁用服务:
sudo systemctl disable --now tailscaled
  1. 卸载软件包(保持 keyring,方便日后重装):
sudo apt-get remove -y tailscale
  1. 彻底清理(连同 keyring 与数据一起移除,仅当确定不再使用):
sudo apt-get purge -y tailscale tailscale-archive-keyring
sudo rm -f /usr/share/keyrings/tailscale-archive-keyring.gpg /etc/apt/sources.list.d/tailscale.list
sudo rm -rf /var/lib/tailscale /var/run/tailscale

💡 说明:一旦 purge 并删除 /var/lib/tailscale/tailscaled.state,该节点在控制台将失效成为「过期节点」,重装后需重新登录。

十、参考链接

Ubuntu 22.04 安装 Tailscale 指南 - Quzuo