Ngrok を使用してインターネット上のローカル Web サイトまたはアプリをテストする方法
あなたはウェブサイトまたはモバイル アプリケーションの開発者で、NAT またはファイアウォールの背後にあるローカルホスト サーバーをテスト目的で公共のインターネットに公開したいと考えていますか?このチュートリアルでは、ngrok を使用してこれを安全に行う方法を説明します。
Ngrok は、NAT やファイアウォールの背後にあるローカル サーバーを安全なトンネル経由でパブリック インターネットに公開するための、センセーショナルな無料のオープン ソースのクロスプラットフォーム リバース プロキシ サーバーです。これは、自宅から直接パーソナル クラウド サービスを実装するために使用できる優れたコンピュータ プログラムです。
基本的にはローカルホストへの安全なトンネルを確立するため、実際の展開前に Web サイトのデモを実行したり、ローカルで実行されているバックエンドに接続されたモバイル アプリをテストしたり、開発マシン上で Web フック コンシューマを構築したりすることが可能になります。
ングロクの特徴:
- 主要なプラットフォームに対して実行時の依存関係がなく、簡単にインストールでき、高速に動作します。
- 安全なトンネルをサポートします。
- 後で検査して再生できるように、トンネル上のすべてのトラフィックをキャプチャして分析します。
- ルーターでのポート転送を廃止できます。
- HTTP 認証 (パスワード保護) の実装を有効にします。
- TCP トンネルを使用して、SSH などの HTTP を使用しないネットワーク化されたサービスを公開します。
- SSL/TLS 証明書を使用した HTTP または HTTPS のトンネリングのみをサポートします。
- 複数の同時トンネルをサポートします。
- Webhook リクエストを再実行できるようにします。
- 仮想ホスト サイトを操作できるようにします。
- API と有料プランの多くのオプションを介して自動化できます。
使用する前に、Web サーバーをインストールするか、機能する LAMP または LEMP スタックのセットアップを検討する必要があります。それ以外の場合は、次のガイドに従ってください。
Linux に LAMP スタックをインストールします。
- RHEL/CentOS 7.0 への LAMP (Linux、Apache、MariaDB、PHP/PhpMyAdmin) のインストール
- Ubuntu 16.10 に PHP 7 および MariaDB 10 を使用して LAMP をインストールする方法
Linux に LEMP スタックをインストールします。
- Debian 9 Stretch に LEMP (Linux、Nginx、MariaDB、PHP-FPM) をインストールする方法
- 16.10/16.04 に Nginx、MariaDB 10、PHP 7 (LEMP スタック) をインストールする方法
- 最新の Nginx、MariaDB、PHP を RHEL/CentOS 7/6 および Fedora 20-26 にインストールする
Linux に Ngrok をインストールする方法
Ngrok のインストールは非常に簡単です。以下のコマンドを実行して、単一のバイナリを含むアーカイブ ファイルをダウンロードして解凍します。
$ mkdir ngrok
cd ngrok/
wget -c https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
unzip ngrok-stable-linux-amd64.zip
ls
バイナリ ファイルを取得したら、Web サーバーへのリクエストをテストするために、Web サーバー (Apache) のデフォルト ドキュメント ルートに基本的な index.html ページを作成しましょう。
$ sudo vi /var/www/html/index.html
次の HTML コンテンツをファイルに追加します。
<!DOCTYPE html>
<html>
<body>
<h1>This is a TecMint.com Dummy Site</h1>
<p>We are testing Ngrok reverse proxy server.</p>
</body>
</html>
ファイルを保存し、http ポート 80 を指定して ngrok を起動します (別のポートでリッスンするように Web サーバーを設定している場合は、そのポートを使用する必要があります)。
$ ngrok http 80
開始すると、ターミナルに次のような出力が表示されるはずです。
Ngrok UI を使用して Web サーバーへのトラフィックを検査する方法
Ngrok は、トンネル上で実行されているすべての HTTP トラフィックをリアルタイムで検査できるシンプルな Web UI を提供します。
http://localhost:4040
上記の出力から、サーバーへのリクエストはまだ行われていません。まず、以下の URL を使用してトンネルの 1 つにリクエストを送信します。他のユーザーもこれらのアドレスを使用してサイトやアプリにアクセスします。
http://9ea3e0eb.ngrok.io
OR
https://9ea3e0eb.ngrok.io
次に、検査 UI を確認して、時間、クライアント IP アドレス、期間、ヘッダー、リクエスト URI、リクエスト ペイロード、生データなどのリクエストとレスポンスの詳細をすべて取得します。
詳細については、Ngrok ホームページを参照してください: https://ngrok.com/
Ngrok は単純に素晴らしいツールであり、これまでに見つけた中で最もシンプルで強力な安全なローカル トンネル ソリューションです。より多くの帯域幅を取得するには、無料の ngrok アカウントの作成を検討する必要がありますが、さらに高度な機能が必要な場合は、有料アカウントにアップグレードしてみてください。このソフトウェアに関するご意見を、以下のコメント フォームからぜひお知らせください。