异地组网教程之神器Tailscale
前言公司是异地的当前异地组网技术是用贝锐蒲公英买了个路由器去配置的然而免费的只能绑定三台设备我只能在公司才能连内网回家远程公司电脑又很卡然后就研究如何才能在家里也能连上公司的内网接着发现了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/windows2.2各平台安装与基础配置2.2.1 windows2.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.按下WinR输入cmd打开命令提示符或者打开PowerShell执行以下命令用你复制的密钥替换占位符即可完成免授权接入这里的exe程序填自己安装的真实目录C:\Program Files\Tailscale\tailscale.exeup--authkey这里替换成你的密钥3.执行完成后重新打开Tailscale客户端就能看到设备已经成功加入你的组网和其他设备正常互访了。管理界面也可看到已纳入组网2.2.1.3 子网路由配置如果要通过Tailscale访问路由器/NAS所在局域网的所有设备需要开启这个功能1.在网关设备路由器/NAS启动时加上--advertise-routes你的内网段参数宣告网段 例子C:\Program Files\Tailscale\tailscale.exeup --advertise-routes10.168.5.0/24 若是修改宣告网段重新执行带新网段的命令即可覆盖原有配置C:\Program Files\Tailscale\tailscale.exeup --advertise-routes新的网段/掩码 若是清除所有子网路由配置执行空路由参数即可清空C:\Program Files\Tailscale\tailscale.exeup --advertise-routes2.登录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 linux2.2.2.1 配置方式密钥获取方式及管理后台配置同上面Windows2.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\--nametailscaled\-v/var/lib:/var/lib\-v/dev/net/tun:/dev/net/tun\--networkhost\--cap-addnet_admin\--cap-addnet_raw\--restartunless-stopped\--envTS_AUTHKEYauth key\--envTS_ROUTES10.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:3services: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 keyTS_STATE_DIR:/var/lib/tailscale在文件所在目录执行命令启动docker-composeup-d