🌐

Serveoはもう駄目なのでLocaltunnelを試してみた

2021/08/31に公開

ローカルポートをフォワードして外部に公開してくれるサービスとしてメジャーなのはngrokでしょうか

私は使用頻度自体が滅多に無かったのでコマンド入れてユーザ登録してまで使う気がしなかったのでsshコマンドで動いてくれるServeoの方がお気に入りでした

とはいえしょっちゅう死んではひっそり生き返るってことを繰り返した挙げ句ずっと死んでる状態なので流石に今使おうとは思えないです

ngrok使おうかと思ったんですが折角だしあんまり情報のないLocaltunnelを試してみました

nodeのDockerコンテナでハローワールドのWEB画面作ってコンテナ内から公開してみます

まずはnodeコンテナ内でnpm init

$ docker run -it --rm node bash
root@fa1c2894adaf:/# mkdir test
root@fa1c2894adaf:/# cd test
root@fa1c2894adaf:/test# npm init -y
Wrote to /test/package.json:

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

ハロワ出すためにexpressいれる

root@fa1c2894adaf:/test# npm i express

added 50 packages, and audited 51 packages in 3s

found 0 vulnerabilities
npm notice
npm notice New patch version of npm available! 7.21.0 -> 7.21.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.21.1
npm notice Run npm install -g npm@7.21.1 to update!
npm notice

ハロワ画面の作成と表示

root@fa1c2894adaf:/test# cat <<EOF > app.js
> const express = require('express')
> const app = express()
>
> app.get('/', (req, res) => res.send('Hello World!'))
> app.listen(3000, () => console.log('Server ready'))
> EOF
root@fa1c2894adaf:/test# node app.js &
[1] 32
Server ready

localtunnelで公開してみる

いよいよ本題ですインストール面倒なのでnpxで実行しちゃってます
npm i -g localtunnelでインストールたほうが良いとは思います

root@fa1c2894adaf:/test# npx localtunnel -p 3000 -s tantantanuki
your url is: https://tantantanuki.loca.lt

公開したいポートは-p
サブドメインは-s
で指定出来るみたい

この段階でコンソールに出ているhttps://tantantanuki.loca.ltにアクセスすることでグローバルからハロワのページが見れる状態になってるようです

画面確認

これで画面を表示してみると初回こんな画面が出るが

Imgur

真ん中の青いボタンを押すと正常に表示される

Imgur

IP毎に7日毎にこのページが出るみたいな事書いてますんで初回起動時に1度みたら一週間は大丈夫っぽいですね

使ってみた感想

HTTP/HTTPSのみフォワードなのでかなり適用範囲は狭いです

この程度のサンプルアプリなら普通に動きます

登録不要でサブドメインが使えるので用途が合っているなら便利です。。。

ただWEBインターフェースを持ってるアプリを幾つか使い捨てのコンテナに入れては公開して試して見ましたが動かない画面も結構ありました

本末転倒ですが問題の切り分けのためにngrokを入れて試してみた所それらの画面は問題なく動いてしまったためlocaltunnelの問題のようですね

どうもサーバと画面が通信して常時画面更新されるような作りの画面はまともに動いてくれなくなってる気がします

完全に静的な画面なら問題なく動く気がしますがちょっと凝ったことしようと思うと途端に動かなくなりそうです

なので大人しくngrok使ったほうが良さそうですね(結局入れちゃったし)

以上、無駄に時間を使ってngrokに戻ってきた狸よりお届けしました

とっぴんぱらりのぷう

P.S.

それにしても昔はHP作るといえば

テキストエディタでシコシコHTMLタグ書いて
しょぼい画面が出来て
プロバイダが送ってきたFTP鯖にFFFTPで繋いで
作ったファイル置いたら
何故かプロバイダが広告挿入してきて
ただでさえゴミのような画面がさらに楽天ショッピング見たいな悲惨な画面にされて

って感じだったのがいつの間にか

create-react-app的なコマンド叩いて
出来たファイルちょろっと弄ったらそこそこ見れる画面が出来て
githubにコミットしたら
連携してるええ感じのサービスのところがそのままの画面でネットに公開しといてくれちゃいます

みたいな感じになっててヤバイ

未来すぎてまったくついていけない

あの頃はJavaScriptなんてすぐ死滅するその場しのぎの言語見たいな扱いされてたのに。。。

なんならPerlがこれからのトレンドみたいな風潮だったのに立場が逆転してるし

あの頃の自分に教えてあげたい。。。

きっと同じような悲惨なおじさんが大量に生み出されてると思うのでそういうおじさん用の教材が欲しいなと思う今日この頃です

Discussion