2015-11-23 20:05:07 +00:00
|
|
|
VpnCloud - Peer-to-Peer VPN
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
[![Build Status](https://travis-ci.org/dswd/vpncloud.rs.svg?branch=master)](https://travis-ci.org/dswd/vpncloud.rs)
|
|
|
|
[![Coverage Status](https://coveralls.io/repos/dswd/vpncloud.rs/badge.svg?branch=master&service=github)](https://coveralls.io/github/dswd/vpncloud.rs?branch=master)
|
|
|
|
[![Latest Version](https://img.shields.io/crates/v/vpncloud.svg)](https://crates.io/crates/vpncloud)
|
|
|
|
|
|
|
|
**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
|
|
|
|
establishes a fully-meshed VPN network in a peer-to-peer manner. It can work
|
2015-11-23 20:05:07 +00:00
|
|
|
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'
|
|
|
|
```
|
|
|
|
|
|
|
|
More details can be found in [the manpage](vpncloud.md).
|
2015-11-25 18:23:25 +00:00
|
|
|
Some performance measurements can be found [here](performance.md).
|
2015-11-24 17:39:42 +00:00
|
|
|
|
|
|
|
|
2016-04-05 13:27:47 +00:00
|
|
|
### Project Status
|
2015-11-24 17:39:42 +00:00
|
|
|
|
2016-04-05 13:27:47 +00:00
|
|
|
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)
|
|
|
|
* Connecting multiple networks with multiple forwarding behaviors (Hub, Switch, Router)
|
2015-12-02 13:16:13 +00:00
|
|
|
* Encrypted connections using [libsodium](https://github.com/jedisct1/libsodium)
|
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
|
|
|
|
* Non-native forwarding modes, e.g. IP based learning switch and prefix routed Ethernet networks.
|
|
|
|
* High throughput and low additional latency (see [performance page](performance.md))
|
2015-12-03 08:38:14 +00:00
|
|
|
* Support for tunneled VLans (TAP device)
|
2015-11-24 17:39:42 +00:00
|
|
|
|
|
|
|
However there are some open issues:
|
|
|
|
|
2016-04-05 13:27:47 +00:00
|
|
|
* Encryption has not been formally reviewed, use with care.
|
|
|
|
* The tests might be missing some corner cases and more field tests would be nice.
|
2015-11-24 17:39:42 +00:00
|
|
|
|
|
|
|
Please feel free to help and contribute code.
|
|
|
|
|
|
|
|
|
|
|
|
### Semantic Versioning
|
|
|
|
|
2016-04-05 13:27:47 +00:00
|
|
|
This project uses [semantic versioning](http://semver.org). Currently that means
|
|
|
|
that everything can change between versions before 1.0 is finally released.
|
|
|
|
However I am considering to release 1.0 soon.
|