ルーター上でCloudflaredを動かしてみたかったのでやってみた
ビルド方法 #
1. OpenWrtのSDKをダウンロードして解凍
ここ
からターゲットのSDKをダウンロードして解凍する
自分はGL-MT300N-V2で動かしたいのでこれ
をダウンロードした
2. リポジトリをクローン
packages
内にこれ
をgit clone
3. ビルドの準備
次のコマンドを実行してパッケージをインストールする
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
を実行してExtra packages
内のopenwrt-cloudflared
にスペースで*を入れる
4. ビルド
次のコマンドでビルドする
make ./package/openwrt-cloudflared/compile
終わるとbin
内にパッケージができる
バイナリだけ欲しい場合(推奨) #
これ
をクローンGOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -trimpath -ldflags "-s -w" ./cmd/cloudflared
でビルド
アーキテクチャは必要に応じて変更してください
動かす #
バイナリが20MBくらいあるので、exrootで拡張するかパッケージを解凍してtmp等別の場所に入れてうごかすことをおすすめします。自分は/etc/init.d/cloudflared
を作成して、起動時にバイナリをGithubからダウンロードするようにしました
※2022/02/09追記
起動時にダウンロードだと動かない場合があるので、/etc/init.d/cloudflared
を作成しUSBメモリから読み込むようにしました。(tmuxが必要です)
デーモン化する場合は/root/.cloudflared
の中身を/etc/cloudflared
にコピーする必要があります。
!/bin/sh /etc/rc.common
START=99
STOP=15
start() {
# commands to launch application
tmux new-session -s cfd-ssh -d "/mnt/sda1/bin/cloudflared tunnel --hostname ssh.example.com --url ssh://localhost:22 --no-autoupdate"
}
stop() {
# commands to kill application
tmux send-keys -t cfd-ssh C-c
sleep 5
}