Ubuntu 22.04 安装 Tailscale 指南
在 Ubuntu 22.04 服务器上从零安装、配置、验证并卸载 Tailscale(WireGuard 组网 VPN)的完整指南,覆盖官方脚本与 apt 源两种安装方案。
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 相关内核模块头等),无需额外手工安装。
二、前置条件
- 一台可联网的 Ubuntu 22.04 服务器,具备 root 权限(本文以
root账号执行)。 - 内核支持 TUN 设备,存在
/dev/net/tun,且 netfilter/iptables 可用(Tailscale 建立隧道与做 NAT 转发依赖它们)。 - 一个 Tailscale 账号(个人邮箱注册或企业 SSO),用于登录认证(
tailscale up时需要)。 - 防火墙/安全组需放行:控制面(默认
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 的核心配置集中在三处,安装完即可登录使用,绝大多数场景无需改动:
/etc/default/tailscaled:tailscaled 系统级配置(端口、附加启动参数)。默认内容为:
# 供外部连接的 UDP 端口。远端节点会自动感知此端口,主要用于固定防火墙白名单场景。
PORT="41641"
# 想传递给 tailscaled 的附加启动参数。
FLAGS=""
- 登录态/节点密钥:
/var/lib/tailscale/tailscaled.state(由 tailscale up 生成,勿删除)。 - 运行期偏好(是否接受路由、是否作为 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 转发(见《配置参数详解》中的生产模板)。注意仅当确有此类组网需求时再开启,避免广播不必要的路由。
九、卸载与清理
- 先退出组网:
sudo tailscale down
- 停用并禁用服务:
sudo systemctl disable --now tailscaled
- 卸载软件包(保持 keyring,方便日后重装):
sudo apt-get remove -y tailscale
- 彻底清理(连同 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,该节点在控制台将失效成为「过期节点」,重装后需重新登录。
十、参考链接
- Tailscale 官方下载与安装文档:https://tailscale.com/download/linux
- UBuntu 安装说明:https://tailscale.com/kb/1028/install-ubuntu
- 一键安装脚本源码:https://tailscale.com/install.sh
- 官方 apt 仓库:https://pkgs.tailscale.com/stable/ubuntu/
- tailscale up 登录说明:https://tailscale.com/kb/1071/up-access-logs