以前から名前は聞いたことがあったものの試していなかったが、
せっかく自宅サーバをリプレイスするならついでに全部Tunnelsを使ってポート開放無しで行こうということでとりあえず試してみた。
ネットで色々見ているとCUIでやる記事が多いものの、GUIで簡単にできるよという情報もドキュメント見ていたらあったのでそちらで試しました。
Cloudflareにログインして、Zero Trustのダッシュボードに行き、AccessからTunnelsへ移動、最初これが分からなくてちょっとだけさまよったw
Create a tunnelから作成が可能で・・・まあ詳細は省きます。
GUIだとインストールコマンドがでてきてそれを入れるだけで勝手にTunnelが出来上がって疎通状態に。
あとはこんな感じの画面が出るので、ローカルのどこにのやつを割り振るかを設定して完了。
n8nはDockerで動かしていてそのままでもいいかなと思ったけど、一応nginx経由でいけるかもためした。
nginx側はhttpなのでかなりシンプルでOK。
server {
server_name localhost, n8n.xn--krsgw--n73t.com;
listen 8081;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Connection '';
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_buffering off;
proxy_cache off;
}
}
とりあえずこれができればMastodonとかも普通に公開できるかな?
そっちもリプレイスが必要なのでRubyバージョンの件が解決したら試したいところ。
あとはアクセスするのに認証的なことができるっぽいのでそのあたりも試していきたいけど、今はちょっとめんどくさいのでまた今度。
追記
2つ目を追加しようとしたらだめだった。
ドキュメント曰くサービスは1つだけとのこと。
ググったら色々でてきたけど一番やりやすいのはDockerっぽかったのでそれで挑戦。
まずOS選択でDockerを選択する。
今回はホストからのアクセスなのでネットワークを作ってそのコマンドを実行する。
sudo docker network create --subnet 172.51.0.0/16 --gateway=172.51.0.1 tunnel
sudo docker run --detach --network tunnel cloudflare/cloudflared:latest tunnel --no-autoupdate run --token XXXXXXXXXXXXXXXXXXXXXXXX
これで指定したGatewayでホストへのアクセスが可能になった。
あとは普通に設定して完了!
Dockerで動かしているやつは一緒にこれを動かしてそのままトンネル使えるって感じみたい。
若干めんどいけど・・・証明書発行とかポート開放とかするくらいならこっちのほうがいいのかどうかはよくわからない。
とりあえず出来たのでOKとしておきます。