PeerVPN – Open-source peer-to-peer VPN
peervpn.net
peervpn.net
It's actively updated, and the software used for Project Meshnet. You can join the Hyperboria network, or just connect all of your computers isolatedly. I have it running on the computers I manage, from tiny OpenWRT routers to big servers.
I did the switch from tinc because certificates are a pain to generate and distribute, and because of security concerns: http://www.tinc-vpn.org/security/
I submitted this story because peervpn looks like the easiest to setup by a wide margin. No certs required and very easy to start on a new machine.
To connect to other nodes, it uses either IP(v4 or v6) or Ethernet Frames. See: https://github.com/cjdelisle/cjdns#3-connect-your-node-to-yo...
I'm working on a Django Rest Framework frontend for it, Cirque: https://github.com/jMyles/cirque, which will make this easier to visualize.
Fortunately, CJDNS works for this use case as well. It is possible to use a "tunnel" to connect CJDNS nodes via an IPv4 virtual interface or to connect to a gateway to IPv4. This way, IPv4 software can connect both to other nodes and to the outside internet.
At the moment, I believe that this is only configurable through the UDP admin interface, but this is most definitely a feature that we'll build into Cirque.
https://github.com/cjdelisle/cjdns/blob/master/admin/README....
If I use CJDNS to do this, it seems like I have a lot more steps to do. I have to copy everyone's pub key and setup ipv4 tunneling on each server?
With PeerVPN all I have to do is pick a single password and copy and paste it to each other server while only needing to change the static IP.
It failed to reach popularity largely because it used X.509 for keys and there was no PKI. And bad UI and NAT and some other nails in the coffin.
But there was point when there was a more or less credible bright future everybody running IPSec, no NAT and IPv6, and you wouldn't need firewalls because you could just configure who you want to talk to using IPSec security policy and strong authentication...
[Edit] Hmmm, the homepage says
> Automatically builds tunnels through firewalls and NATs
but I don't see anything in the code that would suggest that it can connect two NAT'ed peers directly. There's a relaying support and (I think) there's a connect-back like option for asking others to connect to you if you are NATed.
Which is not really a problem IMHO.
I mean, most of the time these peer-to-peer VPN solutions are useful when you have boxes with a single public internet interface (this is what you get with most "cheap" hosting offers), and you want a private network between them. In this case no NAT is involved.
And of course, if you plan to connect your laptop to this network, then you are probably behind your ISP router NAT, so 1 NAT'ed peer connect-back will be useful here.
But 2 sides behind NAT configuration is a more unlikely use case. Either you are dealing with two "users" behind their ISP router - but in this case what are these guys trying to do? Some Hamachi-like usage? Considering it's linux only that wouldn't be all that useful. Then they will anyway need some STUN server so that's not really peer-to-peer anymore.
And even for more technical users, it would be nice to have something for a quick connection that is real quick to set up.
Almost all of the other P2P alternatives I have seen over the years fail on either (a) or (b).
https://github.com/rcarmo/docker-templates/tree/master/peerv...