说明: Tailscale 是一款基于 WireGuard® 保护的虚拟局域组网工具,相信使用过 ZeroTier 对虚拟局域网应该也有所了解,虚拟局域网与本地组网的最大差别在于设备与设备之间允许不在一个机房、国家甚至地区,但通过 P2P 或者中转节点,通过异地组网最终实现局域网的效果。
没有公网IP,又想能满足远程办公需求?担心暴露公网 IP 而被频繁的恶意扫描、攻击?Tailscale 的诞生,成为解决这些痛点的全新选择。
功能特点
无需注册,授权登录,开箱即用;
- 无需配置防火墙;
- 没有额外的配置。
高安全性、私密性;
- 自动密钥轮换
- 基于 WireGuard® 保护
- 点对点连接
- 支持用户审查端到端的访问记录
访问/连接,高度可控
- 支持使用节点共享与指定的 Tailscale 用户共享您的设备。
- 支持使用ACL限制对设备的访问。
低延时,不限速。
- 设备间在不跨运营商的前提条件下,设备所在网络环境的上行带宽就是访问下载的最大带宽。
安装使用教程
至少两台设备来设置和配置 Tailscale 网络。
Tailscale 官网地址:https://tailscale.com/
Tailscale 下载地址:https://tailscale.com/download
注:免费用户最多支持 20 个设备,加入更多设备需要花银子。
群晖 NAS 安装使用 Tailscale
以群晖为例 -->下载 Tailscale ,然后到 套件中心 手动安装 spk 文件。
安装完成后,进入终端 ssh,执行sudo tailscale up
命令,或者直接打开 Tailscale 进入授权登录页面。(国内网络环境推荐使用巨硬)
授权登录成功后,会自动为该设备分配一个 Tailscale IP(可用于局域网内设备间的访问)
群晖NAS如果作为被访问端,需要访问端(例如电脑)同时下载安装 Tailscale 并授权设备登录成功后才能通过被访问端(群晖NAS) 的 Tailscale IP 或 设备名 进行远程访问。
OpenWrt 安装使用 Tailscale
SSH 终端进入 OpenWrt ,下载 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 包文件包含了 tailscale
和 tailscaled
二进制文件,并自动解压、移动到 /usr/bin
目录。
可能出现的问题:例如 OpenWrt x86_64 平台会请求下载tailscale_1.12.3_x86_64.tgz
包文件(实际发布页并无此包而导致报错),需要自行在 版本发布页 下载 tailscale_1.12.3_amd64.tgz 到/tmp
目录解压,并将tailscale
和tailscaled
二进制文件移动到/usr/bin
目录,最后再重新执行上面两行命令即可。
开机启动:
# 加入开机启动
/etc/init.d/tailscale enable
# 验证是否成功加入开机启动项:
ls /etc/rc.d/S*tailscale*
版本更新:
在 这里 找到适应平台架构的包文件,下载解压替换 OpenWrt 中的 /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 等平台,几乎做到了终端设备的全面覆盖。
在 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
开启 Subnet routes 按钮,如下:
通过以上步骤 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 (禁用密钥过期),让设备免受中断的长期使用下去。
写在最后
体验了一个下午发现 Tailscale 的最大优点是打洞的成功率比 ZeroTier 高太多,缺点CPU占用非常高(非常高),更多骚操作请查看 -> 官方文档
相关推荐
- 群晖 Synology 部署 Bitwarden 密码管理器
- 在群晖 Synology 上搭建 Bark 消息推送服务器
- 群晖 Synology 部署 ZeroSSL 泛域名证书
- Dozzle - docker 容器实时日志查看器
- Send - 自建临时文件分享平台
- WallaBag - 开源网络书签、稍后阅读工具
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/4796.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。
我是安装在铁威马TOS5,通过docker 命令安装的,在执行屏幕打印登录命令后,就可以进入了,但是docker 重启后(因为铁威马NAS,偶有停电或重启),在管理网站上就看到不在线,在DOCKER 可视界面看到容器是启动了的,通过命令查看容器也是启动了的,但是查询在线状态就提示Logged Out.
1、联系官方解决。
2、把 tailscale 容器改为手动启动。通过添加启动项的方式来启动 tailscale 容器,适当给 sleep 120 两分钟的延迟启动时间作缓冲。(这只是一个构思,我并没有试过)
请问Windows可以设置 Subnet routes,win下面那个设置网段的命令不知道怎么用了
windows 状态栏右键 Tailscale 图标勾选 Use Tailscale Subnets 就可以了,命令是给 Linux 系统使用的。
不知道为什么。我设置了Subnet routes ,转发了家里的内网网段 192.168.123.0 网页也打开了转发。连接后却只能连接 192.168.123.2 这个部署了tailscale的机器。其他内网设备都ping不通
运行:
上面
192.168.123.0/24
换成你自己的局域网网段,如果有多个网段使用,
分开,然后进入 tailscale 控制台,找到显示局域网网段地址的机器,Enable All 允许转发所有。感谢回复,我设置过的 都部署好的,但突然就不行了。我升级下插件 就又正常了。真奇怪。
可能是版本的问题吧
请问 下载 tailscale_1.12.3_amd64.tgz 到/tmp目录解压 是直接解压 还是 用命令解压 可以提供具体的命令吗? 谢谢 我用官方命令不知道怎么不行 麻烦你具体说一下 谢谢谢谢 OωO OωO
谢谢 谢谢
求问能像ZeroTier那样在openwrt上装了后,就能访问其内网网段下的设备吗?
可以