ローカルで作っているサービスを一時的に外部公開したい時、昔はダイナミックDNSを使っていました。しかし、これでは直接外部からコンピュータにアクセスできるのでセキュアではありません。そこで最近では外部サーバとローカルサーバを接続して、外部サーバ経由で使う方法が主流です。 今回紹介するtunneltoはそんなサービスを実現するソフトウェアになります。

tunneltoの使い方

tunneltoの例です。ポート番号を指定して実行します。

$ tunnelto --port 4000

                              %%%%
                              %%%%
             ,,,,,,,,,,,,,,
   %%     ,,,%%%%%%%%%%%%%,,,
  #%%     ,,%%%%%,,,,,#%%%%,,
            ,,,,,,#%%,,,,,,,   ((
              .%%%#%%%%#%
                 %%%%#
                  %(%
                 (%%%(
        ((     (%%%#%%%%#
            ,,,,,,,,,,,,,,,          %%%
          ,,%%%%%%,,,#%%%%%,,
 %%       ,,,%%%%%%%%%%%%%,,,
 %%%        ,,,,,,,,,,,,,,,


⣷ Success! Remote tunnel created on: https://wj8gmxbf.tunnelto.dev

成功すると、専用のURLが作成されます。ここにアクセスすると、ローカルにプロキシしてくれます。ngrokが有名ですが、tunneltoはオープンソースなので、自分でサーバを立てることができます。企業などで複数人で使うならばtunneltoを使ってみるのもよさそうです。

tunneltoはRust製のオープンソース・ソフトウェア(MIT License)です。

agrinman/tunnelto: Expose your local web server to the internet with a public URL.