GitHub Repo with RISC-V binary:
https://github.com/Johnnybyzhang/cloudflared-riscv/releases
curl -o cloudflared DOWNLOAD-LINKManual
Based on https://wiki.sipeed.com/hardware/en/kvm/NanoKVM/network/cloudflared.html
install -m 0755 ./cloudflared /usr/sbin/cloudflared
/usr/sbin/cloudflared --version
# create config dir
mkdir -p /etc/cloudflared
# configure file permissions for new files
umask 077
# using file avoids exposing the token in the process list
cat >/etc/cloudflared/config.yml <<'YAML'
no-autoupdate: true
token: YOUR_TUNNEL_TOKEN_HERE
YAML
chmod 600 /etc/cloudflared/config.yml
# test tunnel
cloudflared tunnel --config /etc/cloudflared/config.yml --no-autoupdate run
Setup Autostart using init.d
cat >/etc/init.d/S45cloudflared <<'SH'
#!/bin/sh
PATH=/usr/sbin:/usr/bin:/sbin:/bin
DAEMON="/usr/sbin/cloudflared"
CONF="/etc/cloudflared/config.yml"
LOG="/var/log/cloudflared.log"
PIDFILE="/var/run/cloudflared.pid"
start() {
[ -x "$DAEMON" ] || { echo "cloudflared not found"; exit 1; }
[ -f "$CONF" ] || { echo "missing $CONF"; exit 1; }
mkdir -p /var/run
printf "Starting cloudflared: "
# Keep cloudflared’s own logfile; silence console output
"$DAEMON" tunnel --config "$CONF" --logfile "$LOG" --no-autoupdate run >/dev/null 2>&1 &
echo $! >"$PIDFILE"
echo "OK"
}
stop() {
printf "Stopping cloudflared: "
if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
kill "$(cat "$PIDFILE")" 2>/dev/null || true
sleep 2
kill -0 "$(cat "$PIDFILE")" 2>/dev/null && kill -9 "$(cat "$PIDFILE")" 2>/dev/null || true
rm -f "$PIDFILE"
echo "OK"
else
killall cloudflared 2>/dev/null && echo "OK" || echo "not running"
fi
}
status() {
if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
echo "cloudflared running (pid $(cat "$PIDFILE"))"
else
echo "cloudflared stopped"; exit 1
fi
}
case "$1" in
start) start ;;
stop) stop ;;
restart|reload) stop; start ;;
status) status ;;
*) echo "Usage: $0 {start|stop|restart|status}"; exit 1 ;;
esac
exit 0
SH
chmod +x /etc/init.d/S45cloudflaredStart and verify:
/etc/init.d/S45cloudflared start
/etc/init.d/S45cloudflared status
tail -n 100 /var/log/cloudflared.log