ngrokはNATやファイヤーウォール以下にあるローカルサーバーを、インターネット越しにアクセス可能にしてくれるサービス。 便利だよと教えてもらったので、試してました。
無料版の機能はアカウント登録等不要で、ngrokコマンドをダウンロードして実行すると、すぐに使えました。 ngrokコマンドは依存ライブラリ等なしの単一バイナリで、Windows, MacOSX, Linux用のものが配布されています。
公開したいサーバー
お試しなので、とりあえずPython3に組み込みのhttp.serverを使ってみます。
$ python3.5 -m http.server
カレントディレクトリにはindex.htmlを配置済み。これでlocalhostの8000番ポートでHTTPサーバーが起動します。 このサーバーをngrokで外部から接続できるようにしてみます。
ngrokの起動
localhostの8000番ポートをhttpで公開するのであれば次の通り。
$ ngrok http 8000
起動すると、ngrokのサービスのサーバーと、公開対象のサーバーにクライアントが接続し、「bf9fddc6.ngrok.io」のようにドメイン名が割り当てられます。 表示されたURLにWebブラウザ等で接続すると、対象のサーバー(この例だとPythonのhttp.server)につながります。
開発中のWebアプリなどを、ちょっと外部に見せたりするのに便利そうな感じですね。 有料プランだとカスタムのドメインを使えたりするそうなので、そのあたりも試してみたいところです。
参考
英語ドキュメントが整備されていて、使い方もわかりやすかったです。
ちなみに「えん-ぐろっく」と読むらしい