[KagoLUG:486] Re: ローカルのサービスをお手軽に外部公開できるngrokを試してみた

Kenichiro MATOHARA matoken @ gmail.com
2017年 5月 1日 (月) 08:34:24 JST


matohara@大隅です.

ngrokですがもう少し試してみました.

* ngrokのsource cdode
sourceは探してみると以下にありました.ライセンスはApache License 2.0でした.
"inconshreveable/ngrok: Introspected tunnels to localhost"
https://github.com/inconshreveable/ngrok

* 認証を行う
"ngrok - secure introspectable tunnels to localhost"
https://dashboard.ngrok.com/get-started
> $ ngrok authtoken TOKEN_STRINGS

* 接続情報を確認する
ngrokを起動すると管理,確認用のhttpdが起動している.
http://127.0.0.1:4040/status

* ngrokコマンドを最新の状態にする(動作未確認)
> $ ngrok update

* 自分以外のマシンのポートを転送する
仮想マシンやコンテナ内のものを転送するのに良さそう
> $ ngrok tcp 172.17.0.12:80

* ngrokを動かしているネットワーク外で現在張っているトンネルを確認する
外出してからメモし忘れたときなどngrokのstatus pageで確認できる
"ngrok - secure introspectable tunnels to localhost"
https://dashboard.ngrok.com/status

* ログをファイルに出力
> --log-format 'json' --log /tmp/ngrok.log

* ドメインやIPの予約※有料
"ngrok - secure introspectable tunnels to localhost"
https://dashboard.ngrok.com/reserved
ngrokのapiでこんな感じでipが確認できる
> $ curl -s http://127.0.0.1:4040/api/tunnels|jq -r .tunnels[].public_url | cut -c7-|sed -e 's/:.*$//'|xargs dig  
ので,DDNSを使うことも可能
> $ curl "http://www.mydns.jp/directip.html?MID=${MYDNSMID}&PWD=${MYDNSPWD}&IPV4ADDR=`curl -s http://127.0.0.1:4040/api/tunnels|jq -r .tunnels[].public_url | cut -c7-|sed -e 's/:.*$//'|xargs dig +short`"
ただしPORTは覚えるかngrokのstatus pageで確認する必要がある

* 複数のポートを転送※有料
2つ目のポート転送を行おうとすると無料アカウントだと怒られる
> $ ngrok tcp 22 -region ap
> Tunnel session failed: Your account 'Kenichiro MATOHARA' is limited to 1 simultaneous ngrok client session.
ngrokでsshを転送して,sshのポート転送を使って同じネットワークの人に提供することは一応可能
> $ ssh mk @ matoken.mydns.jp -p 15351 -L 8080:localhost:80 -g -f -N

* udpを転送※ngrok非対応
"Add UDP Tunneling · Issue #26 · inconshreveable/ngrok"
https://github.com/inconshreveable/ngrok/issues/26
ngrokでsshを転送して,ssh vpnで同じネットワークの人に提供することは一応可能.
#素直にvpnやudp対応の別サービスを使ったほうが良さそう


On Sat, Apr 29, 2017 at 10:10:17AM +0900, Kenichiro MATOHARA wrote:
> matohara@大隅です.
> 
> 先日の勉強会で紹介されたngrokを少し試してみました.
> #確か姫路IT勉強会で紹介されたとか.
> 指定したサービスをインターネットに簡単に公開できるサービスです.自前でサーバを立てている人ならそちらで公開したり出来ますがそうでない人やアドホックにちょっとだけ公開というときにも良さそうです.
> 
> とりあえず公式siteから自分の環境に合ったngrokコマンドを入手して展開します.
> https://ngrok.com/download
> 
> そして,例えばそのマシンで動いているhttpdを転送したい場合は,
> 
> > $ ngrok http 80
> 
> とするだけでOKです.
> 今回はこんな感じの名前が割り当てられました.
> 
> > Forwarding                    http://26fba60a.ngrok.io -> localhost:80                                                                                               
> 
> http://26fba60a.ngrok.io にアクセスするとngrokを実行したマシンの80 portにアクセスできます.
> ただ既定値だと米国経由でのアクセスになるので地域を指定したほうがいいです.
> https://ngrok.com/docs#global
> 日本の近くではAsia Pacific(Singapore)があるのでこんな感じで.(この辺りはAWSのようなのでそのうち日本も?)
> 
> > $ ngrok http -region ap 80
> 
> ARMバイナリも提供されているのでRaspberry Piなどで何かを公開したいけどネットワーク良くわからないという向けにも良さそうです.
> ただ,多分プロプラのバイナリのみ提供なのが気になります.
> 
> 
> 幾つか類似サービスも探してみました.無料ではngrokが一番使いやすそうですね.
> 
> * "ngrok - secure introspectable tunnels to localhost" https://ngrok.com/
> 料金:無料プランあり
> 管理ソフトウェア:Mac/WIn/Linux/LinuxARM/FreeBSD(プロプライエタリバイナリのみ提供)
> 転送量制限なし?
> 
> * "Openport - Easy and secure reverse SSH" https://openport.io/
> 料金:無料プランあり
> 管理ソフトウェア:Win/Linux(Raspbianあり)/Mac (プロプライエタリバイナリのみ提供?)
> 転送量制限あり
> 
> * "Pagekite - The fast, reliable localhost tunneling solution" https://pagekite.net/
> 料金:$5.99/month〜
> 管理ソフトウェア:OSS(AGPL) Python2 / Android
> 転送量制限あり 15GB/month〜
> 
> * "Share a Link to localhost — Forward" https://forwardhq.com/
> 料金:$5/month〜(1週間トライアル無料)
> 管理ソフトウェア:Google Chrome Extention / CLI(Ruby)
> 転送量制限なし
> 
> 
> -- 
> KenichiroMATOHARA
> mailto:matoken @ gmail.com
> http://matoken.org/
> .O.
> ..O
> OOO



-- 
KenichiroMATOHARA
mailto:matoken @ gmail.com
http://matoken.org/
.O.
..O
OOO
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: signature.asc
型:         application/pgp-signature
サイズ:     833 バイト
説明:       無し
URL:        <http://list.kagolug.org/pipermail/users/attachments/20170501/34d38579/attachment.sig>


Users メーリングリストの案内