Crates.io | vpncloud |
lib.rs | vpncloud |
version | 2.3.0 |
source | src |
created_at | 2015-11-28 16:54:59.758307 |
updated_at | 2021-12-23 20:34:33.027792 |
description | Peer-to-peer VPN |
homepage | https://vpncloud.ddswd.de |
repository | https://github.com/dswd/vpncloud |
max_upload_size | |
id | 3521 |
size | 547,747 |
VpnCloud is a high performance peer-to-peer mesh VPN over UDP supporting strong encryption, NAT traversal and a simple configuration. It establishes a fully-meshed self-healing VPN network in a peer-to-peer manner with strong end-to-end encryption based on elliptic curve keys and AES-256. VpnCloud creates a virtual network interface on the host and forwards all received data via UDP to the destination. It can work on TUN devices (IP based) and TAP devices (Ethernet based).
$> vpncloud -c REMOTE_HOST:PORT -p 'mypassword' --ip 10.0.0.1/24
or as config file:
crypto:
password: mysecret
ip: 10.0.0.1
peers:
- REMOTE_HOST:PORT
For more information, please see the Website or the Discussions group.
This project is still under development but has reached a somewhat stable state. VpnCloud features the following functionality:
Prerequisites: Git, Cargo, asciidoctor
The checked-out code can be compiled with cargo build
or cargo build --release
(release version). The binary could then be found in target/release/vpncloud
.
The tests can be run via cargo test
.
Please see the builder folder.
There are several areas in which still some work has to be done and where contributions are very welcome:
Linux packages: VpnCloud is stable enough to be packaged for Linux distributions. Maintainers who want to package VpnCloud are very welcome.
Help with other platforms: If you are a Rust developer with experience on Windows or MacOS your help on porting VpnCloud to those platforms is very welcome.
Security review: The security has been implemented with strong security primitives but it would be great if a cryptography expert could verify the system.
Feedback on use cases: Some feedback on how VpnCloud is being used and maybe some tutorials covering common use cases would be nice.
This project uses semantic versioning.