bst365老牌体育

异地组网全攻略:ZeroTier / Tailscale / Cloudflare 三大方案对比与实操教程

异地组网全攻略:ZeroTier / Tailscale / Cloudflare 三大方案对比与实操教程

技术学习教程Cloudflare异地组网ZeroTierTailscale内网穿透虚拟局域网VPN异地组网全攻略:ZeroTier / Tailscale / Cloudflare 三大方案对比与实操教程luoli2026-08-132026-08-17异地组网全攻略:ZeroTier / Tailscale / Cloudflare 三大方案前言你有没有遇到过这些问题?

人在公司或出差,想访问家里 NAS 里的文件、看监控,却要先折腾路由器端口映射;

想远程连接家里的电脑、内网里的打印机、摄像头,被公网 IP 和 NAT 卡住;

买了 VPS / 云服务器,想和家里的设备组成一个”局域网”,互相随意访问。

异地组网(也叫虚拟局域网、Mesh 组网 / VPN overlay)就是解决这些问题的钥匙:它把分散在不同地区、不同运营商网络里的设备,通过加密隧道”拉”进同一个虚拟局域网。之后你用家里的 IP(如 192.168.2.8)就能直接访问,不用再记一串公网 IP,也不用开放端口。

目前最主流的是三大方案:

方案

技术

适合人群

ZeroTier

自研 VL2 二层虚拟以太网

想自建网络、设备跨平台、免费额度大

Tailscale

基于 WireGuard 的现代组网

个人/小团队、追求简单零配置、免费设备不限

Cloudflare

企业级零信任 + Tunnel 内网穿透

已有 Cloudflare 账号、想把内网服务发布到公网

下面分别介绍原理、免费额度、以及最详细的实操步骤。

方案一:ZeroTier(全球可达的虚拟以太网)简介与原理ZeroTier 通过自研协议在公网上构建一个 Layer-2 虚拟以太网(overlay network),所有节点宛如连接在同一台交换机上。它核心的 P2P 架构没有”集中式瓶颈”——控制面用平台的协调服务器(my.zerotier.com)管理网络,数据面设备之间尽量直连(打洞穿透 NAT),打洞失败时自动走中继。

每个网络有一个 16 位十六进制 Network ID(如 8056c2e21c000001)

每个设备加入后会获得一个 V4/V6 虚拟地址,网络内可自由互ping、互访端口

支持 Windows / macOS / Linux / Android / iOS / Docker / FreeBSD / OpenWRT 等几乎所有平台

官网:https://www.zerotier.com

免费额度

个人免费版:无限网络、每个网络最多 25 台设备,适合大多数个人家庭场景

更高需求走付费计划($179/月起的商业版等)

完整操作教程第一步:注册并在网页创建网络

打开 my.zerotier.com,用邮箱/Google/GitHub 登录

点击 Create A Network(创建一个网络)

创建成功后,页面会显示一个 16 位 Network ID,复制保存备用

记下这个网络默认的 IP 段(如 10.244.x.x),这就是你虚拟局域网段的起点

第二步:在各类设备上安装客户端并加入网络

Linux(Debian/Ubuntu/CentOS 等),一行脚本安装:

123456789101112131415# 加载 ZeroTier 官方源并安装(纯静态编译,装完即用)curl -s https://install.zerotier.com | sudo bash# 启动服务并设置开机自启sudo systemctl enable zerotier-onesudo systemctl start zerotier-one# 查看节点状态(拿到 10 位 Node ID 地址)sudo zerotier-cli status# 加入你的网络(换成你的 16 位 Network ID)sudo zerotier-cli join 8056c2e21c000001# 查看已加入的网络和分配的虚拟 IPsudo zerotier-cli listnetworks

Windows / macOS:到 下载页面 下载安装包,装好后在系统托盘找到 ZeroTier 图标 → Join Network → 粘贴 16 位 Network ID 即可。

