1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ローカルTCPサーバをインターネットからアクセス - ngrok

Last updated at Posted at 2024-05-06

日記

トンネリングリバースプロキシサーバ。
Discord SDKのQuick Startngrokを知った。
動的URLでよければフリー。

環境

  • Raspberry PI 4
  • Ubuntu 20.04

ngrok agentの導入と初期化

公式参考

curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
	| sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
	&& echo "deb https://ngrok-agent.s3.amazonaws.com buster main" \
	| sudo tee /etc/apt/sources.list.d/ngrok.list \
	&& sudo apt update \
	&& sudo apt install ngrok
snapを使用する場合 (非推奨; service installコマンドでエラーが出た)
sudo snap install ngrok

ngrokにサインインし、 [Getting Start] - [Your Authtoken] でTokenを取得(*1)

NGROK_TOKEN=2g4MxxxxdX8D4HDouBlxxxxd77y_7nFHxxxxxkhwm7mcrZjvA #(*1)
ngrok config add-authtoken $NGROK_TOKEN

例:ローカルHTTPサーバを公開

Node.jsで簡単なテストサーバ起動。

テストサーバ起動 (カレントフォルダが公開されてしまうのでご注意)
npx -y http-server

例えばローカルでHTTPサーバ http://192.168.11.44:8080 が起動した場合、

トンネル接続
ngrok http http://192.168.11.44:8080

URL(例えばForwarding https://e025-2001-f77-d3e0-12f0-dea6-32ff-fe7a-aaaa.ngrok-free.app/)が表示されるので、インターネット側からアクセスできることを確認

手軽なSSL化としても便利。なおSSLの認証局はLet's EncryptのISRG Root X1 R3

例:ローカルssh(TCPサーバ)を公開

前提: sshdが起動している

sshサーバ側
ngrok tcp 22

例えば Forwarding tcp://0.tcp.jp.ngrok.io:10599 -> localhost:22 と表示された場合

sshクライアント側
ssh <login-id>@0.tcp.jp.ngrok.io -p 10599

例:設定ファイルに公開ポートを定義

生成される設定ファイル(ngrok config check で表示される)(*2)を編集。
例えばIDssh1でローカルのポート22をインターネットに公開する設定を追加。

NGROK_CONF=`ngrok config check |sed -e 's/.*file at //'`
nano $NGROK_CONF 
/(*2)/ngrok.yml 編集
version: "2"
authtoken: xxxxxx  # *1
metadata: '{"id":"rp4/ubuntu"}' # 識別用の適当なJSON文字列
tunnels:
  ssh1:
    addr: 22
    proto: tcp
サーバ側
ngrok start ssh1

例:OSのサービスとして登録

上記設定ファイルでOS起動時に自動的にポート公開したい場合。

sudo ngrok service install --config $NGROK_CONF
sudo ngrok service start

動的に開かれたngrog側のTunnelのアドレスを取得するには、
[Tunnels] - [Agents] - Agentの詳細からmetadataで判断

サービスの状態を確認する
systemctl status ngrok.service

active (running)が見えれば起動中

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?