Nostr VPN:去中心化私有网状 VPN
基于 Nostr 身份和 FIPS 数据平面的私有网状 VPN,无需邮箱、手机号或服务商账号。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v4.1.19
- 平台
- Windows、macOS、Linux
详细介绍
项目简介
nostr-vpn 是一款 Tailscale 风格的私有网状 VPN。它的数据平面基于作者独立演进的 FIPS 实现,用 Nostr 身份和签名名册控制设备入网,不需要邮箱、手机号或 VPN 服务商账号。项目提供 nvpn CLI 与守护进程,以及 macOS、Linux、Windows、Android、iOS 原生应用;此外还包含一个实验性的公共出口节点市场,按流量用比特币(Cashu)付费。
该分支针对高速 VPN 流量做了优化。在可比的直连路径基准中,它的吞吐量约为原实现的三倍:让包所有权、缓冲区与会话状态保持在一起,批量处理 I/O 与加密,复用包存储,避免逐包排队、分配、拷贝与重复查找,同时保留 FIPS 协议接口。
主要功能
- 用 Nostr 身份与签名名册进行设备入网审批,密钥保存在本地
- 优先点对点直连,UDP 直连不可用时经 FIPS 邻居中继
- 内置 MagicDNS、子网路由、出口节点与 WireGuard 上游出口
- 桌面与移动原生应用,配套
nvpnCLI 与守护进程 - 支持代理(agent)主机入网与无头审批流程
- 实验性付费出口市场:供应商在 Nostr 上广播按字节计价,买家通过 Cashu Spilman 通道付款
安装与使用
- CLI:
cargo install nvpn - 桌面应用与 CLI 压缩包:见 releases
- iOS:App Store 或 TestFlight
- Android:releases 中的 APK 或 Zapstore
- 服务器:StartOS 的
.s9pk包、Umbrel 镜像
在 Debian 或 Ubuntu 上用 Cargo 构建 CLI 需要 pkg-config 与 libdbus-1-dev。
第一台设备创建网络:
nvpn init
nvpn set --device "$DEVICE_ID"
nvpn start --daemon --connect
另一台设备启动守护进程并生成加入请求:
nvpn init
nvpn start --daemon --connect
nvpn join-request
管理员在应用里打开 Devices → Add Join Request,扫码或粘贴请求并确认添加;管理员应用会签名并分发更新后的名册。审批不会自动完成,加入方需保持守护进程运行,直到收到批准。
守护进程的常用操作:
nvpn start --daemon --connect
nvpn status
nvpn stop
Linux 或 macOS 上可用 sudo nvpn service install --config <path> 设置开机启动,之后各命令都使用同一个 --config 路径。
注意事项
- 桌面端面向 Apple Silicon macOS 与 x64 Linux/Windows,移动端为 arm64;Intel macOS 仅支持源码构建。
- 在容器中运行需要 root、
/dev/net/tun、NET_ADMIN与iproute2;出口保护需nftables,出口转发与旧规则清理需iptables。 - 付费出口默认加密 DNS,但出口方仍能看到目标 IP 和未加密流量,敏感数据请使用 HTTPS。
- 通道默认在 12 小时服务截止前续期,买家可在 24 小时后取回未收取的资金。
- 项目以 git.iris.to 为主仓库,GitHub 为镜像;许可证为 MIT。
本作品整理自 GitHub 开源项目 mmalmi/nostr-vpn,原作者 @mmalmi,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v4.1.19当前版本
改进各平台的入网与重连,修复桌面端网络和控制问题,加强连接安全;Windows 新增外观选项与 IPv6 出口路由;iPhone VPN 空闲 CPU 仍偏高,实测约 5.4%,后续将继续优化。
评论