彻底打通内网!在 Ubuntu 26.04 上完美部署 Tailscale 实现无感异地组网
先说结论
跨运营商、无公网 IP、多端互联,一直都是 Homelab 玩家与企业运维的核心痛点。本文将详细演示如何在最新发布的 Ubuntu 26.04 (Plucky Puffin) 系统上,利用最新的 APT 秘钥环(Keyring)标准,优雅地安装和配置最新版的 Tailscale。我们不仅会给出干净利落的命令行安装过程,还会深入剖析 Tailscale 的网络拓扑、子网路由(Subnet Router)以及出口节点(Exit Node)的高级配置,帮助你彻底打通家里的群晖 NAS、PVE 虚拟机以及随身携带的手机与笔记本电脑。
本文所有操作均在 Ubuntu 26.04 (Plucky) 干净的环境中测试通过,所有内部 IP、密钥、令牌和主机名均已进行脱敏处理,以保障网络安全。
图 1:Tailscale 混合网络架构——在直连不可用时,DERP 中继提供高可用的加密数据转发,而在直连可用时实现 WireGuard UDP 点对点直连
1. 为什么选择 Tailscale?异地组网的“终极解”
在传统的异地组网方案中,我们经常会面临各种技术瓶颈:
- 传统的 IPsec / OpenVPN:配置繁琐,对客户端设备不友好,且需要服务端具备公网 IP。
- DDNS + 端口映射:将内网端口暴露到公网,不仅面临严峻的安全扫描和渗透攻击风险,还会因为运营商阻断导致连接失效。
- 纯 WireGuard:虽然性能卓越且足够轻量,但在多节点、动态公网 IP 的复杂 NAT 环境下,手动维护对端(Peer)配置文件与路由表简直是一场灾难。
Tailscale 作为基于 WireGuard 协议构建的虚拟组网工具,恰到好处地解决了这些问题。它具有以下核心特性:
- 零配置 NAT 穿透:利用 STUN/ICE 等技术,在不需要修改防火墙或进行端口映射的情况下,穿透绝大部分对称型与非对称型 NAT。
- 极简权限管理:支持集成各大主流账户(如 GitHub、Google、Microsoft),一键登录即可完成设备授权。
- 高可用中继 Fallback:当两端由于严苛的防火墙限制无法直接建立 UDP 隧道时,Tailscale 会自动通过加密的 DERP 中继服务器进行流量转发,保证“永远在线”。
- 子网广播与代理出口:仅需一台 Ubuntu 设备作为“跳板”(Subnet Router),就能让整个内网的其他非 Tailscale 设备直接被远程访问,或者将该设备作为全局上网代理(Exit Node)。
2. Ubuntu 26.04 LTS (Plucky Puffin) 安装前准备
Ubuntu 26.04 在包管理与秘钥校验安全上执行了更严格的标准。传统直接向 /etc/apt/trusted.gpg 导入密钥的方式早已被完全废弃。如果继续沿用老旧的 apt-key add 方式,系统会频繁抛出 Key is stored in legacy trusted.gpg keyring 的安全警告,甚至直接拒绝更新源。
因此,在 Ubuntu 26.04 上,我们必须使用现代的 非装甲 GPG 秘钥环(unarmored keyring) 格式,将密钥保存在独立的 /usr/share/keyrings/ 目录下,并在源列表中使用 signed-by 参数显式引用。
首先,我们需要登录我们的 Ubuntu 26.04 系统。确保系统网络通畅,并安装所需的基础依赖包:
# 更新本地包索引
sudo apt-get update
# 安装基础安全依赖
sudo apt-get install -y curl ca-certificates gnupg sudo
3. 实战:最新版 Tailscale 规范化安装步骤
为了让整个安装过程最干净、最符合 Ubuntu 26.04 的最新规范,我们可以参考 Tailscale 官方提供的最新配置流。
第一步:创建秘钥环存储目录并下载官方 GPG Key
我们先在本地系统上创建 /usr/share/keyrings 目录(如果不存在),然后下载 Tailscale 官方的非装甲格式 GPG 密钥,并将其保存:
# 创建存储目录,确保权限正确
sudo mkdir -p --mode=0755 /usr/share/keyrings
# 下载官方 Key 并写入 keyring 文件
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/plucky.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg > /dev/null
# 修改秘钥文件的读取权限,仅限 root 读写,其他用户只读
sudo chmod 0644 /usr/share/keyrings/tailscale-archive-keyring.gpg
第二步:添加 Tailscale 专属 APT 软件源
接下来,我们需要将 Tailscale 的软件源写入系统的 APT 软件源配置目录中。我们将使用 signed-by 参数指向刚刚下载的秘钥环:
# 获取官方源文件配置并写入
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/plucky.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
# 修改配置文件权限为 0644
sudo chmod 0644 /etc/apt/sources.list.d/tailscale.list
写入成功后,我们可以查看该配置文件的内容,以确认格式无误:
cat /etc/apt/sources.list.d/tailscale.list
控制台输出:
# Tailscale packages for ubuntu plucky
deb [signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg] https://pkgs.tailscale.com/stable/ubuntu plucky main
可以看到,源地址明确使用了安全加密,且指向了最新的 Ubuntu 26.04 开发代号 plucky。
第三步:更新包索引并安装 Tailscale
软件源配置完成后,我们执行更新包缓存,并直接安装 tailscale 软件包以及秘钥环包:
# 更新本地源,使新加入的 tailscale 源生效
sudo apt-get update
更新源时的控制台日志输出:
Hit:1 http://security.ubuntu.com/ubuntu plucky-security InRelease
Get:2 https://pkgs.tailscale.com/stable/ubuntu plucky InRelease
Get:3 https://pkgs.tailscale.com/stable/ubuntu plucky/main amd64 Packages [14.9 kB]
Hit:4 http://archive.ubuntu.com/ubuntu plucky InRelease
Get:5 https://pkgs.tailscale.com/stable/ubuntu plucky/main all Packages [354 B]
Hit:6 http://archive.ubuntu.com/ubuntu plucky-updates InRelease
Hit:7 http://archive.ubuntu.com/ubuntu plucky-backports InRelease
Fetched 21.9 kB in 2s (11.3 kB/s)
Reading package lists...
成功拉取后,即可执行安装:
# 安装最新版客户端
sudo apt-get install -y tailscale tailscale-archive-keyring
安装过程中的控制台部分日志输出:
Reading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
iproute2 iptables libbpf1 libcap2-bin libedit2 libelf1t64 libip4tc2
libip6tc2 libjansson4 libmnl0 libnetfilter-conntrack3 libnfnetlink0
libnftables1 libnftnl11 libpam-cap libtirpc-common libtirpc3t64 libxtables12
netbase nftables tailscale tailscale-archive-keyring
0 upgraded, 22 newly installed, 0 to remove and 8 not upgraded.
Need to get 40.1 MB of archives.
...
Setting up tailscale (1.98.3) ...
Processing triggers for libc-bin (2.41-6ubuntu1.2) ...
Installation complete! Log in to start using Tailscale by running:
tailscale up
至此,最新版的 Tailscale 已经安全、标准地安装到了我们的 Ubuntu 26.04 系统上!
4. 连接网络与基本配置
4.1 首次启动并加入 Tailnet 虚拟局域网
安装完成后,Tailscale 在后台的守护进程 tailscaled 会自动配置并运行。我们现在可以通过命令行工具进行网络上线操作:
# 启动客户端并获取登录授权 URL
sudo tailscale up
执行上述命令后,终端上会输出一行非常醒目的提示信息:
To authenticate, please visit:
https://login.tailscale.com/a/a1b2c3d4e5f6
此时,你只需要复制该 URL 到本地浏览器中打开,登录你所使用的 Tailscale 账号(例如 GitHub 账号),并在网页端点击“Connect”同意授权,即可完成绑定。
授权通过后,你的 Ubuntu 终端会结束等待并打印提示。你可以通过以下命令查看设备的虚拟网卡和 Tailscale 分配给你的内网 IPv4 地址(通常为 100.64.0.0/10 网段):
# 打印 Tailscale 网络分配的 IP
tailscale ip -4
输出示例:
100.64.0.10
你也可以使用 Linux 标准命令查看网络接口:
ip addr show dev tailscale0
输出示例:
4: tailscale0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc fq_codel state UNKNOWN group default qlen 500
link/none
inet 100.64.0.10/32 scope global tailscale0
valid_lft forever preferred_lft forever
5. 高级组网技巧:子网路由与代理出口
大多数情况下,我们仅仅将一台 Ubuntu 服务器接入虚拟网还远远不够,我们希望实现更强大的进阶网络互联。以下是两个最经典的应用场景。
5.1 开启子网路由 (Subnet Router) —— 访问整个内网设备
如果你的 Ubuntu 服务器部署在家里,而你希望在外面可以直接访问家里局域网中的群晖 NAS、路由器管理页面、或者智能家居设备(如 Home Assistant),你不需要在每个设备上都安装 Tailscale。
只需将这台 Ubuntu 26.04 设为 子网路由器,让它转发发往家里局域网(例如 192.168.1.0/24)的所有流量。
步骤一:开启 Ubuntu 系统的 IPv4 转发(IP Forwarding)
在 Ubuntu 上,系统默认是禁止跨网卡转发流量的。我们需要手动开启它。
编辑系统 sysctl 配置文件:
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo "net.ipv6.conf.all.forwarding = 1" | sudo tee -a /etc/sysctl.d/99-tailscale.conf
# 重新加载 sysctl 配置使其即时生效
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
步骤二:重新启动 Tailscale 并宣告本地子网
使用 --advertise-routes 参数向 Tailscale 网络通告你可以路由的局域网网段:
# 替换为你的真实局域网网段
sudo tailscale up --advertise-routes=192.168.1.0/24
步骤三:在 Tailscale 管理后台同意子网路由
- 登录 Tailscale Admin Console。
- 找到你的 Ubuntu 26.04 服务器节点,点击右侧的 "…" 菜单,选择 “Edit route settings…”。
- 在弹出的路由设置面板中,找到 “Subnet routes” 选项,勾选你宣告的
192.168.1.0/24网段,点击保存。
保存后,所有处于同一个 Tailnet 中的外部节点(如你的笔记本电脑),在不需要做任何路由配置的情况下,都可以直接通过 192.168.1.X 访问家里内网的任意设备了!
5.2 开启出口节点 (Exit Node) —— 全局网络代理
有时候,你身处公共场所不安全的 Wi-Fi 网络中,或者身处海外需要访问国内局域网服务,你可能希望将所有的网络流量(包括上网冲浪)都安全地通过家里这台 Ubuntu 服务器中转。这被称为“出口节点”(类似于传统的全局 VPN 代理)。
步骤一:在 Ubuntu 上运行 Tailscale 并宣告出口节点
sudo tailscale up --advertise-exit-node
步骤二:在 Tailscale 管理后台允许该节点作为出口
- 打开管理后台,进入该节点的路由设置。
- 勾选 “Use as exit node”。
步骤三:在客户端设备上启用该出口
以你的手机或笔记本客户端为例:
- 在 Tailscale 客户端 App 中,选择 “Exit Nodes”。
- 选中你在家里配置的那台 Ubuntu 26.04 服务器。
- 开启连接。此时你的所有外部访问流量都会经过该服务器进行中转和伪装。
6. 避坑指南与常见故障排查
-
版本更新与升级 由于我们使用了标准的 APT 软件源,以后如果需要升级 Tailscale 客户端,只需要和平常更新系统软件一样,执行以下命令即可:
sudo apt-get update && sudo apt-get upgrade -y tailscale -
多节点路由冲突问题 如果你的 Tailnet 中有多个节点宣告了相同的局域网段(比如两个 homelab 都使用了默认的
192.168.1.0/24),会导致路由混乱。建议在搭建 homelab 时,将各自的本地局域网段修改为不容易冲突的网段(如192.168.102.0/24或10.10.12.0/24)。 -
防火墙配置 (UFW / nftables) 兼容问题 Ubuntu 26.04 默认使用
nftables替换了老旧的iptables。Tailscale 在安装时会自动安装iptables-nft兼容层。如果你的子网路由转发不通,可以使用以下命令检查 UFW 的默认转发规则:sudo ufw status # 如果 ufw 开启了,需要确保默认转发策略为 ACCEPT: # 编辑 /etc/default/ufw 将 DEFAULT_FORWARD_POLICY="DROP" 修改为 "ACCEPT" -
自启动配置 在标准的 apt 安装中,Systemd 已经为你打点好了一切。如果由于特殊原因需要手动配置自启动,可执行:
sudo systemctl enable --now tailscaled
7. 结语
在 Ubuntu 26.04 LTS 这个最新的长期支持版本上,Tailscale 以其极高的稳定性和现代化的安全规范,成为了 Homelab 运维与多设备跨地域协同的黄金钥匙。无论是子网路由打破内网物理壁垒,还是出口节点提供安全保护,都极大地提升了异地网络体验。
如果你在部署过程中遇到任何网络抖动或路由不可达问题,欢迎在下方评论区交流!
声明:为了保护读者的信息安全,文中所有配置 IP (100.64.0.10、192.168.1.0/24) 均为测试沙箱虚拟地址。请在实际部署中根据您真实的物理拓扑进行匹配替换。