【记录】Tailscale|部署 Tailscale 到 linux 主机或 Docker 上

【记录】Tailscale|部署 Tailscale 到 linux 主机或 Docker 上

文章目录

🐧 Linux 与 Docker 环境下 Tailscale 异地组网全攻略:从宿主机到容器内的极致部署

在这里插入图片描述

在当今的云原生和远程办公时代,异地组网内网穿透是开发者绕不开的话题。相比于传统的 OpenVPN 或 IPSec,Tailscale 基于先进的 WireGuard® 协议,以其“零配置”、“高安全性”和“打洞能力强”著称。

本文将详细介绍如何在 Linux 宿主机以及复杂的 Docker 容器环境中部署 Tailscale,特别是针对容器内无特权模式下的特殊启动方案。

🔗 官方资源
Windows、macOS 或 iOS 等其他平台的客户端下载页:https://tailscale.com/download

一、 为什么选择 Tailscale?

在开始部署之前,简单聊聊为什么它是目前的首选方案:

  • 基于 WireGuard:轻量级、低延迟,内核态执行,性能极佳。
  • NAT 穿透(P2P):Tailscale 的 DERP 中继服务器能帮助处于不同复杂网络环境下的设备建立直连。
  • ACL 访问控制:企业级的访问控制策略。
  • MagicDNS:直接通过机器名访问,无需记 IP。

二、 场景一:Linux 宿主机直接部署

这是最常见的场景,适用于云服务器、NAS 或个人 Linux 电脑。

1. 一键安装

Tailscale 官方提供了一个非常方便的安装脚本,会自动检测发行版(Ubuntu/CentOS/Debian 等)并安装:

curl -fsSL https://tailscale.com/install.sh |sh

2. 启动与认证

安装完成后,启动服务并获取登录链接:

sudo tailscale up 

复制终端输出的链接,在浏览器中打开并使用账号登录即可。

3. 进阶参数(可选)

如果你希望将这台 Linux 作为出口节点(Exit Node),即让其他设备通过这台机器上网,可以使用以下命令启动:

sudo tailscale up --advertise-exit-node 

注:启动后需在 Tailscale 管理后台的 Machines 列表中开启该路由。


三、 场景二:Docker 容器内由零构建(进阶技巧)

在某些受限环境中(例如:你只有一个正在运行的容器的 Shell 权限,无法修改 docker run 参数,或者不想挂载宿主机的 /var/run/tailscale/),我们需要在容器内部手动构建 Tailscale 环境。

由于容器通常默认没有 /dev/net/tun 设备,且没有特权(Privileged),直接安装通常会报错。我们需要使用 Userspace Networking(用户态网络) 模式来绕过内核限制。

📋 准备工作

请直接进入容器的 bash 终端。

🚀 步骤详解

Docker 内额外安装 Tailscale 需要进行一个比较复杂的设备节点配置。为了方便操作,我将步骤整理为两个阶段。

第一阶段:环境构建与后台启动

直接复制粘贴如下指令块:

# 1. 安装 Tailscale 二进制文件curl -fsSL https://tailscale.com/install.sh |sh# 2. 创建必要的目录(容器内可能缺失)mkdir -p /dev/net # 3. 创建 TUN 设备节点# c 代表字符设备,10 和 200 是主次设备号if[! -c /dev/net/tun ];thenmknod /dev/net/tun c 10200fi# 4. 设置设备权限,确保当前用户可读写chmod600 /dev/net/tun # 5. 清理可能存在的旧进程(防止重复启动)pkill -f tailscaled 2>/dev/null ||true# 6. 等待清理完成sleep2# 7. 启动 Tailscale 守护进程# 关键参数:--tun=userspace-networking # 作用:启用用户态网络模式,绕过对内核 TUN 模块的强依赖,适合非特权容器 tailscaled --tun=userspace-networking --socket=/tmp/tailscale.sock --state=/tmp/tailscale.state 2>&1&# 8. 等待服务启动sleep5# 9. 检查服务是否运行ifps aux |grep'[t]ailscaled'> /dev/null;thenecho"✅ Tailscaled 服务启动成功"elseecho"❌ Tailscaled 启动失败,请检查日志"fi# 10. 获取认证 URL(复制输出的链接到浏览器中打开) tailscale --socket=/tmp/tailscale.sock up 
🔐 认证步骤(需要在浏览器中操作)

