vpncloud/README.md

81 lines
3.3 KiB
Markdown
Raw Normal View History

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
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'
```
2016-06-01 19:52:37 +00:00
For more information, please see the [Wiki](https://github.com/dswd/vpncloud.rs/wiki).
2015-11-24 17:39:42 +00:00
### Project Status
2015-11-24 17:39:42 +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)
2016-06-01 19:51:22 +00:00
* 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)
* 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.
2016-06-01 19:52:37 +00:00
* High throughput and low additional latency (see [performance page](https://github.com/dswd/vpncloud.rs/wiki/Performance-Measurements))
* Support for tunneled VLans (TAP device)
2015-11-24 17:39:42 +00:00
2016-07-02 09:24:49 +00:00
### Installing
##### Compiling from source
Prerequisites: Git, [Cargo](https://www.rust-lang.org/install.html),
Full C build environment including autotools (for building libsodium)
The checked-out code can be compiled with ``make``.
The binary could then be found in `target/release/vpncloud`.
The tests can be run via ``cargo test``.
##### Debian / Ubuntu
Deb packages for each release can be found in the
[releases](https://github.com/dswd/vpncloud.rs/releases) section. Currently only
packages for amd64 are available (I am accepting help on building and packaging
for other platforms).
2016-07-02 09:24:49 +00:00
##### Arch Linux (AUR)
There is a [VpnCloud package for Arch Linux](https://aur.archlinux.org/packages/vpncloud/)
thanks to Oscar Rainford (fourbytes).
2016-07-02 09:24:49 +00:00
2016-06-01 19:51:22 +00:00
### Contributions welcome
2015-11-24 17:39:42 +00:00
2016-06-01 19:51:22 +00:00
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
primitives but it would 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.
2015-11-24 17:39:42 +00:00
### Semantic Versioning
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.