LoginSignup
6
1

More than 3 years have passed since last update.

ngrok でトンネリング中の URL を取得する shell command ( curl, jq 使用 )

Last updated at Posted at 2020-07-18

手軽にローカル環境を公開できる ngrok をよく使うのですが、無料版だと毎回実行ごとに トンネリングURL (公開URL) が変わってしまってなにかとめんどくさい。
ngrok コマンドを実行中のteminalから値をコピーすればいいんだけど、めんどくさい。

この記事で分かること / 分からないこと

分かること

ngrok でトンネリングされる URL を 1コマンドで取得する 方法
curl コマンドと jq コマンド を使用します。

分からないこと

ngrok でトンネリングされる URL を なんとか固定する 方法
こちらが知りたい場合はこちらの記事などが参考になると思います。(未検証)
https://qiita.com/miso_develop/items/bdcf15489b069ba1fa61

結論

curl -s localhost:4040/api/tunnels|jq -r ".tunnels[0].public_url"

※ 管理用 Web Interface が localhost:4040 で動作している場合

解説的なやつ

ngrok が標準で搭載している、 Client API を使っています。
そうなんです。 ngrok さん自前でAPIを用意してくれています。ありがたやぁ〜。
ngrok を起動すると、標準では localhost4040 ポートで管理用 Web Interface を同時起動してくれます。 この時、localhost:4040/api/tunnels に GETリクエストすると、 現在起動中のトンネルの状態をJSON で返してくれます(ngrok-documentation)。 これを jq で処理します。

(蛇足) 毎回上のやつ打つのもめんどいやん?

alias 使ったらOK

bashrcとか
alias ngrok_url="curl -s localhost:4040/api/tunnels|jq -r \".tunnels[0].public_url\""

これで1コマンドで出せます。

1コマンドで表示
$ ngrok_url
https://XXXXXXXXXXXX.ap.ngrok.io

(蛇足の蛇足) mac 利用者なら pbcopy 使ってクリップボードにコピーできます

$ ngrok_url|pbcopy

=> クリップボード上にコピーされる

追記

私よりも先に考えついた人がいらっしゃったようです。 (初出の明示)
https://gist.github.com/rjz/af40158c529d7c407420fc0de490758b#gistcomment-3309439
https://easonwang.gitbook.io/web_advance/ngrok-shi-yong
https://gist.github.com/VMuliadi/3784123bf63d517f66c6a16bda591317

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1