====== 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. \\ - Register an account on the Zerotier website. [[https://www.zerotier.com/|Zerotier]] - Create a network on [[https://my.zerotier.com/|ZeroTier Central]] - Note down the network ID - Use [[entware_installation_usage|Entware]] to install Zerotier on your router. (At the command line, type "opkg install zerotier"). - 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 [[https://github.com/rampageX/arm-static-bins/raw/master/ZeroTierOne/1.10.6/mipsel/zerotier-one|ZeroTierOne 1.10.6 mipsel static-bin]] and use it to replace the old version. - Use the script below to control Zerotier operation. You can auto-start the daemon, join the network, stop, unload tun and more. - (Replace the NETWORK_ID in this 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 \\ \\ 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 [[https://zerotier.atlassian.net/wiki/spaces/SD/overview?homepageId=163911|ZeroTier Knowledge Base]] for more info about Zerotier. \\ \\