Tailscale 无公网IP远程组网实战指南

1757 字
9 分钟
Tailscale 无公网IP远程组网实战指南

说明: Tailscale 是一款基于 Wire­Guard® 保护的虚拟局域组网工具,相信使用过 ZeroTier 对虚拟局域网应该也有所了解,虚拟局域网与本地组网的最大差别在于设备与设备之间允许不在一个机房、国家甚至地区,但通过 P2P 或者中转节点,通过异地组网最终实现局域网的效果。

Tailscale.png
Tailscale.png

没有公网IP,又想能满足远程办公需求?担心暴露公网 IP 而被频繁的恶意扫描、攻击?Tailscale 的诞生,成为解决这些痛点的全新选择。

Tailscale2.png
Tailscale2.png

功能特点#

  • 无需注册,授权登录,开箱即用;
    • 无需配置防火墙;
    • 没有额外的配置。
  • 高安全性、私密性;
    • 自动密钥轮换
    • 基于 WireGuard® 保护
    • 点对点连接
    • 支持用户审查端到端的访问记录
  • 访问/连接,高度可控
    • 支持使用节点共享与指定的 Tailscale 用户共享您的设备。
    • 支持使用ACL限制对设备的访问。
  • 低延时,不限速。
    • 设备间在不跨运营商的前提条件下,设备所在网络环境的上行带宽就是访问下载的最大带宽。

安装使用教程#

至少两台设备来设置和配置 Tailscale 网络。 Tailscale 官网地址:https://tailscale.com/ Tailscale 下载地址:https://tailscale.com/download 注:免费用户最多支持 20 个设备,加入更多设备需要花银子。

群晖 NAS 安装使用 Tailscale#

以群晖为例 —>下载 Tailscale ,然后到 套件中心 手动安装 spk 文件。

tailscale-dsm.png
tailscale-dsm.png

安装完成后,进入终端 ssh,执行sudo tailscale up命令,或者直接打开 Tailscale 进入授权登录页面。(国内网络环境推荐使用巨硬)

授权登录.png
授权登录.png

授权登录成功后,会自动为该设备分配一个 Tailscale IP (可用于局域网内设备间的访问)

分配得到局域网ip.png
分配得到局域网ip.png

群晖NAS如果作为被访问端,需要访问端(例如电脑)同时下载安装 Tailscale 并授权设备登录成功后才能通过被访问端(群晖NAS) 的 Tailscale IP 或 ** 设备名** 进行远程访问。

OpenWrt 安装使用 Tailscale#

SSH 终端进入 Open­Wrt ,下载 openwrt-tailscale-enabler -> Releases 发布页面

# 进入 tmp 目录
cd /tmp
# 下载 openwrt-tailscale-enabler
wget https://github.com/adyanth/openwrt-tailscale-enabler/releases/download/v1.12.3-8f0308e-autoupdate/openwrt-tailscale-enabler-v1.12.3-8f0308e-autoupdate.tgz

提取文件覆盖到系统根目录:

tar x -zvC / -f openwrt-tailscale-enabler-v1.12.3-8f0308e-autoupdate.tgz

安装依赖:

# 更新包列表
opkg update
# 安装依赖
opkg install libustream-openssl ca-bundle kmod-tun

首次运行:

# 启动 tailscale 守护进程
/etc/init.d/tailscale start
# 屏幕打印 tailscale 登录地址,进行授权登录
tailscale up --accept-dns=false

运行以上两个命令,会自动在 /tmp 目录下载 tailscale 包文件包含了 tailscaletailscaled 二进制文件,并自动解压、移动到 /usr/bin 目录。

可能出现的问题:例如 Open­Wrt x86_64 平台会请求下载 tailscale_1.12.3_x86_64.tgz 包文件(实际发布页并无此包而导致报错),需要自行在 版本发布页 下载 tailscale_1.12.3_amd64.tgz/tmp目录解压,并将 tailscaletailscaled 二进制文件移动到 /usr/bin 目录,最后再重新执行上面两行命令即可。

开机启动:

# 加入开机启动
/etc/init.d/tailscale enable
# 验证是否成功加入开机启动项:
ls /etc/rc.d/S*tailscale*

版本更新:

这里 找到适应平台架构的包文件,下载解压替换 Open­Wrt 中的 /usr/bin/tailscale/usr/bin/tailscaled 这两个文件。

关于设备的 Tailscale IP,可运行 ip addr show tailscale0 命令获取。或者访问 管理面板Machines(设备列表)中查看。

Docker 安装使用 Tailscale#

官方提供了 Dockerfile -> 传送门,大家可以自行构建 docker 镜像来运行容器,也可以直接使用 fastandfearless/tailscale这个镜像,安装使用如下:

创建并运行容器:

docker run -d --name=tailscaled -v /var/lib:/var/lib -v /dev/net/tun:/dev/net/tun --network=host --privileged fastandfearless/tailscale tailscaled

验证机器并将其连接到 Tailscale 网络:

# 屏幕打印 tailscale 登录地址,进行授权登录
docker exec tailscaled tailscale up

获取设备的 Tailscale IP 地址:

ip addr show tailscale0

查看设备状态:

docker exec tailscaled tailscale status

CentOS 7 安装 Tailscale#

注:该软件包支持 x86 和 ARM CPU 架构,包括 32 位和 64 位系统。

安装 yum-utils

yum install yum-utils

添加 YUM 源,并安装 Tailscale

yum-config-manager --add-repo https://pkgs.tailscale.com/stable/centos/7/tailscale.repo
yum install tailscale

添加开机启动,并启动服务

systemctl enable --now tailscaled

