Cjdns

Cjdns implements an encrypted IPv6 network using public-key cryptography for address allocation and a distributed hash table for routing. This provides near-zero-configuration networking, and prevents many of the security and scalability issues that plague existing networks.

Install and configure

Install cjdns from community or cjdns-gitAUR from the Arch User Repository. The package includes a systemd service file, but sysvinit scripts are available too in cjdns-git-sysvinitAUR.

If you do not already have one, generate a new cjdroute.conf in the /etc directory by becoming root and running:

# cjdroute --genconf > /etc/cjdroute.conf
Note: For added security, you should limit access to /etc/cjdroute.conf as it contains the private key capable of encrypting and decrypting all your communications; you can do so by becoming root and running:
# chmod 600 /etc/cjdroute.conf

Become root again and open /etc/cjdroute.conf, then add at least one peer to the "connectTo" section (Peers can be anyone else running cjdns who gives you credentials to connect to them with, and can be found in #cjdns and #projectmeshnet on EFnet among many other places).

Starting

Start and enable the cjdns systemd service. This will also start the cjdnsadmin service.

If cjdns did not start, you should check for errors and edit /etc/cjdroute.conf if needed:

# systemctl status cjdns
# journalctl -u cjdns

See also