2015-11-23 20:05:07 +00:00
VpnCloud - Peer-to-Peer VPN
---------------------------
2020-06-03 14:11:20 +00:00
![Checks ](https://github.com/dswd/vpncloud/workflows/Checks/badge.svg?branch=master )
![Security audit ](https://github.com/dswd/vpncloud/workflows/Security%20audit/badge.svg?branch=master )
2015-11-23 20:05:07 +00:00
**VpnCloud** is a simple VPN over UDP. It creates a virtual network interface on
2016-04-05 13:27:47 +00:00
the host and forwards all received data via UDP to the destination. VpnCloud
2020-10-21 21:55:20 +00:00
establishes an encrypted 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:
2015-11-23 20:05:07 +00:00
2020-10-21 21:55:20 +00:00
$> vpncloud -c REMOTE_HOST:PORT -p 'mypassword' --ip 10.0.0.1/24
2015-11-23 20:05:07 +00:00
2020-10-31 09:12:19 +00:00
or as config file:
crypto:
password: mysecret
ip: 10.0.0.1
peers:
- REMOTE_HOST:PORT
2020-06-18 17:55:47 +00:00
For more information, please see the [Website ](https://vpncloud.ddswd.de ) or the [Forum ](https://groups.google.com/forum/#!forum/vpncloud ).
2015-11-24 17:39:42 +00:00
2016-04-05 13:27:47 +00:00
### Project Status
This project is still [under development ](CHANGELOG.md ) but has reached a
somewhat stable state. VpnCloud features the following functionality:
2015-11-26 21:16:51 +00:00
* Setting up tunnels between two networks via Ethernet (TAP) and IP (TUN)
2016-06-01 19:51:22 +00:00
* Connecting multiple networks with multiple forwarding behaviors (Hub, Switch,
Router)
2020-10-21 21:55:20 +00:00
* Strong encryption using Curve25519 key pairs and AES methods
2016-04-05 13:27:47 +00:00
* Automatic peer-to-peer meshing, no central servers
2015-11-26 21:16:51 +00:00
* NAT and (limited) firewall traversal using hole punching
* Automatic reconnecting when connections are lost
2016-06-01 19:51:22 +00:00
* Non-native forwarding modes, e.g. IP based learning switch and prefix routed
Ethernet networks.
2019-01-04 08:27:47 +00:00
* High throughput and low additional latency (see [performance page ](https://vpncloud.ddswd.de/features/performance ))
2015-12-03 08:38:14 +00:00
* Support for tunneled VLans (TAP device)
2016-08-10 09:34:13 +00:00
* Automatic port forwarding via UPnP
2020-06-03 14:11:20 +00:00
* Support for publishing [beacons ](https://vpncloud.ddswd.de/docs/beacons ) to help nodes find each others
* Support for statsd monitoring
2015-11-24 17:39:42 +00:00
2016-07-02 09:24:49 +00:00
### Installing
2019-02-14 21:53:08 +00:00
#### Compiling from source
2020-06-03 15:42:43 +00:00
Prerequisites: Git, [Cargo ](https://www.rust-lang.org/install.html ), asciidoctor
2019-02-14 21:53:08 +00:00
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` .
2016-07-02 09:24:49 +00:00
The tests can be run via ``cargo test``.
2020-06-03 14:11:20 +00:00
#### Cross-Compiling & packaging
Please see the [builder folder ](builder ).
2019-03-01 15:11:53 +00:00
2016-07-02 09:24:49 +00:00
2016-06-01 19:51:22 +00:00
### 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
2016-07-02 09:24:49 +00:00
distributions. Maintainers who want to package VpnCloud are very welcome.
2016-06-01 19:51:22 +00:00
* **Security review**: The security has been implemented with strong security
2016-08-12 06:39:46 +00:00
primitives but it would be great if a cryptography expert could verify the
2016-06-01 19:51:22 +00:00
system.
* **Feedback on use cases**: Some feedback on how VpnCloud is being used and
maybe some tutorials covering common use cases would be nice.
2015-11-24 17:39:42 +00:00
### Semantic Versioning
2019-12-04 12:43:38 +00:00
This project uses [semantic versioning ](http://semver.org ).