手机(Android/iOS):应用商店安装 ZeroTier One,打开后点右上角 +,输入 Network ID 加入。加入后记得把系统的 VPN 开关打开,让隧道真正生效。

第三步:在后台授权(关键步骤,容易漏)

回到 my.zerotier.com 你的网络

在 Members(成员) 列表里,找到刚加入的设备

点击该成员行的 Auth 复选框(勾选变绿,即”通过认证”)

系统会自动给该设备分配一个虚拟 IP(如 10.244.x.x)

⚠️ 新设备加入网络默认是未授权状态,没有授权之前无法与网络内其他节点通信。必须手动勾选 Auth。这是 ZeroTier 新手最容易踩的坑。

第四步:验证连通

在某台设备上 ping 另一台的虚拟 IP,或直接 ssh zt用户@10.244.x.x 远程登录:

1ping 10.244.2.10 # 通说明组网成功

到这里,家里的 NAS、电脑、服务器的互相访问就打通了。

实用技巧

跨网段访问:如果想在虚拟网里直接访问真实局域网(如用 192.168.2.x 访问家里所有设备),需要在某台 Linux 设备上开启 IPTables 转发 + NAT 并设置为路由设备,较复杂,家庭一般用虚拟 IP 直接访问即可。

网络隔离:可以给不同成员设置流控规则(Traffic Rules),实现只允许特定节点互通,保护内网安全。

方案二:Tailscale(基于 WireGuard,简单到极致)简介与原理Tailscale 基于开源的 WireGuard® 协议构建,但把最难的配置都自动化了:你在网页/后台做一次授权,客户端就用 密钥管理 + NAT 打洞(TURN/STUN)+ DERP 中继 自动建立 P2P 加密连接。设备之间的连接几乎总是直连,速度快、时延低。

设备就是你的”设备”(电脑、手机、服务器、NAS)

默认启用 MagicDNS:加入的设备自动获得 主机名.你的tailnet.ts.net 这样的域名,不用记 IP

支持 Windows / macOS / Linux / Android / iOS / 路由器(openwrt、Synology、OPNsense 等)

官网:https://tailscale.com

免费额度Personal(个人免费版,非商业用途,永久免费):

设备数量无限

最多 3 个网络/账号(tailnet),每个最多 6 个用户

标记资源(服务器、子网路由等)50 个

用 Google / GitHub / 个人自定义域名注册即可,免费开箱即用

完整操作教程第一步:注册并创建账号

打开 tailscale.com/login,用你的 Google / GitHub / Microsoft 等账号登录。首次登录会自动创建一个 tailnet(相当于你的私有组网空间),并分配一个子域名(如 my-xxx.ts.net)。

第二步:在设备上安装并登录

Linux:

12345# 安装curl -fsSL https://tailscale.com/install.sh | sh# 登录(会打印一个 auth URL)sudo tailscale up

执行 tailscale up 后终端会显示一个链接,用手机或电脑浏览器打开,登录你的账号并确认授权,回终端就会提示登录成功。

Windows / macOS:到 tailscale.com/download 下载安装,运行 App 后用账号登录即可。

手机:应用商店安装 Tailscale,登录同一账号,开启 VPN 开关。

第三步:查看设备与分配 IP

再次执行:

1tailscale status

会看到类似输出,其中就包含每台设备的 100.x.y.z IP 和 MagicDNS 名称:

12345# Health check:# - Nickname may default to a .ts.net name from the machine hostname100.101.102.1 nas user@ your-nas.ts.net linux -100.101.102.2 laptop user@ your-laptop.ts.net linux -100.101.102.3 phone user@ your-phone.ts.net ios -

网上随便找一台设备 ping 你的主机名.ts.net 域名或 100.x IP,通了就成功。

实用技巧① 子网路由(把整个家庭内网暴露给 Tailscale 网)

在 NAS / 路由器等 Linux 设备上,把家里局域网(如 192.168.2.0/24)”广播”给整个组网,这样你在外面直接用 192.168.2.8 访问家里所有设备:

