Go to file
Dennis Schwerdel 3cf1072da7 Fix ifname 2020-10-07 22:38:41 +02:00
.cargo Add aarch64 deb packaging 2020-01-24 16:26:23 +03:00
.github Create dependabot.yml 2020-06-15 13:26:34 +02:00
.rpm Modified rpm build process 2019-03-02 01:12:42 +01:00
assets Reload systemd in deb install 2020-07-06 23:06:38 +02:00
builder Asciidoc for manpage 2020-06-03 17:42:43 +02:00
contrib Add default key filename 2020-06-18 01:16:55 +02:00
src Fix ifname 2020-10-07 22:38:41 +02:00
.gitignore Restructure ec2 test framework 2020-06-17 21:43:59 +02:00
CHANGELOG.md Fixed problem with TUN on dynamic host addresses 2020-07-20 23:56:48 +02:00
Cargo.lock Fix ifname 2020-10-07 22:38:41 +02:00
Cargo.toml Remove C code 2020-07-14 00:03:08 +02:00
LICENSE.md Update corpyrighht years 2020-05-28 09:03:48 +02:00
README.md Add forum 2020-06-18 19:55:47 +02:00
breaking_changes.md Planned breaking change 2020-07-06 08:50:52 +02:00
build.rs Remove C code 2020-07-14 00:03:08 +02:00
rustfmt.toml Add default port for peers 2020-06-24 15:28:16 +02:00
vpncloud.adoc Document statsd support 2020-06-30 17:38:48 +02:00
vpncloud.code-workspace Updated dependencies, rustfmt 2019-12-04 09:32:35 +01:00

README.md

VpnCloud - Peer-to-Peer VPN

Checks Security audit

VpnCloud is a simple VPN over UDP. It creates a virtual network interface on the host and forwards all received data via UDP to the destination. VpnCloud establishes a fully-meshed VPN network in a peer-to-peer manner. It can work on TUN devices (IP based) and TAP devices (Ethernet based). Tunneling traffic between two nodes can be as easy as:

   $> vpncloud -c REMOTE_HOST:PORT --ifup 'ifconfig $IFNAME 10.0.0.1/24 mtu 1400 up'

For more information, please see the Website or the Forum.

Project Status

This project is still under development but has reached a somewhat stable state. VpnCloud features the following functionality:

  • Setting up tunnels between two networks via Ethernet (TAP) and IP (TUN)
  • Connecting multiple networks with multiple forwarding behaviors (Hub, Switch, Router)
  • Encrypted connections
  • Automatic peer-to-peer meshing, no central servers
  • NAT and (limited) firewall traversal using hole punching
  • Automatic reconnecting when connections are lost
  • Non-native forwarding modes, e.g. IP based learning switch and prefix routed Ethernet networks.
  • High throughput and low additional latency (see performance page)
  • Support for tunneled VLans (TAP device)
  • Option to hide protocol header
  • Automatic port forwarding via UPnP
  • Support for publishing beacons to help nodes find each others
  • Support for statsd monitoring

Installing

Compiling from source

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.

Cross-Compiling & packaging

Please see the builder folder.

Contributions welcome

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.
  • 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.

Semantic Versioning

This project uses semantic versioning.