なんでもいいのですが。
例えば、LINE messageing API等で指定するwebhookの向き先をローカルのサーバに向けて、開発したいときってありますよね。
自分が最初にLINE messageing APIを触ったときは、webhookのURLに自分のドメインのURLを入力して、自前のサーバでテストしてました。
いま考えれば、そんなことをする必要はなく、ngrokというツールを使用すればOKです。
ngrokとは?
ngrokとは、1コマンドで自分のローカルサーバに対してPublicなURLを割り当てることができるツールです。
「百聞は一見に如かず」ということわざの通り、見て触ればわかります。
実行環境
OS: CentOS7ngrokのインストール方法
ngrok用のディレクトリを作成する。
$ mkdir ngrok
$ cd ngrokngrokをインストールする。
$ wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip※wgetコマンドがインストールされていない方は、以下でできる。
$ sudo yum install wgetダウンロードしたファイルを解凍する。
$ unzip ngrok-stable-linux-amd64.zipローカル開発サーバの80番ポートにForwardingするように、以下ngrokコマンドを実行してみる。
$ ./ngrok http 80
Session Status                online
Session Expires               7 hours, 59 minutes
Version                       2.3.35
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://<random>.ngrok.io -> http://localhost:80
Forwarding                    https://<random>.ngrok.io -> http://localhost:80
Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00http(s)://<random>.ngrok.io => http://localhost:80へForwardingされているのがわかります。
オプション
※以下は必須ではないです。単にローカルサーバでテストしたい人は必要ないです。
ユーザ登録をする。
https://dashboard.ngrok.com/signup
ローカル環境にtokenを登録する。
$ ./ngrok authtoken <token>ここ or authページを参照。
登録したアカウントとローカルの開発サーバで実行するngrokを紐づけるために上のtokenが必要みたいです。
これによって、ngrokのWeb管理ページから、ローカルの開発サーバでngrokを実行して作成したトンネルを観れるようになります。
現在(2020/02/22)、tokenありの状態でコマンドを実行すると以下のエラーが表示されました。
$ ./ngrok http 80
The authtoken you specified is properly formed, but it is invalid.
Your authtoken: <token>
This usually happens when:
    - You reset your authtoken
    - Your authtoken was for a team account that you were removed from
    - You are using ngrok link and this credential was explicitly revoked
Go to your ngrok dashboard and double check that your authtoken is correct:
![]()
前にも同じ現象がおこっていた模様。サービス側の問題だったようです。
https://github.com/inconshreveable/ngrok/issues/275
故に、自分は以下コマンドで登録したtokenを削除して、tokenなしで使用してます。
$ rm -rf .ngrok2LINE messsage APIでngrokを使用する
LINE messaging APIのwebhookには、ngrokから割り当てられたURLを入力すると、そのURLを経由して自分のローカルのサーバにメッセージが飛んできます。
https://<random>.ngrok.io/<webhook path>



