This is an old revision of the document!
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, we enable global connectivity with the simplicity of a local network.
#!/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