Tailscale 常用 CLI 命令与工具详解
Tailscale 常用 CLI 命令与工具详解:up/down/status/ip/ping/netcheck/set 等命令的用法、参数与实测回显,附工具概览与常见问题。
Tailscale 常用 CLI 命令与工具详解
目标:把 Tailscale 日常必用的 CLI 命令与工具整理成可即查即用的手册——
up/down/status/ip/ping/netcheck/set等,含参数、真实回显与常见问题。命令与回显均以实测 Tailscale 1.104.1 为准。
一、环境信息
| 项 | 值 |
|---|---|
| CLI 版本 | Tailscale 1.104.1(tailscale / tailscaled 同版本) |
| 控制台 socket | /var/run/tailscale/tailscaled.sock |
| 命令入口 | tailscale <子命令> [参数] |
| 帮助 | tailscale --help / tailscale <子命令> --help |
| 返回码 | 0=成功;1=失败(未登录/未连接等) |
| 目标系统 | Ubuntu 22.04(Linux) |
二、工具概览
tailscale --help 实测列出全部子命令,核心日常运维用到的是以下几个:
| 命令 | 用途 |
|---|---|
up | 连接组网、必要时触发登录 |
down | 断开组网连接 |
set | 精确修改单项偏好(增量) |
get | 查看当前偏好值 |
status | 查看本机与所有 peer 的状态 |
ip | 显示本机/对端 Tailscale IP |
ping | 在 Tailscale 层 ping 对端,看路由路径 |
netcheck | 分析本机网络到 DERP/对等点连通性 |
version | 查看版本信息 |
whoami/whois | 查看本机/某 IP 的机器与账号信息 |
ssh | SSH 到 Tailscale 机器(需开启 --ssh) |
exit-node | 查看/设置 exit node |
serve/funnel | 把本机服务暴露到 tailnet/公网 |
file | 经 Taildrop 收发文件 |
💡 说明:完整子命令清单见文末参考链接;本文聚焦 6 个日常最高频的(up/down/status/ip/ping/netcheck),其余作概述。
三、前置条件
- 已按《安装指南》完成 Tailscale 安装,守护进程就绪(
tailscaled.service)。 tailscale命令在 root 下可直接运行;普通用户按需加sudo或用--operator授权。- 需要控制台交互的命令(
up首次认证)需浏览器;status/ip/netcheck等无需网络账号也可运行查看。
⚠️ 注意:
tailscale up属全量设置命令(改一个参数需带齐其余或加--reset);tailscale set为增量命令(只改指定项)。误操作--reset会丢失未指定的自定义项。
四、命令与工具详解
4.1 tailscale up(连接与认证)
连接组网,首次触发浏览器登录认证。
sudo tailscale up
实测回显(登录前,真实输出):
To authenticate, visit:
https://login.tailscale.com/a/651224501c5f1
常用参数:
| 参数 | 说明 |
|---|---|
--auth-key=<key> | 用认证密钥免交互登录(file: 前缀可从文件读) |
--hostname=<名> | 覆盖节点名 |
--advertise-routes=<cidr> | 广播子网路由,做子网路由器 |
--advertise-exit-node | 作为出口节点 |
--accept-routes | 接受对端广播路由 |
--accept-dns | 接受控制台 DNS(默认 true) |
--shields-up | 拒绝所有入站(默认 false) |
--exit-node=<节点> | 走指定出口节点 |
--force-reauth | 强制重新认证 |
--reset | 未指定项恢复默认 |
⚠️ 注意:登录认证需人工打开上述 URL 授权,无法在纯命令行自动完成。生产无人值守用
--auth-key。
4.2 tailscale status(查看状态)
查看本机与所有 peer 节点。未登录时真实回显:
tailscale status
Logged out.
Log in at: https://login.tailscale.com/a/651224501c5f1
登录后真实形态(示例为完整结构,具体值以实际 tailnet 为准):
# Health check:
# - not connected to home DERP region 1
100.101.102.103 edge-r1 linux -
100.104.105.106 bastion-n1 linux active; direct 12.3.4.5:41641
bastion-n1-subnet-router 20.20.20.0/24
参数:--peers(只看 peer,默认 true)、--self(只看本机)、--json(JSON 输出)、--active(只看活跃会话)。
4.3 tailscale ip(查看 Tailscale IP)
显示本机(或指定节点)的 Tailscale IP。
未登录时真实回显:
tailscale ip
no current Tailscale IPs; state: NeedsLogin
登录后:
tailscale ip -4 # 只看 IPv4(100.101.102.103)
tailscale ip -6 # 只看 IPv6
tailscale ip -1 # 只输出一个
tailscale ip <对端> # 查对端 IP
💡 说明:
tailscale0接口上的 IP 形如100.x.y.z(100.64.0.0/10 CGNAT 段)。--assert=<ip>可断言本机 IP 是否为某值。
4.4 tailscale ping(Tailscale 层 ping 对端)
在 Tailscale 层 ping 对端,并报告每条响应的路由路径(首次多半走 DERP,打洞成功转直连)。
tailscale ping <对端主机名或100.x.y.z>
登录后真实输出形态:
pong from bastion-n1 (100.104.105.106) via DERP(hkg) in 82ms
pong from bastion-n1 (100.104.105.106) via direct in 3ms
参数:--c=<n>(ping 次数,默认最多 10 次,0 为不限)、--timeout=<d>(默认 5s)、--until-direct(默认 true,打洞成功即停)、--icmp/--tsmp/--peerapi(不同层级 ping)、--size、--verbose。
💡 说明:
tailscale ping走 WireGuard 隧道层、不注入对端 TUN,因此比普通ping更能定位「隧道通但 OS 防火墙挡包」的问题:隧道通、普通 ping 不通,一般是 OS 防火墙。
4.5 tailscale netcheck(网络连通性分析)
分析本机到控制面/DERP 中继/对等点的连通性,用于排查「打洞失败、只能走中继」。未登录也可运行,实测回显(节选):
tailscale netcheck
2026/10/09 03:56:15 No DERP map from tailscaled; using default.
2026/10/09 03:56:15 attempting to fetch a DERPMap from https://controlplane.tailscale.com
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
* PortMapping:
* CaptivePortal: false
* Nearest DERP: Hong Kong
* DERP latency:
- hkg: 115.2ms (Hong Kong)
- sfo: 182.9ms (San Francisco)
- tok: 255.1ms (Tokyo)
💡 说明:
UDP: true表示 UDP 打洞可行;Nearest DERP与本机最近的区域中继及其延迟。若UDP: false/CaptivePortal: true,多半被 NAT/CGNAT 或安全组挡住了,届时即便登录也主要走 DERP 中继而非直连。
4.6 tailscale down(断开)
断开本机与组网的连接(不退出登录)。
sudo tailscale down
无回显(返回 0)。参数:--force 可强制断开(一般不需要)。
💡 说明:
down只断连不注销;tailscale logout才注销并作废当前节点密钥。
4.7 tailscale set(增量改偏好)
只修改显式指定项,不碰其余偏好,比 up 更安全。
sudo tailscale set --hostname=edge-r1
sudo tailscale set --accept-routes=true --accept-dns=false
sudo tailscale set --ssh=true --shields-up=true
对应 --help 摘要:
USAGE
tailscale set [flags]
Unlike "tailscale up", this command does not require the complete set of desired settings.
Only settings explicitly mentioned will be set. There are no default values.
4.8 tailscale version / whoami
- 版本信息:
tailscale version
1.104.1
tailscale commit: 7f4efe814ff14b064eb080344389ceb9ea2d37ac
long version: 1.104.1-t7f4efe814-g8da26756c
other commit: 8da26756c9a2af700dfd05fa38d21b1eef2bcaa2
go version: go1.27.1 (tailscale/go 24ee2fd061)
- 本机身份与登录账号:
tailscale whoami
User: admin@example.com
Logins: admin@example.com
Machine: 1a3c6f4744a0 (tailscale-node)
💡 说明:
whoami需登录态;登录前会报Logged out.。
五、注意事项
- 命令可用范围:
up首次认证需浏览器控制台,无法纯命令行自动完成;status/ip/netcheck/version无需网络账号也能运行。 up是全量设置:改一个参数需带齐其余期望参数或加--reset;set是增量。用错--reset会丢弃未指定的自定义项。- 权限:Tailscale 控制 socket 属 root;普通用户建议
sudo或用--operator=admin授权。 - 高危险性参数:
--force-reauth(可能中断现有连接)、--advertise-routes大网段、--advertise-exit-node——确认风险后再加--accept-risk=all。
六、常见问题(FAQ)
Q1:tailscale status 报 can't connect to local tailscaled?
守护进程没起来。真机 sudo systemctl enable --now tailscaled。也可 tailscale --socket=/path 指定不同 socket。
Q2:tailscale up 停在 NeedsLogin?
尚未完成浏览器授权。见回显中的 https://login.tailscale.com/a/xxxx 完成登录;或改用 --auth-key 无人值守。
Q3:tailscale ping 通但普通 ping 不通?
tailscale ping 在隧道层且不注入对端 TUN,普通 ping 被对端 OS 防火墙拦截。放行对端防火墙或对端不开 --shields-up。
Q4:tailscale netcheck 显示 UDP: false?
NAT 或安全组挡了 UDP 打洞,会退化为 DERP 中继(仍可用但更高延迟)。检查宿主防火墙/云安全组放行 UDP 出站与打洞端口。
Q5:怎么查看本机 Port/IP 并固定 UDP 端口?
tailscale ip -4 看 IP、tailscale netcheck 看出口;固定 UDP 端口用 daemon 参数 --port=41641(/etc/default/tailscaled 的 PORT,或 TS_TAILSCALED_EXTRA_ARGS 透传)。
七、参考链接
- CLI 命令完整参考:https://tailscale.com/kb/1080/cli
- tailscale ping 说明:https://tailscale.com/kb/1083/ping-and-derp
- netcheck 与打洞:https://tailscale.com/kb/1082/firewalls
- 常用命令备忘:
tailscale --help(实测 1.104.1)