有,而且成熟可用,Go 生态里有不少“广域网异地设备,虚拟成同一局域网”的组网软件,不是没有。这类技术一般叫 Mesh 叠加网络 / P2P 虚拟局域网(Overlay VPN),原理是在每台电脑上创建虚拟网卡(TUN/Wintun),给所有设备分配同一网段的虚拟内网IP,NAT打洞优先直连,打不通再中继,公网上的机器就像在同一个局域网里互相访问。
主流Go编写的项目
Tailscale(最出名)核心客户端绝大部分代码是Go,基于WireGuard。装好客户端登录同一个网络,跨公网设备自动拿到内网IP,能互相ping、访问共享文件夹、远程桌面,和局域网一样。官方有控制服务器;如果你不想用官方服务器,可以搭配同样Go写的Headscale自建控制面,完全自己掌控。
NetBirdGo开发,WireGuard底层,零信任组网,自带Web管理后台,支持SSO,适合小团队,跨平台,NAT自动穿透,构建虚拟局域网。
Nebula(Slack开源)纯Go开发,自研协议,不依赖WireGuard,去中心化P2P组网,给设备分配虚拟内网网段,大量节点集群用得很多。
Anywherelan(awl)、EdgeVPN去中心化无中心服务器版本,Go+libp2p,只需要共享一个密钥Token,设备自动发现组网,不用单独部署信令服务器,适合个人少量设备自用。
关键误区澄清
这类工具绝大多数都需要一台“信令/协调服务器”(只交换节点地址信息,业务流量尽量P2P直连,不转发数据);不存在完全不需要任何服务器、纯靠客户端互相盲找的成熟产品——NAT穿透必须有地方交换公网端点信息。少数去中心化项目用DHT分布式哈希表替代中心服务器,但连接成功率会下降。
它本质是三层虚拟网卡,不是真正物理局域网;能做到ping、TCP/UDP互通,大部分局域网业务(Samba共享、SSH、内网Web、数据库)都能跑;部分依赖二层广播的老局域网协议(ARP广播、局域网发现)会受限。
ZeroTier是C++写的,不属于Go,但上面这些Go项目是直接替代品。
简单选型参考
懒人直接用:Tailscale(Go客户端)
想自建控制面、不经过第三方:Headscale + Tailscale客户端
企业、细粒度权限:NetBird、Netmaker
完全无中心服务器、少量设备自用:Anywherelan、EdgeVPN
网友回复