1sudo tailscale up --advertise-routes=192.168.2.0/24

然后在后台 login.tailscale.com/admin → Machines → 找到这台设备 → Edit route settings → 勾选对应网段 → Save,宣告生效。

② 出口节点(Exit Node,全流量走它翻/统一出口)

把某台设备设为出口节点,手机上所有流量都经过它出去:

1sudo tailscale up --advertise-exit-node

然后在手机 Tailscale App 里开启 Use exit node 选择该设备即可。

③ Tailscale SSH:tailscale ssh 主机名 免密登录,由 Tailscale 统一管理身份。

方案三:Cloudflare(企业级零信任 + Tunnel 内网穿透)简介与原理严格说,Cloudflare 和上面两个侧重点不完全一样。它提供一套 企业级零信任(Cloudflare Zero Trust) 体系,核心是 Cloudflare Tunnel(cloudflared):

在你的内网设备/服务器上跑一个轻量的 cloudflared 守护进程

它主动向 Cloudflare 全球网络发起 出站(outbound-only)连接,无需公网 IP、不用在路由器开端口映射、不会被 NAT/防火墙阻挡

Cloudflare 边缘节点再把请求”隧道”转发到你的内网服务

配合 Access 策略,实现”每个请求都需要身份验证”的零信任访问

官网:https://developers.cloudflare.com/cloudflare-one/

一句话对比:ZeroTier / Tailscale 偏重于”设备之间互联”(像 VPN),Cloudflare 更偏重于”把内网服务安全地发布给特定的人访问”(像内网穿透 + 访问控制)。

免费额度

Cloudflare Zero Trust 免费版:最多 50 个用户

可创建多个 Tunnel,流量走 Cloudflare 免费 CDN

需要先有一个 Cloudflare 账号(可免费注册)并绑定一个域名做接入

完整操作教程(用 Tunnel 把内网服务发布出去)第一步:注册 Cloudflare 并准备

打开 dash.cloudflare.com,注册账号

把一个域名接入 Cloudflare(在 Cloudflare 添加站点、改 NS 到 Cloudflare)

登录后左侧选你的站点,进入 Zero Trust(会引导你创建一个”团队域名”,如 myteam.cloudflareaccess.com,记住了以后访问用它)

实际上 Zero Trust 也可以不绑定域名直接开始试用,但要用 自定义域名 访问就必须先接入该域名。

第二步:安装 cloudflared 并创建隧道

在需要发布服务的内网 Linux 机器上:

1234567# Linux 安装 cloudflared# Debian/Ubuntu:curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.debsudo dpkg -i cloudflared.deb# 登录(会打开一个 Cloudflare 网页确认)cloudflared tunnel login

登录成功后,自动把凭据写入到 ~/.cloudflared/cert.pem。

第三步:创建隧道并配置

12345# 创建一条隧道,比如名字叫 home-elkcloudflared tunnel create home-elk# 会输出一条 Tunnel ID(类似 uuid)# 为隧道写配置文件 ~/.cloudflared/config.yml

编辑 ~/.cloudflared/config.yml:

123456789tunnel: <你的Tunnel-ID>credentials-file: /root/.cloudflared/<你的Tunnel-ID>.jsoningress: - hostname: nas.你的域名.com # 你想通过哪个域名访问 service: http://localhost:3000 # 转发到本机 3000 端口的服务 - hostname: router.你的域名.com service: http://192.168.2.1 # 也可以转发到内网其他设备 - service: http_status:404 # 兜底规则,必须存在

第四步:运行隧道并绑定 DNS

12# 后台运行(生产建议用 systemd 托管开机自启)cloudflared tunnel run home-elk

然后在 Cloudflare 后台给每个 hostname 加上一条 CNAME 记录:指向 .cfargotunnel.com(也可以用 cloudflared tunnel route dns home-elk nas.你的域名.com 一条命令自动添加)。

第五步:配置 Access 权限(零信任核心)

进入 Zero Trust → Access → Applications,添加一个 Self-hosted 应用

