Lantunnel

Lantunnel

点对点私有内网组网

连接官网

应用介绍

NAS 在家里,跑模型的那台机器在公司,Ollama 还留在办公桌的台式机上——三台都在 NAT 后面,而且哪一台你都不想让它暴露到公网上。于是要么去路由器上开端口映射然后天天担心,要么套一层公网穿透服务把流量交给别人。

Lantunnel 把这几台机器拉进一个只有你发出去的配置文件才能加入的小型私有网格,它管这个叫 Tunnel。网络条件允许时两台设备走 QUIC 直连打洞,实在打不通才退回中转——中转的那台 Gateway 转发的是密文,它自己解不开。两条路都不需要在路由器上开任何入站端口,也不会给你生成一个公网 URL。

身份是签名的,不是共享的:没有 Tunnel 密码、没有组密钥、没有 bearer token,每台设备自己持有一把 Ed25519 私钥,每次接入都要证明自己有这把钥匙,而钥匙永远不离开生成它的那台机器。中转数据用 X25519 协商出的密钥做 XChaCha20-Poly1305 封装。

一台设备可以把它所在的整个内网段导出去,于是家里放一个客户端,NAS、打印机、面板就都能被网格里其他设备访问到。访问控制写在被访问的那台机器上,不在 Gateway、也不在任何服务器上。Rust 写的,Apache-2.0,macOS、Windows、Linux、Android、iOS 都有客户端。

软件功能



直连优先:新连接先尝试 QUIC 点对点直连加 UDP 打洞,中转是兜底而不是默认路径;客户端界面里能看到当前这条链路是直连还是中转,以及各自的流量。

端到端加密:经过中转的数据由两端 X25519 协商密钥后用 XChaCha20-Poly1305 封装,Gateway 只转发它读不懂的字节。

不开端口:所有设备都是主动向外拨号,内网里没有任何机器需要入站规则、公网 IP 或域名。

整段内网可达:一个客户端可以导出它所在的私有网段,让网格里的其他设备直接访问这个网段上的 NAS、打印机、摄像头。

ACL 在自己手里:每个客户端自己决定对外提供什么,策略保存在目标机器上,Gateway 不掌握也不下发。

一个二进制两种形态:lantunnel-client 默认打开桌面窗口,加 --headless 就是同一套运行时跑在服务器上。

应用无感接入:客户端在本机开一个 SOCKS5 监听(默认 127.0.0.1:1080),也可以打开原生路由,让普通程序直接用内网地址访问,不需要知道 Tunnel 的存在。

三个组件就是全部:客户端、Gateway(集合点与打洞信令,兼做中转)、以及离线生成 Tunnel 的 lantunnel-admin——后者用 init-tunneladd-peer 两条命令签发配置,运行时不联网。

两种用法:不想自己架 Gateway,可以在 lantunnel.app 注册拿一个永久免费 Tunnel,直连流量和内网设备数不限,中转每月 5 GB;想自己托管,Gateway 的代码就在这个仓库里,Apache-2.0,完全不计量。

自建门槛:Gateway 用 init --public-ip 初始化,默认 QUIC 走 UDP 8443、映射走 8444;私钥不出 Gateway 主机,只把公开的 scope 文件拷过去。从源码编译需要 Rust 1.89+、protoc 和 Node。

关于 iOS:安卓客户端每次发版都带签名 APK,iOS 没有现成下载——Apple 把 packet-tunnel 权限绑定在签名它的开发者账号上,只能自己构建。