验证机器并将其连接到 Tailscale 网络

tailscale up

复制屏幕打印的登录地址,使用浏览器访问进行授权登录。如果使用@gmail.com地址登录,则会自动获得授权。

获取设备的 Tailscale IP 地址

ip addr show tailscale0

在其他终端设备安装 Tailscale#

Tailscale 目前已支持了 Linux 、macOS、iOS、Windows、Android、Synology、Raspberry Pi & ARM 等平台,几乎做到了终端设备的全面覆盖。

终端全覆盖.png
终端全覆盖.png

Tailscale 下载中心 选择下载对应平台的应用,并通过登录同一个账号使设备都在同一个虚拟局域网内,只有加入局域网的设备才支持设备间的连接。

访问内网子设备#

局域网内部分终端设备不支持安装 Tailscale,该怎么办? 并非所有设备都需要安装 Tailscale,只需要确保在同一个局域网内至少有一个设备安装通过内网转发也能实现对内网其他设备的访问。以其中一台 Linux 设备作为** 子网路由网关**为例,操作如下:

# 设置IP转发
cat >> /etc/sysctl.conf <<EOF
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
EOF
# 使配置生效
sysctl -p /etc/sysctl.conf

将局域网所在内网网段暴露给 Tailscale:

tailscale up --advertise-routes=192.168.2.0/24

注:上面命令行中192.168.2.0/24需要换成自己的局域网网段(免费版仅支持加入一个子网路由网关)。然后进入 tailscale 控制台,找到显示局域网网段地址的机器,点击 -> Edit route settings

111.jpg
111.jpg

开启 Subnet routes 按钮,如下:

2.jpg
2.jpg

通过以上步骤 Windows、macOS、iOS、Android 客户端会自动更新子网路由。而对于 Linux 客户端,默认情况下仅使用Tailscale 的 100.x 地址,不能主动发现新的子网路由,需要运行下面命令行,启用新的子网路由:

tailscale up --accept-routes

实际效果:身处天涯海角只要有网络,将设备连接 Tailscale 便能访问 192.168.2.0/24 (你的局域网段)内的所有设备,实际测试晚间时段电信->联通的网络延迟 600ms 左右延迟会有些高,不要有太高的预期。

设备禁用密钥过期#

Tailscale 一般每隔 6 个月会要求重新进行身份验证,以确保网络安全。为避免发生这种情况时访问中断,请访问 管理面板Machines (设备列表)中找到需要禁用的设备,并选择 Disable Key Expiry (禁用密钥过期),让设备免受中断的长期使用下去。

disable-key-expiry.png
disable-key-expiry.png

写在最后#

体验了一个下午发现 Tailscale 的最大优点是打洞的成功率比 ZeroTier 高太多,缺点CPU占用非常高(非常高),更多骚操作请查看 -> 官方文档

微信公众号

搜一搜 IMMOEWAH

技术/人文/思辨/随笔

微信公众号

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Tailscale 无公网IP远程组网实战指南
https://blog.moewah.com/posts/4796/
作者
MoeWah
发布于
2021-08-19
许可协议
CC BY-NC-SA 4.0
相关文章 智能推荐
1
Ubuntu/Debian 卸载命令全解:apt remove/purge/autoremove 的区别
虚拟化与运维 apt remove、apt purge、apt autoremove 三个卸载命令的区别详解:remove 保留配置、purge 清除配置、autoremove 清理孤儿依赖,附 --simulate 预览技巧与官方文档出处,Ubuntu/Debian 用户避坑指南。
2
Docker Volume 与 Bind Mount 怎么选?区别、性能对比、双向迁移实战
虚拟化与运维 Docker Volume 和 Bind Mount 有什么区别?性能差距大吗?一文讲透数据卷与绑定挂载的管理边界、适用场景与迁移便捷性,附双向转换完整命令:卷迁宿主机目录、目录转数据卷,全部实测可抄。数据库用卷、开发热重载用绑定挂载,自部署选型不再纠结。
3
SSH 终端下 nano/vim 编辑器卡死问题:terminfo 不兼容排查修复
虚拟化与运维 SSH 连接服务器后 nano/vim 打开即卡死、乱码,方向键退格失效,但 ls/cat 正常?根因是 TERM 环境变量与服务器 terminfo 数据库不兼容。本文给出 4 步排查法、TERM=xterm 修复命令与 256 色保留方案。
4
GhostVM:给 AI Agent 一个完整的 Mac,而不是容器!
虚拟化与运维 介绍 GhostVM——基于 Apple Virtualization.framework 的 macOS 虚拟机工具。支持近原生性能、自包含 bundle、秒级克隆,提供完整的 CLI (vmctl) 覆盖 GUI 功能,适合 AI agent 隔离环境和多项目开发者。
5
DeepSeek-V4-Flash 看不了图片?用 pi-image-bridge 给它装一双眼睛
AI实验室 DeepSeek-V4-Flash-0731 任务通过率高、价格便宜,但模型没有视觉能力。装 pi 扩展 pi-image-bridge,配置视觉模型当副驾,截图报错、设计稿、表格都能看懂。安装一条命令,配置两个字段即可。
随机文章 随机推荐

评论区

Profile Image of the Author

关于作者

MoeWah

我是 MoeWah,喵斯基部落的作者。一个折腾自托管、群晖 NAS、虚拟化运维与 SEO/GEO 实践的独立博主,10 年以上的企业站运维与SEO优化经验,文章来自真实部署与踩坑记录。为自己记录,为同路人分享。
专题
分类
站点统计
文章
205
分类
9
标签
449
总字数
413,918
运行时长
0
最后活动
0 天前

目录