域名填 nas.你的域名.com

在 Policies 里设置哪些身份可以访问(Gmail 邮箱、One-time PIN 邮箱、或 Allowlist 组织成员)

保存后,任何人访问 nas.你的域名.com 都要先过 Cloudflare 的登录验证,验证通过才把请求隧道到你的内网服务

至此,你在公网任何地方,用浏览器登录 Cloudflare Access 后,就能安全访问家里 NAS 的 Web 界面了。

三方案对比速览

维度

ZeroTier

Tailscale

Cloudflare Tunnel

定位

虚拟以太网 / Mesh VPN

现代 Mesh VPN(WireGuard)

内网穿透 + 零信任访问控制

免费额度

每网 25 设备

设备无限、6 用户

最多 50 用户

数据层协议

自研 ZeroTier 协议

WireGuard

cloudflared 加密隧道

是否要公网 IP

否(打洞/中继)

否(打洞/DERP)

否(纯出站连接)

是否需要绑定域名

不需要

不需要(有 ts.net 域名)

需要(绑定后走自定义域名)

最擅长的场景

设备间互联互通

设备互联 + 子网路由 + 出口

把内网 Web 服务安全发布

上手难度

中(需后台授权)

低(最简单)

中高(多一步 DNS/域名)

平台覆盖

极广(含 OpenWRT/Docker)

广

客户端为 cloudflared + WARP

怎么选?

就想把自己的多台设备连在一起互相访问:首选 Tailscale,免费、几乎零配置、体验最好。

想自建网络、深度控制、设备类型特别多(含路由器/NAS 老设备):用 ZeroTier。

想把 NAS / 建站服务 / 内网 Web 应用暴露给信任的人访问,又要安全和管控:用 Cloudflare Tunnel + Access。

三者也可以混用:比如家里用 Tailscale 打通设备,再把其中的某台当作 Cloudflare 隧道入口发布给外部人员。

常见问题Q:组网后速度慢是为什么?A:多为 NAT 打洞失败走了中继(DERP / ZeroTier 中继)。开启 UDP 端口、减少设备前面的对称 NAT,通常能切回 P2P 直连,速度大幅提升。

Q:免费方案数据安全吗?A:隧道都用现代加密(Tailscale 是 WireGuard,ZeroTier 是 VL2+加密),数据在传输中被加密。但要留意免费层通常是”控制面在厂商”——私网流量本身不经过厂商,只是打洞/中继的协调。

Q:在没网的环境(纯内网、无外网)能用吗?A:不能直接用于完全离线环境;Tailscale/ZeroTier 首次握手依赖协调服务器,离线环境可用本地部署方案(Tailscale 有 self-hosted coordination 选项,Cloudflare 属云端)。普通有外网的家庭/办公场景无此问题。

Q:云服务器(VPS)也能加入组网吗?A:完全可以。VPS 装客户端加入后,就成为虚拟局域网的一员,家里可以直接访问 VPS,反之 VPS 也能访问家里设备,方便做反向方向的服务。

Q:异地组网能代替公网 IP 吗?A:对”设备间访问”(SSH、文件共享、远程桌面、访问 NAS Web)可以很好代替;对有严格公网入向要求的场景(比如给第三方发内网地址)则相对复杂,建议用 Cloudflare Tunnel 或纯公网。

参考资料

ZeroTier 官网

ZeroTier 下载(安装命令)

Tailscale 定价(免费额度)

Tailscale Linux 安装

Tailscale 子网路由文档

Cloudflare Zero Trust 文档

推荐链接

大佬CM博客

大佬周润发博客

大佬青云志博客

相关推荐

菠菜365官网 哪里的猕猴桃好吃又出名?中国五大核心产区深度解析:品种、营养与上市时间全攻略
菠菜365官网 dnf恶魔之灵魂宝珠/恶魔之能量宝珠/恶魔之力宝珠获取方法及属性介绍
菠菜365官网 群峦:重生