Site Tools


freshtomato_zerotier

This is an old revision of the document!


Connecting FreshTomato to Zerotier

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.

  1. Register an account on the Zerotier website. Zerotier
  2. Create a network on ZeroTier Central
  3. Note down the network ID
  4. Use Entware to install Zerotier on your router (At the command line, type “opkg install zerotier”).
  5. If your router is MIPS-based, the Zerotier version may be very old (~ 1.1.4). If so, it can't use some functions such as 'join orbit'. Download the newest version and ZeroTierOne 1.10.6 mipsel static-bin and replace the old version.
  6. Use this script to control Zerotier (auto start zerotierone daemon, join the network, stop, unload tun etceera). Replace the NETWORK_ID in the script with your own:

#!/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


\\
* 5. When zerotier run and join network success, go ZeroTier Central authorized the new device(this router), all done.
* 6. Check the [[https://zerotier.atlassian.net/wiki/spaces/SD/overview?homepageId=163911|ZeroTier Knowledge Base]] for more info about zerotier.
freshtomato_zerotier.1682194918.txt.gz · Last modified: 2023/04/22 21:21 by hogwild