vpncloud/README.md

73 lines
3.1 KiB
Markdown
Raw Normal View History

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
2020-12-03 18:04:32 +00:00
**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).
2015-11-23 20:05:07 +00:00
2020-12-03 18:04:32 +00:00
```sh
$> 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:
2020-12-03 18:04:32 +00:00
```yaml
crypto:
password: mysecret
ip: 10.0.0.1
peers:
- REMOTE_HOST:PORT
```
2020-10-31 09:12:19 +00:00
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
### 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
* Automatic peer-to-peer meshing, no central servers
2015-11-26 21:16:51 +00:00
* Automatic reconnecting when connections are lost
2020-12-03 18:04:32 +00:00
* Connecting hundreds of nodes with the VPN
2019-01-04 08:27:47 +00:00
* High throughput and low additional latency (see [performance page](https://vpncloud.ddswd.de/features/performance))
2020-12-03 18:04:32 +00:00
* Creating virtual network interfaces based on Ethernet (TAP) and IP (TUN)
* Strong end-to-end encryption using Curve25519 key pairs and AES methods
* Support for different forwarding/routing behaviors (Hub, Switch, Router)
* NAT and firewall traversal using hole punching
* Automatic port forwarding via UPnP
2020-12-03 18:04:32 +00:00
* Support for tunneled VLans (TAP devices)
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
2020-12-03 18:04:32 +00:00
* Low memory footprint
* Single binary, no dependencies, no kernel module
2015-11-24 17:39:42 +00:00
2016-07-02 09:24:49 +00:00
### Installing
#### Compiling from source
2020-06-03 15:42:43 +00:00
Prerequisites: Git, [Cargo](https://www.rust-lang.org/install.html), 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`.
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
This project uses [semantic versioning](http://semver.org).