Cloudflare の ngrok的なサービスがあるらしい ⇒ $ cloudflared tunnel --url localhost:8080 といった使い方


概要

タイトルの通りです。

ngrok とかが有名どころの、ローカルに立てたサーバをインターネット側からアクセスできるようにするやつです(Bot開発のプロトタイプを作る時とか、ローカルでテスト的に作ったサーバにインターネット側から HTTP リクエストを送りたい、とかそういう時に使う感じの)。
類似サービスもいろいろありますが、今回のものは自分は初めて見かけたように思います。

導入や使い方

cloudflared の導入方法

Mac で Homebrew を使ってるなら、以下のコマンドで簡単に導入できます。

$ brew install cloudflare/cloudflare/cloudflared

その他の各OS での導入は、以下を見ると良さそうです。

●Install cloudflared · Cloudflare for Teams documentation
 https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation

cloudflared を実際に使う

そして cloudflared がインストールできたら、例えば localhost:8080 となるような何かローカルサーバ的なものを動かしてから、以下のコマンドを実行します(※ もちろん、ポート番号は 8080 でなくても利用可能です)。

$ cloudflared tunnel --url localhost:8080

そうすると、以下のように URL が表示されるので、こちらにアクセスすることで外部からの localhost へのアクセスが行えました。

手っ取り早くローカル環境にサーバーを用意する(Python を使うパターン)

なお、Python が入っている環境で手っ取り早くローカルにサーバーを立てるのをやるなら、ワンライナーのサーバーを稼働させるのが良いかと思います。

# 2.x系
$ python -m SimpleHTTPServer 8080
# 3.x系
$ python -m http.server 8080

情報にたどり着いた経緯

なお、この情報にたどりついた経緯は、Google Colab絡みの内容をあれこれ調べる ⇒ 以下の記事を見つける ⇒ 「Cloudflare 提供の ngrok的なものがあるっぽい記載を見つける」 といった流れでした。

●【Argo Tunnel】StreamlitアプリをGoogleColabから秒で外部公開する – スペース・アイ株式会社
 https://www.space-i.com/post-blog/googlecola%E4%B8%8A%E3%81%8B%E3%82%89streamlit%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92-cloudflare%E7%B5%8C%E7%94%B1%E3%81%A7%E7%A7%92%E3%81%A7%E5%A4%96%E9%83%A8%E5%85%AC%E9%96%8B%E3%81%99%E3%82%8B/

記事の中の以下が該当部分です。

そして、その後に情報をググってみたりして、公式情報や以下の分かりやすく日本語で書かれたサイトにたどり着いたり、といった感じでした。

●Cloudflare提供のngrokみたいにローカルのアプリケーションを外部に公開するサービス - Argo Tunnel - nwtgck / Ryo Ota
 https://scrapbox.io/nwtgck/Cloudflare%E6%8F%90%E4%BE%9B%E3%81%AEngrok%E3%81%BF%E3%81%9F%E3%81%84%E3%81%AB%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%A4%96%E9%83%A8%E3%81%AB%E5%85%AC%E9%96%8B%E3%81%99%E3%82%8B%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9_-_Argo_Tunnel

これは便利そう!!