Before using, you must install and run cjdns.
$ npm installcp config.example.js config.jsEdit your config file as you see fit. The default settings should work.
node index.jspm2 is a daemon process manager to make running applications in the background a little easier.
Installing pm2:
$ npm install pm2 -gRun the vpn server in the background.
$ pm2 start index.jsMake sure to allow access to TCP and UDP for the cjdns port (change 30969 to match your cjdns port):
$ ufw allow 30969You will need to set up IP Masquerading to route traffic from your connected clients to the Internet.
Each system is diffferent, but here's an example for Debian (replace eth0 with the name of your public-facing ethernet device):
$ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
$ iiptables -A FORWARD -i tun0 -j ACCEPT
$ iiptables -A FORWARD -o tun0 -j ACCEPT
$ isudo sysctl -w net.ipv4.ip_forward=1
iptables-savePersist between reboots:
# Enable use 1, Disable use 0
# 1. Edit "sysctl.conf" file
sudo nano /etc/sysctl.conf
# 2. Add following line at the bottom of the file, if it's not in the file, otherwise replace 0 with 1
net.ipv4.ip_forward = 1
# 3. Use Ctrl + X, Y, Enter key to Save and exit nano editor
# 4. Apply the change
sudo sysctl -p
or
sudo sysctl -p /etc/sysctl.conf
iptables-save > /etc/iptables.rules
mkdir -p /etc/network/if-pre-up.d
echo "#!/bin/bash" > /etc/network/if-pre-up.d/firewall
echo "/sbin/iptables-restore < /etc/iptables.rules" >> /etc/network/if-pre-up.d/firewall
chmod +x /etc/network/if-pre-up.d/firewallAdd a route (replace 10.66.0.0/16 with a network range compatible with your config.js settings)
$ ip route add 10.66.0.0/16 dev tun0