PeerVPN is a software that builds virtual ethernet networks between multiple computers. Such a virtual network can be useful to facilitate direct communication that applications like file sharing or gaming may need. Often, such direct communication is made impossible or very difficult by firewalls or NAT devices.
Most traditional VPN solutions follow the client-server principle, which means that all participating nodes connect to a central server. This creates a star topology, which has some disadvantages. The central node needs lots of bandwith, because it needs to handle all the VPN traffic. Also, if the central node goes down, the whole VPN is down too.
A virtual network built by PeerVPN uses a full mesh topology. All nodes talk directly to each other, there is no need for a central server. If one node goes down, the rest of the network is unaffected.
Configuring PeerVPN is easy. You just need to configure a network name, a password and the contact information (IP address and port) of another PeerVPN node. Adding a new node to an existing network doesn't require the existing nodes to alter their configuration, because its IP address is automatically distributed across the whole virtual network.
There is a small tutorial that explains how to setup a simple VPN. The configuration options are explained in the sample peervpn.conf that is bundled together with the program.
PeerVPN is available for Linux and FreeBSD. You will need the OpenSSL toolkit to build and use PeerVPN.
PeerVPN is licensed under the terms of the GPLv3.
As of 2015-03-24, some Linux distributions are packaging a broken version of OpenSSL which may cause segmentation faults during initialization. If you are affected, please upgrade to the latest OpenSSL release or use a statically linked PeerVPN binary in the meantime until the packages are updated.
If you have any questions or bug reports, contact me at email@example.com.