OpenWrtでcloudflaredサービスを自動起動させるように設定をします。
cloudflaredのダウンロード
以下が最新リリースへのリンクです。
CPUがArm 64bitの場合は cloudflared-linux-arm64 、CPUがArm 32bitでハードウェア浮動小数点(Neon)に対応している場合は cloudflared-linux-armhf 、それ以外の場合は cloudflared-linux-arm になります。(それぞれのファイルは30MB以上あります。)
例)
最新の cloudflared-linux-armhf のリンクは https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-armhf になります。
ファイルをダウンロードして実行権限を付与します。
wget -O /usr/bin/cloudflared \
https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-armhf
chmod +x /usr/bin/cloudflared
上記のコマンドを実行すると、ファイルがダウンロードされます。
Connecting to 20.27.177.113:443
Redirected to /github-production-release-asset/106867604/e197214e-60d4-4f19-b917-132cc877fd0b?sp=r&sv=2018-11-09&sr=b&spr=https&se=2025-07-28T01%3A26%3A00Z&rscd=attachment%3B+filename%3Dcloudflared-linux-armhf&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2025-07-28T00%3A25%3A11Z&ske=2025-07-28T01%3A26%3A00Z&sks=b&skv=2018-11-09&sig=e6NN%2B0dVWRYxFLBnsOVJINhT3%2BrU1jPagjabEnpFbvU%3D&jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc1MzY2MzA4OSwibmJmIjoxNzUzNjYyNzg5LCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.06KQ7LEbzI3zhaGyWG_sr9acIQ_I31_nMq41CzyrpvU&response-content-disposition=attachment%3B%20filename%3Dcloudflared-linux-armhf&response-content-type=application%2Foctet-stream on release-assets.githubusercontent.com
Writing to 'e197214e-60d4-4f19-b917-132cc877fd0b?sp=r'
e197214e-60d4-4f19-b 100% |*******************************| 36267k 0:00:00 ETA
Download completed (37137694 bytes)
/etc/init.d にcloudflaredの起動ファイルを追加
/etc/init.d/cloudflared を新規作成し、下記の内容にします。
<YOUR_TOKEN> はCloudflareのWebサイトのダッシュボードから取得したトークンにしてください。
#!/bin/sh /etc/rc.common
USE_PROCD=1
START=95
STOP=01
name=$(basename $(readlink -f $0))
pid_file="/var/run/$name.pid"
cfd_token="<YOUR_TOKEN>"
boot() {
ubus -t 30 wait_for network.interface network.loopback 2>/dev/null
rc_procd start_service
}
start_service() {
procd_open_instance
procd_set_param command /usr/bin/cloudflared --autoupdate-freq 24h0m0s tunnel run --token ${cfd_token}
procd_set_param pidfile "$pid_file"
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
procd_close_instance
}
stop_service() {
# special handling required since procd checks the pidfile
:
}
cloudflared を自動起動するようにする
ルーターの起動時にcloudflaredを自動で起動するようにします。
# /etc/init.d/cloudflared enable
cloudflared を起動
# /etc/init.d/cloudflared start
cloudflared を停止する場合は
# /etc/init.d/cloudflared stop
cloudflared が起動しているかを確認する場合は
# ps | grep cloudflared
9397 root 550m S /usr/bin/cloudflared --autoupdate-freq 24h0m0s tunnel run --token ...