+
9
-

回答

有,而且成熟可用,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

网友回复

我知道答案,我要回答