Tailscale 部署与实战技术文档
文档目的:记录我的笔记本电脑接入 Tailscale 完整实操,实现多设备虚拟局域网组网;包含连接验证、WinSCP/SFTP 访问、子网网关、出口节点、游戏 / 服务跨网互通。 环境说明:
节点 A:Ubuntu 系统
其他节点:Windows / 其他 Linux 设备,全部登录同一个 Tailscale 账号
网络特性:优先 P2P 直连,无法直连时自动走 DERP 中继;每个设备分配
100.x.x.x虚拟内网 IP,设备之间如同处于同一个局域网。
一、Tailscale 核心概念
Tailnet 虚拟网络:同一个账号下所有设备组成虚拟局域网,每台设备获得固定的
100.x.x.x内网 IP。P2P 直连:优先打洞实现设备之间点对点通信,不走中转服务器,带宽为双方物理带宽上限,延迟低,适合传文件、SSH、游戏联机。打洞失败自动降级 DERP 中继。
MagicDNS:可以直接使用设备主机名访问,不用记忆 100 段 IP。
子网路由 (Subnet router):允许 Tailnet 内全部设备访问该主机所在物理局域网的其他设备(NAS、打印机、无 Tailscale 的设备)。
Exit Node 出口节点:其他 Tailscale 设备可以把网络流量通过这台机器的互联网出口上网。
管理后台地址:https://login.tailscale.com/admin/machines 后台可以管理设备、审批子网路由、查看每个节点连接模式(direct = 直连 / DERP = 中继)。
二、Ubuntu安装与基础部署
2.1 安装后初始化绑定账号
安装
curl -fsSL https://tailscale.com/install.sh | sh安装包完成之后执行,会输出网页登录链接
sudo tailscale up
复制终端输出的 URL,浏览器打开,登录你的 Tailscale 账号。
如果账号开启设备审批策略,进入管理后台,批准该设备加入网络。
2.2 查看本机 Tailscale 虚拟 IP
tailscale ip -4
示例输出:100.xxx.xxx.xxx,这就是该设备在虚拟局域网的内网地址。
2.3 查看整个 Tailnet 网络状态
tailscale status
输出解读:
direct:P2P 直连(最优,速度快延迟低)DERP-xxx:打洞失败,使用中继服务器转发
此命令可以看到所有在线设备、对方 IP、连接模式。
2.4 测试节点连通性(Tailscale 自带 ping,可判断是直连还是中继)
# 格式 tailscale ping 对方设备的100.x.x.x地址
tailscale ping 100.x.x.x
普通系统 ping 也可以直接使用:
ping x.x.x.x
2.5 基础启停命令
# 断开虚拟网络
sudo tailscale down
# 重新连接
sudo tailscale up
# 退出账号,解绑本机设备
sudo tailscale logout
# 网络打洞质量诊断
tailscale netcheck
开机自启说明:安装完成后
tailscaledsystemd 服务默认开机自启,机器开机自动接入 Tailscale 网络,无需手动执行tailscale up。 查看服务状态:
systemctl status tailscaled
三、远程访问 Ubuntu(Windows 端)实操
场景:Windows 电脑同样安装 Tailscale,登录同一账号;Windows 与 Ubuntu 形成虚拟局域网。
3.1 Ubuntu 开启 OpenSSH 服务(用于 WinSCP、SSH 终端)
⚠️注意:Tailscale 内置 SSH (
tailscale set --ssh) 仅支持命令行 ssh,不能被 WinSCP 调用;文件传输请使用系统 openssh‑server。
# 安装openssh服务端
sudo apt install openssh-server
# 设置开机自启并立即启动
sudo systemctl enable --now ssh
# 查看ssh状态
systemctl status ssh
# 防火墙放行ssh(开启ufw防火墙时需要)
sudo ufw allow ssh
3.2 WinSCP 连接 Ubuntu(文件图形化传输)
新建会话参数:
协议:SFTP(推荐),也可选 SCP
主机名:Ubuntu 的 Tailscale IP,例
100.x.x.x端口:
22用户名:Ubuntu 系统用户名
密码:Ubuntu 本机登录密码
连接成功之后,Windows 和 Ubuntu 之间可以拖拽双向传输文件。
3.3 WinSCP 内执行 SSH 命令两种方式
内置控制台
Ctrl+T(限制:不支持交互式命令,无法 sudo 输入密码、不能运行top/vim),适合简单一次性命令。推荐方案:
Commands→Open in PuTTY,一键唤起 PuTTY 终端,复用当前登录信息,完整交互式 SSH 环境,可以执行 sudo、vim 等全部运维命令。
3.4 Windows PowerShell 原生 SSH
Windows10/11 自带 OpenSSH 客户端,PowerShell 直接执行:
ssh 用户名@100.x.x.x
四、高级能力配置(按需开启)
⚠️重要:下面使用
tailscale set,配置持久保存,不需要每次 up 带参数。执行完必须登录后台审批对应权限,功能才生效。
4.1 配置子网网关(访问物理局域网其他设备)
需求:把这台 Ubuntu 作为网关,Tailnet 所有设备访问 Ubuntu 物理局域网内 NAS、打印机、其他没有装 Tailscale 的设备。
先确认本机物理局域网网段:
ip a
例如网段为 192.168.110.0/24
开启子网广播:
sudo tailscale set --advertise-routes=192.168.110.0/24
登录 Tailscale 后台 Machines 页面,找到该设备,点击 Review routes,批准这条子网路由。
其他 Tailscale 设备就可以直接访问
192.168.110.*的物理内网设备。
4.2 配置出口节点(其他设备流量走本机器网络)
让 Tailnet 其他设备,把互联网流量经过这台 Ubuntu 的网络出去。
sudo tailscale set --advertise-exit-node
需要后台审批;其他设备的 Tailscale 客户端设置中就可以选择该节点作为 Exit Node。
4.3 Tailscale 内置 SSH(仅命令行,不支持 WinSCP)
sudo tailscale set --ssh
其他设备可以执行:
tailscale ssh ......
五、典型业务场景实战
场景 1:跨地域服务访问(本地开发、测试环境)
Ubuntu 上面部署 Web、数据库、API 等测试服务,绑定
0.0.0.0监听本机全部网卡。Windows / 另一台电脑接入同一个 Tailscale 网络。
直接使用 Ubuntu 的
100.x.x.x:端口访问服务,如同本地局域网,无需公网 IP、不需要配置路由器端口映射。
示例:Ubuntu 上 nginx 监听 80 端口,Windows 浏览器打开
http://100.x.x.x。
场景 2:游戏联机(跨设备虚拟局域网联机)
原理:Tailscale 构建虚拟局域网,游戏识别到100.x.x.x网段,把异地设备伪装成同一个局域网。
所有参与游戏的设备全部安装 Tailscale,登录同一个账号。
主机开启局域网游戏房间;其他玩家直接填入主机的 Tailscale 虚拟内网 IP 进行连接。
✨优势:P2P 直连模式,速度高延迟低,不需要公网 IP,不需要折腾路由器 UPnP、端口转发。 注意:部分游戏会限制网段,优先确认游戏支持自定义局域网 IP。
六、排错速查表
表格
七、安全最佳实践
不要随意把设备分享给陌生人;后台可以做设备密钥轮换、设备注销。
子网网关、出口节点开启后,务必在后台审批,不要只在命令行执行参数。
远程 SSH 建议后续配置密钥登录,减少密码泄露风险。
MagicDNS 启用之后,可以优先使用主机名代替 IP 访问,降低记忆成本。
小提示:MagicDNS 在后台开启,开启后直接用主机名例如
xxxxx代替 100 段 IP 访问设备。
Tailscale 设备审批(Device Approval)开启操作
作用:新设备登录账号后,不会自动加入虚拟局域网;管理员必须在后台手动批准,设备才能和其他节点互通。未审批的设备只能连接管控服务器,无法访问任何 tailnet 内其他机器Tailscale。
注意区分两个功能:
Device Approval(设备审批):同一个账号下,每一台新硬件设备都要审批。
User Approval(用户审批):针对新账号用户加入你的组织网络,个人自用单账号一般不用开这个Tailscale。
操作步骤
左侧菜单点 Settings(设置) → Device management(设备管理)Tailscale
找到
Device Approval,勾选:Manually approve new devices(手动批准新设备)点页面下方 Save 保存设置,立刻生效,无需重启任何设备Tailscale。
批准待审批的设备
进入
Machines(设备列表)页面待审批设备会带上 Needs approval 标签,出现在列表最上方
点这台设备右侧三个点
...→ Approve,批准完成,设备立即获得完整网络访问权限,不用重启客户端Tailscale。
⚠️开启之后的影响:
已经存在的老设备不受影响,继续正常工作;只对开启之后新增的设备生效。
新设备执行
sudo tailscale up,拿到登录链接登录账号之后,会提示:Contact your Tailscale admin to approve it,等待管理员后台审批,此时设备不能 ping、不能访问内网任何资源Tailscale。
👉 子网路由 / 出口节点的审批(这个≠设备审批,别搞混!)
你之前配置 --advertise‑routes 子网网关、--advertise‑exit‑node 出口节点: 设备本身已经加入网络,但广播出来的路由策略,仍然需要单独在机器页面点「Review routes」审批,就算开启了上面的设备审批,路由也要再单独点一次审批。
小技巧:使用预授权密钥(Auth Key)跳过设备审批
开启设备审批之后,如果有服务器自动化部署,可以生成预授权密钥,用这个密钥启动 tailscale,设备自动审批加入网络,不用后台手动点批准。 后台:Settings → Keys → Generate auth key,勾选 Pre‑approved 生成密钥。 Linux 使用示例:
sudo tailscale up --authkey=tskey‑xxxxxx
个人自用建议
自己家里、个人测试,不建议开启设备审批,每次加手机、电脑都要网页点批准,麻烦。
如果给多人、团队使用,防止陌生设备混入,再打开此安全开关。


