[Cjdns](https://github.com/cjdelisle/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.

## Contents

*   [1 Installation](#Installation)
*   [2 Configuration](#Configuration)
*   [3 Starting](#Starting)
*   [4 See also](#See_also)

## Installation

[Install](/index.php/Install "Install") [cjdns](https://www.archlinux.org/packages/?name=cjdns). An alternative [cjdns-git](https://aur.archlinux.org/packages/cjdns-git/) package (with more dependencies) is also available.

Both packages include a systemd service file, but sysvinit scripts are available too as [cjdns-git-sysvinit](https://aur.archlinux.org/packages/cjdns-git-sysvinit/).

## Configuration

On installation, a `/etc/cjdroute.conf` is autogenerated.

If you need to re-generate it, execute:

```
# cjdroute --genconf > /etc/cjdroute.conf

```

**Note:** Double-check [file permissions](/index.php/File_permissions_and_attributes#Changing_permissions "File permissions and attributes") for `/etc/cjdroute.conf` as it contains the private key capable of encrypting and decrypting all your communications. Executing `chmod 600 /etc/cjdroute.conf` as root sets them correctly.

Edit `/etc/cjdroute.conf` as root to 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. They can be found in [Hyperboria peers](https://github.com/hyperboria/peers), #cjdns and #projectmeshnet on [EFnet](http://www.efnet.org) among many other places.

## Starting

[Start/enable](/index.php/Start/enable "Start/enable") the `cjdns.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

*   [Wikipedia:Cjdns](https://en.wikipedia.org/wiki/Cjdns "wikipedia:Cjdns")