Tailscale 操作手册

7 分钟
本页目录

登录状态、节点路径、子网路由和访问策略分别验证。tailnet 内能 ping 到网关,不等于网关后面的业务端口可达;DERP 转发也不等于连接失败。

当前任务入口
节点不通 / 很慢身份与实际路径
访问内网网段发布、批准、接收
用出口节点上网默认出口与本地网络

先看客户端当前状态

身份与在线状态先确认

# 确认客户端与守护进程版本
tailscale version

选项以本机 help 为准;排障时记录版本便于解释平台差异。

# 查看本机与目标节点、用户和连接状态
tailscale status

找到 PEER_NAME;未登录先处理身份,不能直接进入路由发布。需要机器可读字段时另用 status --json。

# 取得本节点的 Tailscale IPv4 地址
tailscale ip -4

不是局域网地址;实际服务监听须覆盖该地址或相应通配地址。

路径探测与业务验证分开

# 探测到已核对节点的 Tailscale 路径
tailscale ping PEER_NAME

观察 direct / relay 及 RTT,初次走 relay 后可能转为 direct;成功仍需用实际协议访问目标端口。

# 读取本机 UDP、NAT 与 DERP 探测
tailscale netcheck

它是本机网络诊断,不是指定节点吞吐测试;与 status/ping 的实际路径对照。

# 在 Linux daemon 主机读取近期服务日志
journalctl -u tailscaled -b -n 100 --no-pager

非 systemd 平台用其客户端诊断入口;查登录、路由设置与网络切换的时间,而不是仅重启进程。

登录、断开和退出是不同动作

# 在需要登录或重新启用时启动连接流程
sudo tailscale up

按输出完成认证;已有非默认配置时读提示,不加 --reset 丢弃配置。临时断开选择 down;确需注销身份才用 logout,之后重新登录验证。

PEER_NAME 替换为目标。status/ping 中观察 direct 或 relay、地址和变化;netcheck 描述本机 UDP/NAT/DERP 探测,不替代目标应用测试。先使用目标 IP 与实际端口测试,再分离 MagicDNS;系统 getent 与直接问 100.100.100.100 也不是同一解析路径。wg show 不是用户态 Tailscale WireGuard 的通用诊断入口。

操作影响
tailscale up登录/启用;重复使用注意已有非默认选项
tailscale set ...修改指定偏好,不要求重列所有非默认项
tailscale down断开但保留登录身份
tailscale logout退出本机登录;不等于在管理后台删除节点记录

路由安装与策略授权互相独立

子网路由的生效条件 路由器发布 CIDR 管理员批准 客户端接收路由 策略 + 转发 + 回程

路由器:确认转发并发布网段

# 在子网路由器读取 IPv4 转发开关
sysctl net.ipv4.ip_forward

值 1 表示启用;IPv6 另查 sysctl net.ipv6.conf.all.forwarding。修改前记录旧值,以下仅示例 IPv4。

# 在已规划的 IPv4 子网路由器临时启用转发
sudo sysctl -w net.ipv4.ip_forward=1

持久化把相同键值写入专用 /etc/sysctl.d/ 文件并通过指定文件 sysctl -p 加载,避免重新加载无关系统参数。转发开关不提供访问授权。

# 在路由器发布其真实可达的网段
sudo tailscale set --advertise-routes=192.0.2.0/24

替换文档地址;此偏好替换发布列表,多网段用逗号列全。接着在管理台批准或核对 autoApprovers,并确认策略允许客户端到目标端口。

Linux 客户端:接收并验证

# 在需要访问该网段的 Linux 客户端接收路由
sudo tailscale set --accept-routes=true

这条在客户端执行,不是路由器上的下一步命令。用 ip route get TARGET_IP 核对选路,再请求目标业务;TARGET_IP 是网段内服务地址。

撤销时先评估仍在使用的网段:路由器把 advertise-routes 恢复为旧列表,客户端把 accept-routes 恢复为原值;仅当原来没有其他路由需求时才清空或关闭。转发设置也按原值恢复,并同步持久文件。

CIDR 替换为路由器真实可达的网段;设置 advertise-routes 会替换该偏好的网段列表,保留仍需发布的其他网段。转发按实际 IPv4/IPv6 需求持久化;管理台批准或 autoApprovers、客户端接收、策略允许缺一不可,路由存在也可能被过滤。Linux 客户端通常需显式 accept-routes,其他平台按文档默认值检查。

默认子网路由 SNAT 会让内网目标看到路由器源地址;关闭 SNAT 前建立返回 tailnet/远端子网的路由。HA 路由器不要机械接受自己也发布的相同网段。测试顺序是客户端路由、路由器转发、目标监听、返回包与策略;不要只测 tailscale ping。

出口节点改变互联网默认路径

出口节点先发布并获准

# 在具备转发与互联网出口的节点发布出口能力
sudo tailscale set --advertise-exit-node

先按子网路由器方式检查需要的 IPv4/IPv6 转发,再在管理台允许该节点作为出口,并核对使用者策略。

客户端选择出口,再验证外部请求

# 在客户端选择已批准的出口节点
sudo tailscale set --exit-node=EXIT_NODE_NAME

名称从 status/管理记录取得。用可信的外部 IP 查询服务与业务请求核对出口,并测试 DNS;本地 LAN 访问要单独评估 --exit-node-allow-lan-access=true。

# 客户端不再需要出口节点时取消选择
sudo tailscale set --exit-node=''

这是后续撤销步骤,不应紧接选择就执行。再次检查出口与 DNS 恢复到预期;此操作不停止远端出口节点。

选择出口后用实际外部请求验证出口与 DNS。需要访问客户端本地 LAN 时,单独评估 exit-node-allow-lan-access,不把它理解为开放 tailnet ACL。访问策略的 hosts 别名只命名地址;允许谁访问什么由 grants/ACL 决定。用策略测试和实际业务端口验证,别只凭管理台显示在线。

DERP 排障从路径证据开始

relay 正常但慢时,对齐 RTT、吞吐、丢包、CPU 与网络环境,再查 UDP 可达性和 NAT。自建 DERP 的域名、TLS、监听端口和 DERP map 以部署配置为准,不把某个 8443 示例当协议固定端口。debug 子命令随版本变化,先 tailscale debug --help,不使用不存在的 local-creatures 等命令。

Tailscale CLI · Route injection · Subnet routers · Exit nodes