前言:
公司是异地的,当前异地组网技术是用贝锐蒲公英,买了个路由器去配置的,然而免费的只能绑定三台设备,我只能在公司才能连内网,回家远程公司电脑又很卡,然后就研究如何才能在家里也能连上公司的内网,接着发现了Tailscale。
1.Tailscale 完整简介 + 优缺点
一、产品简介 Tailscale 是一款基于 WireGuard 底层协议的海外零信任 Mesh 异地组网工具,可把分布在家、公司、云服务器、NAS、树莓派等所有设备虚拟成一张加密私有局域网(Tailnet),替代传统 VPN、FRP、远控穿透工具。 核心工作逻辑 登录统一账号后,设备自动上报信息到海外协调服务器; 优先 NAT 打洞建立P2P 点对点直连,流量不经过第三方中转,跑满本地带宽; 多层 NAT、校园网、移动宽带打洞失败时,自动降级走海外 DERP 加密中继转发; 全程端到端 WireGuard 加密,中转服务器无法解密你的业务流量; 全平台兼容:Windows/macOS/Linux/Android/iOS/NAS/ 嵌入式设备,开箱即用无需配置端口映射、公网 IP。 核心特色功能 Funnel:一键将本地服务暴露公网,自动签发 HTTPS 证书,不用域名; Exit Node:把某台设备当做全局流量出口; 精细化 ACL 权限:控制设备互访权限、端口访问限制; Tailscale SSH:内网免密安全 SSH; 子网路由:穿透访问内网整段局域网设备。 二、核心优点 P2P 直连性能极强 WireGuard 加密损耗极低,直连无带宽限速,同运营商 / 有公网 IP 场景可跑满家庭上行,大文件、4K NAS、远程桌面流畅,延迟极低。 个人永久免费政策宽松 免费版不限设备数量、不限流量、无硬性带宽封顶,个人长期使用零成本。 安全性拉满 端到端加密,无需把内网端口暴露公网;后台可随时下线设备、开启两步验证、细粒度访问权限隔离。 部署极简,运维成本低 安装登录即可组网,不用手动配置 WireGuard 密钥、路由、防火墙转发;支持开机自启、断线自动重连。 开发者友好,高阶功能丰富 支持自建私有 DERP 中继、开源二次修改、CI/CD 云服务器互联、多云端组网,适合程序员、自建 NAS 玩家。 跨平台全覆盖 树莓派、OpenWrt、各类 NAS 系统完美适配,嵌入式设备兼容性优秀。 三、核心缺点(国内使用痛点最突出) 原生中转服务器全在海外,国内无节点 移动宽带、校园网、多层 CGNAT 基本打不通 P2P,强制走新加坡 / 香港 DERP 中转,速度仅 300KB/s~1MB/s,高峰期高延迟、丢包严重;想要国内稳定中转,必须额外购买国内 VPS 自建 DERP,增加成本与运维门槛。 国内登录、后台访问有网络门槛 注册依赖 GitHub/Google 账号,协调服务器在海外,国内直连容易超时、登录失败,部分环境需要特殊网络才能正常使用。 数据出境,国内政企 / 金融不合规 控制、中继服务器均部署海外,业务数据出境,国企、金融、政务等对数据属地有要求的企业无法商用。 无中文界面、无国内人工售后 后台全英文,网络卡顿、打洞失败等故障只能自行查文档解决,无本土技术客服兜底。 普通用户高阶配置门槛偏高 自建中继、自定义路由、ACL 权限、出口节点等功能需要基础网络知识,纯小白上手难度高于蒲公英。 免费版无技术支持,企业版为美元订阅,付费成本高于国内同类工具。 四、适用人群总结 适合:程序员、海外服务器互联、有公网 IP 可稳定 P2P 直连、自建 NAS、能折腾自建国内中继、纯个人无企业合规需求。 不适合:国内移动 / 校园宽带无公网 IP、政企商用、不想折腾网络、需要稳定国内中转、零基础小白。2.Tailscale搭建步骤
2.1前期准备:注册账号
首先访问Tailscale官网,使用GitHub/Google/Microsoft账号完成注册登录,后续所有设备都需要使用同一个账号加入组网,设备管理、路由授权都在官网后台操作。
tailscale官网下载地址:https://tailscale.com/download/windows
2.2各平台安装与基础配置
2.2.1 windows
2.2.1.1 安装
1.下载对应平台客户端安装2.打开客户端,使用注册时的同一账号登录授权3.开启连接开关,设备就自动加入Tailscale虚拟网络,完成基础配置2.2.1.2 组网配置
两种方案:1.个人单账号自用:直接用原账号生成授权密钥,两台服务器都属于同一个组网,直接互通2.多人协作场景:如果需要给他人添加服务器,也可以发邀请链接,但密钥方式更适合无界面服务器方案2 在Tailscale管理后台生成授权密钥过程
登录你服务器绑定的GitHub账号,打开Tailscale官网后台,进入Settings → Keys页面,点击生成新的Auth Key: 勾选Reusable(可重复使用,后续加新设备可以复用同一个密钥) 如果希望密钥长期有效不需要定期更新,可以关闭Expiration(关闭密钥过期) 生成后复制得到以tskey-auth-开头的完整密钥
注意:这个Single-use(单次使用)类型的Tailscale认证密钥,只能给一台设备使用,使用后就会自动失效被吊销;Reusable(可复用)的认证密钥在后台删除/ revoke(撤销)后,之前已经完成授权加入组网的机器,仍然可以正常使用,不受影响。
另一台windows服务器,通过密钥加入该组网的操作如下:
1.先安装好Windows版Tailscale客户端,完成安装后退出客户端(确保程序完全关闭)2.按下Win+R输入cmd打开命令提示符,或者打开PowerShell,执行以下命令,用你复制的密钥替换占位符,即可完成免授权接入(这里的exe程序填自己安装的真实目录)"C:\Program Files\Tailscale\tailscale.exe"up--authkey=这里替换成你的密钥3.执行完成后,重新打开Tailscale客户端,就能看到设备已经成功加入你的组网,和其他设备正常互访了。管理界面也可看到已纳入组网
2.2.1.3 子网路由配置
如果要通过Tailscale访问路由器/NAS所在局域网的所有设备,需要开启这个功能
1.在网关设备(路由器/NAS)启动时加上--advertise-routes=你的内网段参数宣告网段 例子:"C:\Program Files\Tailscale\tailscale.exe"up --advertise-routes=10.168.5.0/24 若是修改宣告网段,重新执行带新网段的命令即可覆盖原有配置"C:\Program Files\Tailscale\tailscale.exe"up --advertise-routes=新的网段/掩码 若是清除所有子网路由配置:执行空路由参数即可清空"C:\Program Files\Tailscale\tailscale.exe"up --advertise-routes=2.登录Tailscale后台,找到对应网关设备,点击「Edit route settings」,勾选要开放的网段保存批准3.其他接入Tailscale的设备启动时加上--accept-routes参数,之后就可以直接访问内网内任意设备的IP了 accept-routes=接受别人宣告的路由 含义:本机自动学习组网内其他设备分享的内网网段,不用手动配置路由。 举例:另一台 Linux 宣告了192.168.1.0/24,你开了这个参数后,本机直接能访问192.168.1.x 设备。第2步子路由勾选配置界面如下
注意:
检查IP转发是否开启(Windows) Windows默认关闭IP转发,子网路由需要开启才能转发跨网段流量,可以按以下步骤开启:1.打开「注册表编辑器」,定位到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters2.找到名为IPEnableRouter的项,将值修改为13.重启电脑生效2.2.2 linux
2.2.2.1 配置方式
密钥获取方式及管理后台配置同上面Windows
2.2.2.1.1 直接装
# 下载并执行官方安装脚本curl-fsSLhttps://tailscale.com/install.sh|sudosh# 查看服务状态sudosystemctl status tailscaled# 开启组网sudotailscale up# 查看本机Tailscale虚拟IPtailscaleip-4# 查看组网内所有在线设备tailscale status# 测试与其他设备连通tailscaleping100.xx.xx.xx# 断开组网sudotailscale down2.2.2.1.2 docker部署
带子网路由的配置(分享本地子网给Tailscale组网)
如果需要把Ubuntu所在的内网网段(例如10.168.5.0/24)通过Tailscale共享,修改命令替换成自己的密钥和网段即可:
sudodockerrun-d\--name=tailscaled\-v/var/lib:/var/lib\-v/dev/net/tun:/dev/net/tun\--network=host\--cap-add=net_admin\--cap-add=net_raw\--restartunless-stopped\--envTS_AUTHKEY=<auth key>\--envTS_ROUTES=10.168.5.0/24\--envTS_STATE_DIR=/var/lib/tailscale\tailscale/tailscale验证安装
执行以下命令进入容器查看状态,能看到设备在线、分配到Tailscale的虚拟IP就说明安装成功:
dockerexec-ittailscaled tailscale status2.2.2.1.3 Docker Compose部署
新建docker-compose.yaml文件,将替换为你自己的认证密钥,如需配置子网路由,添加TS_ROUTES环境变量即可:
version:"3"services:tailscaled:image:tailscale/tailscalecontainer_name:tailscaledvolumes:-/var/lib:/var/lib-/dev/net/tun:/dev/net/tunnetwork_mode:hostcap_add:-net_admin-net_rawrestart:unless-stoppedenvironment:TS_AUTHKEY:<auth key>TS_STATE_DIR:/var/lib/tailscale在文件所在目录执行命令启动:
docker-composeup-d