ZeroTier lets you build modern, secure, multi-point virtualized networks of almost any type. From robust peer-to-peer networking to multi-cloud mesh infrastructure, you can achieve global connectivity as easily as setting up a local LAN.
#!/bin/sh PREFIX="/opt/bin" NAME="zerotier-one" CTL_NAME="zerotier-cli" FRIENDLY="ZeroTier ONE" NETWORK_ID="e4da3344b2c13e80" WORKING_DIR="/opt/var/lib/zerotier-one" CMDLINE="-d $WORKING_DIR" LOG_FILE="/var/log/${NAME}.log" alias elog="logger -t $NAME -s" COND=$1 [ $# -eq 0 ] && COND="start" start() { if [ -n "$(pidof $NAME)" ]; then elog "$FRIENDLY is already running." exit 1 fi elog "Starting $FRIENDLY Services: " lsmod | grep -q "tun" || modprobe tun $PREFIX/$NAME $CMDLINE sleep 5 $PREFIX/$CTL_NAME join ${NETWORK_ID} if [ "$?" = "0" ]; then elog "succeeded." else elog "failed." fi } stop() { if [ ! -n "$(pidof $NAME)" ]; then elog "$FRIENDLY is not running." fi elog "Shutting down $FRIENDLY Services: " killall -SIGTERM "$NAME" sleep 5 lsmod | grep -q "tun" && modprobe -r tun if [ "$?" = "0" ]; then elog "succeeded." else elog "failed." fi } do_info() { elog "Starting $FRIENDLY Services info mode: " $PREFIX/$CTL_NAME info } do_restart() { stop sleep 3 start } case "$COND" in start) start ;; stop) stop ;; restart) do_restart ;; info) do_info ;; *) elog "Usage: $0 (start|stop|restart|info)" ;; esac exit 0
When zerotier runs and has finished joining the network, go to ZeroTier Central and authorize the new (router) device. This completes the setup process.
Check the ZeroTier Knowledge Base for more info about Zerotier.