13个版本 (4个稳定版)

2.3.0 2021年12月23日
2.2.0 2021年4月10日
2.1.0 2021年2月17日
1.0.0 2019年3月22日
0.2.0 2015年11月28日

#1657网络编程

每月43次下载

GPL-3.0 许可证

410KB
9K SLoC

Rust 8K SLoC // 0.0% comments Python 494 SLoC // 0.0% comments AsciiDoc 484 SLoC Shell 160 SLoC // 0.1% comments RPM Specfile 41 SLoC

VpnCloud - 点对点VPN

Checks Security audit

VpnCloud 是一个高性能的基于UDP的点对点网状VPN,支持强加密、NAT穿越和简单配置。它通过椭圆曲线密钥和AES-256的强端到端加密,以点对点方式建立完全网状的自愈VPN网络。VpnCloud在主机上创建虚拟网络接口,并通过UDP将所有接收到的数据转发到目的地。它可以工作在TUN设备(基于IP)和TAP设备(基于以太网)上。

$> vpncloud -c REMOTE_HOST:PORT -p 'mypassword' --ip 10.0.0.1/24

或作为配置文件

crypto:
  password: mysecret
ip: 10.0.0.1
peers:
  - REMOTE_HOST:PORT

有关更多信息,请参阅网站讨论组

项目状态

此项目仍在开发中,但已达到某种稳定状态。VpnCloud具有以下功能:

  • 自动点对点网状,无中心服务器
  • 连接丢失时自动重新连接
  • 通过VPN连接数百个节点
  • 高吞吐量和低额外延迟(见性能页面
  • 基于以太网(TAP)和IP(TUN)创建虚拟网络接口
  • 使用Curve25519密钥对和AES方法进行强端到端加密
  • 支持不同的转发/路由行为(中心,交换机,路由器)
  • 使用打孔穿越NAT和防火墙
  • 通过UPnP自动端口转发
  • 限制性环境下的WebSocket代理模式
  • 支持隧道VLAN(TAP设备)
  • 支持发布信标以帮助节点找到彼此
  • 支持statsd监控
  • 内存占用低
  • 单个二进制文件,无依赖,无内核模块

安装

从源码编译

先决条件:Git,Cargo,asciidoctor

已签出的代码可以使用 cargo buildcargo build --release(发布版本)进行编译。二进制文件可以在 target/release/vpncloud 中找到。

可以通过 cargo test 运行测试。

交叉编译与打包

请参阅 builder 文件夹

欢迎贡献

还有一些领域需要进一步工作,并且欢迎贡献。

  • Linux 软件包:VpnCloud 已足够稳定,可以打包成 Linux 发行版。欢迎想要打包 VpnCloud 的维护者。
  • 帮助其他平台:如果您是拥有 Windows 或 MacOS 经验的 Rust 开发者,您的帮助将非常欢迎,以便将 VpnCloud 移植到这些平台。
  • 安全审查:安全功能已使用强大的安全原语实现,但如果一位加密专家能验证系统,那将非常好。
  • 对用例的反馈:对 VpnCloud 的使用反馈以及一些涵盖常见用例的教程将非常受欢迎。

语义版本控制

该项目使用 语义版本控制

依赖关系

~11–23MB
~405K SLoC