Edited at

ngrok大好きな私がServeoで感動した話


はじめに

自分用のメモみたいなものなので、言いたいことしか書かれてないです。


まずngrokとは

ngrokってご存知ですか?

ローカル上で開発してるサーバーやネットワークサービスをそのまま外部に公開できるサービスで、herokuのサーバーに上げない版みたいなやつです。

localhost にドメインを振り分けてくれるイメージですかね。


使い方

インストールが必要です。

$ brew cask install ngrok

使い方も簡単で、

$ ngrok http <localhostのポート番号>

ngrok by @inconshreveable (Ctrl+C to quit)

Session Status online
Account hogehoge (Plan: Free)
Version 2.3.29
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://<ランダムな文字列>.ngrok.io -> http://localhost:2300

Forwardingの横に書かれている http://<ランダムな文字列>.ngrok.io が公開アドレスになってます。


メリット


  • LINE Botをはじめ、実際に動いているサーバーに繋がないと試せないようなプロダクトを作っているときに、開発しながら試せるのがとても便利

  • ローカルでの変更が即座に反映される(アップロードの必要がない)

  • アクセスログが見やすい


デメリット(?)


  • アカウント登録しないと時間制限がある模様(よく調べてない)

  • 無料アカウントだとドメイン指定ができないため、再起動するたびにアドレスが変わる

  • 有料アカウントにすれば固定できるけど、中々お高め……


Serveoが神だった

ngrokのドメイン固定したいな。でも有料アカウントちょっとお高いな。

そんな時に見つけたのが、Serveoというサービスです。感動しました


使い方


サブドメイン指定なし

$ ssh -R 80:localhost:<ポート番号> serveo.net



サブドメイン指定

$ ssh -R <指定したいサブドメイン>:80:localhost:<ポート番号> serveo.net

Forwarding HTTP traffic from https://<指定したサブドメイン>.serveo.net

たったこれだけ。https://<指定したサブドメイン>.serveo.net でアクセスできる。


メリット


  • インストールもアカウント登録も必要ない

  • サブドメイン指定できる

  • タイムアウト時間を指定できる

  • なんか色々できる(端折った)


デメリット

(セキュリティ面がちょっと気になる……)


追記(2019/06/26)

起動した直後は好調なんですが、10分20分と経つとコネクションが切れてしまい、長期的な用途では使い物にならなかったです……。

~/.ssh/configを書き換えたり、 autosshを使ってみたりもしたのですが、ちゃんと動いてるの?といった挙動。

結局ngrokに戻ってしまいました。解決策ある方教えてください……。


まとめ

最近LINE Botの開発をちょくちょくやっているので、ngrokはとても便利でした。

ただ、再起動するたびに値が変わるので、わざわざLINE Developerページに行って変更して……というのがとても不便。

そんな中で出会ったServeoは、とても魅力的に感じました。