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 |
|
#1657 在 网络编程
每月43次下载
410KB
9K SLoC
VpnCloud - 点对点VPN
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 build
或 cargo build --release
(发布版本)进行编译。二进制文件可以在 target/release/vpncloud
中找到。
可以通过 cargo test
运行测试。
交叉编译与打包
请参阅 builder 文件夹。
欢迎贡献
还有一些领域需要进一步工作,并且欢迎贡献。
- Linux 软件包:VpnCloud 已足够稳定,可以打包成 Linux 发行版。欢迎想要打包 VpnCloud 的维护者。
- 帮助其他平台:如果您是拥有 Windows 或 MacOS 经验的 Rust 开发者,您的帮助将非常欢迎,以便将 VpnCloud 移植到这些平台。
- 安全审查:安全功能已使用强大的安全原语实现,但如果一位加密专家能验证系统,那将非常好。
- 对用例的反馈:对 VpnCloud 的使用反馈以及一些涵盖常见用例的教程将非常受欢迎。
语义版本控制
该项目使用 语义版本控制。
依赖关系
~11–23MB
~405K SLoC