用户操作指南:

  1. 复制第 10 步输出的 URL(格式通常为:https://login.tailscale.com/a/xxxxxxxxxx)。
  2. 在浏览器中打开该 URL。
  3. 使用你的 Tailscale 账户登录。
  4. 点击 Connect 授权设备加入网络。

第二阶段:验证与收尾

认证成功后,回到终端继续执行以下命令来确认状态并安全退出:

# 11. 等待认证状态同步sleep5# 12. 验证连接状态 tailscale --socket=/tmp/tailscale.sock status # 13. 查看分配的 Tailscale IPTS_IP=$(tailscale --socket=/tmp/tailscale.sock ip)echo"本机 Tailscale IP: $TS_IP"# 14. 将进程脱离终端控制以便安全退出 Shell# 这样当你关闭 docker exec 的终端时,VPN 服务不会中断TAILSCALE_PID=$(ps aux |grep'[t]ailscaled'|awk'{print $2}') disown $TAILSCALE_PID2>/dev/null ||true# 15. 最终连通性测试 tailscale --socket=/tmp/tailscale.sock ip -4 echo"✅ Tailscale 配置完成!可以安全退出终端。"

⚠️ 注意事项

  • 持久化问题:这种方式在容器内是临时的。如果容器重启(Restart),上述步骤需要重新执行。如果需要长期运行,建议将上述脚本写入 DockerfileENTRYPOINT 或使用 Supervisor 管理。
  • Socket 指定:注意所有命令都带了 --socket=/tmp/tailscale.sock,这是因为我们将 socket 文件放在了 /tmp 目录下,而非默认系统目录,防止权限问题。

四、 常用维护命令速查

配置完成后,以下命令对排错非常有帮助:

在不同设备间传文件(Taildrop)

tailscale filecp<文件名><目标机器名>: 

检查网络连通性

tailscale ping<目标机器名或IP>

查看其他节点状态

tailscale status 

本账号所有文章均为原创,欢迎转载,请注明文章出处:https://shandianchengzi.blog.ZEEKLOG.net/article/details/157212469。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

Read more

Windows+Ubuntu 双系统安装超详细保姆级教程2026,包括系统安装、英伟达独显驱动安装以及双系统时间同步的所有过程

Windows+Ubuntu 双系统安装超详细保姆级教程2026,包括系统安装、英伟达独显驱动安装以及双系统时间同步的所有过程

本篇教程从镜像下载开始撰写。如果电脑是带有独立显卡的话,后文也有安装独显驱动的教程。同时双系统安装完成后,会遇到 Windows 系统下每次开机时间都不对的问题,也在教程后最后一并解决。开始之前请先准备好一个 16 GB 以上的 U 盘。后续也将更新帖子如何彻底完全卸载 Ubuntu。 电脑配置:Windows 11 25H2 家庭中文版,OMEN 暗影精灵 11,5060 显卡。 1. 安装盘制作 1.1 镜像下载 根据自己的需求自备一个 Ubuntu 系统镜像,或者直接去 Ubuntu 中文官网 https://ubuntu.cn/download 下载 Ubuntu 桌面系统镜像。我在这里直接下载 25.10 版本。 1.2

By Ne0inhk
大数据场景时序数据库选型指南——Apache IoTDB实践与解析

大数据场景时序数据库选型指南——Apache IoTDB实践与解析

在数字化转型持续推进的过程中,时序数据已经成为工业物联网、能源监控、大数据分析等场景中的核心数据类型。这类数据具备时间有序、采集频率高、数据总量大、查询多以时间范围为主等特点,传统关系型数据库在处理这类数据时,往往会面临写入压力大、存储成本高、查询效率不足等问题。因此,选择一款适配业务场景的时序数据库,已经成为大数据架构设计与物联网系统建设中的重要环节。 目录 一、大数据场景时序数据库选型的通用思路 二、Apache IoTDB产品定位与客观介绍 三、Apache IoTDB基础使用代码示例 四、时序数据库选型总结 本文从大数据场景的实际需求出发,梳理时序数据库选型的通用思路,并对Apache IoTDB这款面向物联网与大数据场景的时序数据库进行客观介绍,同时提供基础使用示例,为技术选型提供参考。 一、大数据场景时序数据库选型的通用思路 在进行时序数据库选型时,不需要盲目追求单一指标,而是结合自身业务规模、技术栈、运维能力、成本预算等维度综合判断,以下是行业内通用的选型关注点。 1. 写入与存储适配性 时序数据的典型特征是持续高频写入,选型时需要关注数据库对高并发

By Ne0inhk
OpenWrt部署Docker的硬核实战:内核适配调试全攻略与资源优化实战技巧

OpenWrt部署Docker的硬核实战:内核适配调试全攻略与资源优化实战技巧

文章目录 * 前言 * 一、OpenWrt 与 Docker 的集成前提 * 1.1 硬件与内核要求 * 1.2 软件依赖 * 二、Docker 环境部署与验证 * 2.1 基础服务配置 * 2.2 存储驱动适配 * 三、容器化应用部署实践 * 3.1 资源限制策略 * 3.2 Docker Compose 适配 * 四、性能优化与监控 * 4.1 容器资源监控 * 4.2 镜像精简策略 * 五、典型问题解决方案 * 5.1 端口冲突处理 * 5.2 低性能设备适配 * 六、内网穿透远程访问

By Ne0inhk
告别服务器失联!Prometheus+cpolar 让监控告警走出内网

告别服务器失联!Prometheus+cpolar 让监控告警走出内网

Prometheus、node_exporter、Alertmanager 是一套适配性很强的服务器监控告警组合,Prometheus 能精准采集 CPU、内存等核心指标,node_exporter 轻量化收集服务器硬件数据,Alertmanager 可分类推送告警信息,这套组合适合个人服务器持有者、中小企业运维人员使用,优点在于开源免费、配置灵活,能 7×24 小时自动监控,提前预警服务器异常。 使用这套工具时发现,配置告警规则要贴合实际使用场景,比如针对个人博客服务器,重点监控网络连通性和磁盘空间即可,无需过度配置冗余规则,否则易收到无效告警;另外首次部署时要注意各组件版本兼容,避免因版本不匹配导致数据采集失败。 不过这套监控系统仅靠自身只能在局域网内访问,比如个人在家搭建的服务器,出门后既看不到监控数据,也收不到及时的告警提醒,小团队里异地办公的成员也无法协同查看服务器状态,遇到半夜服务器硬盘满了的情况,只能等第二天到公司才能处理,容易造成业务中断。 而将这套监控系统与 cpolar 结合后,无需申请公网 IP、不用配置路由器端口映射,就能给监控系统分配公网访问地址,

By Ne0inhk