内部サイト · NAT の内側 · Connector
Grafana や Home Assistant をどこからでも——ポート転送なし。
LAN でダッシュボードが動いています——Grafana、Home Assistant、Portainer、ルーターの管理画面など——それを、公開することなく、別の場所のブラウザーで開きたい。そのマシンか、同じネットワーク上の任意のマシンに Termalin Connector をインストールし、キャビネットでサイトを追加すれば、https://<10 文字>.termal.ink のようなプライベートアドレスで到達できます。Connector は外向きに接続するので、待ち受けるものはなく、転送するポートもありません。公開リンクはありません。あなたと、あなたがメールで招待した人だけです。
プライベートアドレスのみ · 公開リンクなし · Pro と Team(14 日間のトライアル)
01 / 問題
なぜ 8123 や 3000 を転送するだけではいけないのか
ダッシュボードのポートをインターネットに転送すると、ログイン画面——もっと悪ければ、開けっ放しの UI——がインターネット上のすべてのスキャナーの前にさらされます。いつもの代替策は、それ自体が 1 つのプロジェクトです。VPN は、接続元のすべてのデバイスにクライアントを、入る必要のある人全員にアカウントを要します。ドメインとアクセスポリシーを備えたリバースプロキシは、1 つの内部ページのためには可動部が多すぎます。内部サイトはそれらをすべて省きます。Connector は常に外向きに接続するだけで、ページに到達できるのはあなたと、名前を指定した人だけ。それ以外の誰も到達できません。
02 / 仕組み
マシンが外へ接続し、あなたはリンクを開く
- ▸アウトバウンドのみ。Connector は termal.in への接続を保持し、待ち受けることはありません。転送するものもスキャンされるものもなく、だからこそ NAT、CGNAT、厳格なファイアウォールの内側でも動きます。
- ▸自前のプライベートアドレス。各サイトには
https://k7m4p9qrst.termal.ink/のような 10 文字のアドレスが割り当てられます。termal.ink は termal.in とは別のサイトで、そのページはnoindexを持ち、検索から除外されています。 - ▸本物のブラウザータブ。ダッシュボードは普通のサイトのように読み込まれます。手元のマシンにインストールするクライアントはありません。
03 / 設定
サイトはおよそ 1 分で
ウェブキャビネットで「内部サイト」カード(「バックアップ」の隣)を開き、「サイトを追加」をクリックします。
- ▸サイトに到達できる Connector。
- ▸アドレス(Connector のマシンから見たもの)——例:
http://10.0.0.5:8080やhttp://localhost:3000。 - ▸任意の名前(最大 80 文字)、内部サイトは https を使用するかどうか、そしてリンク自体のアドレスをホスト名として送るかどうか(Host ヘッダーにうるさいアプリ向け)。
「追加して開く」を押すと、ダッシュボードが新しいタブで開きます。Connector のコンテキストメニューにも 「内部サイトを開く…」があります。デスクトップアプリはサイトの一覧を表示し(設定 →「内部サイト」)、サインイン済みの状態で開きます。追加と共有はウェブキャビネットで行い、モバイルは一覧を表示します。
04 / 動作するもの
ライブのダッシュボードも、WebSocket も、すべて
通信はバッファリングなしでストリーミングされ、WebSocket もそのまま通ります。だから、素朴なプロキシでは壊れるものも、ちゃんと動きます。
- ▸Grafana のライブパネル、Home Assistant、Portainer、Proxmox はいずれも、LAN 上と同じように動きます。
- ▸http でも https でも、どのポートでも。ダッシュボードの自己署名証明書や社内証明書でも問題ありません。「内部サイトは https を使用」にチェックを入れてください。その区間の証明書は検証されません。Connector のネットワーク内にとどまるからです。
- ▸プライベートアドレスのみ。localhost、
10/8、172.16/12、192.168/16、リンクローカル、Tailscale の100.64/10、IPv6 ULA——プライベートアドレスに解決されるなら、ホスト名も可。公開アドレスは拒否されます。
05 / 共有
同僚や家族を招き入れる——1 日、または 1 週間だけ
サイトの共有は、一度に 1 つのメールアドレス、24 時間または 7 日間です(もう一度共有すると延長されます)。1 つのリンクにつき同時に最大 25 人まで。まず自分のメールアドレスを確認しておく必要があります。
- ▸相手には個人用リンク付きの招待メールが届き、そのアドレスに送られる6 桁のコードでサインインします(有効期間は 10 分、試行は 5 回まで)。それ以外の人がサイトのアドレスを開いても、表示されるのは「このリンクは使えません」だけで、そこにサイトがあることを示すものは何もありません。
- ▸Termalin アカウントは不要です。使うのはコードだけです。
- ▸相手に見えるのはそのダッシュボード 1 つだけで、共有が続くあいだに限られます。期限が切れると、そのセッションは終了します。
06 / セキュリティモデル
誰が入れるか、そしてどう取り消すか
- ▸公開モードはありません。自分のサイトは、ワンタイムリンク(有効 120 秒)で開き、それにより 12 時間サインインした状態になります。それ以外の人はメールで招待されます。
- ▸厳重に制限された Cookie。セッション Cookie は、そのスラッグに対して host-only の
__Host-、HttpOnly、Secure、SameSite=Lax で、ダッシュボードに届く前に取り除かれます。 - ▸即座に取り消す。「削除」は一人のアクセス権を取り消し、その人が開いているページをただちに止めます。「無効にする」は全員のリンクを切ります。プランが Free に戻ると、共有相手には「アクセスが終了しました」と表示されます。
- ▸アクティビティログが記録します。サイトがいつ作成され、開かれ、共有され、共有相手に開かれ、アクセス権が取り消され、または無効にされたか。
07 / 比較
トンネルサービス、Tailscale、VPN との比較
| 方法 | 公開リンク? | 閲覧側に必要なもの | 向いている場面 |
|---|---|---|---|
| ngrok/トンネルサービス | あり——URL を知っていれば誰でも | なし | 手早い公開デモ |
| Cloudflare Tunnel | 公開、または Access ポリシー | なし、または Access のログイン | ドメインを持っていて、公開かポリシー制御にしたい |
| Tailscale/WireGuard | なし——プライベートメッシュ | すべてのデバイスに VPN クライアント | 接続する全員がクライアントを入れられる |
| リバースプロキシ + ポート転送 | あり——インターネット上に | なし | 公開を受け入れる |
| Termalin の内部サイト | なし——メールで招待 | ブラウザーだけ | 1 つか数個のダッシュボードを、指定した人と共有 |
トレードオフは正直なものです。恒久的な公開リンクはなく、リンクごとに 1 日あたり 5 GB のソフト上限があります。これはプライベートなダッシュボードには利点で、公開用途には制約です。ホームラボでの手順は、Home Assistant や Grafana にリモート接続する(英語)をご覧ください。
08 / プランと上限
Pro と Team に含まれます
内部サイトには Connector が必要なため、有料プランの機能です。
- ▸Free:含まれません。トライアル:サイトを開けますが、共有はできません。
- ▸Pro と Team:サイト数に制限はありません。
- ▸UTC の 1 日あたり、リンクごとに 5 GB、アカウントごとに 20 GB の通信量——ハードな停止ではなくソフトなブレーキです。進行中の処理は完了し、短い「また明日」ページに切り替わります。1 回のリクエストは 1 GB が上限です。
- ▸通信経路上の TLS であって、エンドツーエンドではありません。通信は TLS で運ばれ、プロキシで復号されて中継されます。
よくある質問
リンクは公開ですか——リンクを知っていれば誰でも入れますか?
いいえ。公開や「リンクを知っていれば誰でも」といったモードはありません。サイトを開くとき、あなたは自分のアカウントにサインインした状態です。それ以外の人はメールで招待され、ワンタイムコードでサインインする必要があります。漏れたリンクだけでは何の役にも立ちません。
ポートを開けたり VPN を設定したりする必要はありますか?
どちらも不要です。Connector は termal.in へのアウトバウンド接続を行い、待ち受けることは一切ないので、ルーターで転送するものも、スキャナーに見つかるものもありません。共有相手が VPN クライアントをインストールすることもなく、ブラウザーでリンクを開くだけです。
サイトはどのアドレスに向けられますか?
Connector のマシンが到達できるプライベートアドレスなら、http でも https でも、どのポートでも向けられます:localhost、10.x、172.16–31.x、192.168.x、リンクローカル、Tailscale の 100.64/10 レンジ、IPv6 ULA。ホスト名も、プライベートアドレスに解決される限り使えます。インターネットの公開アドレスは拒否されます。
自己署名証明書でも動きますか?
はい。ダッシュボードが自己署名証明書や社内証明書で https を提供している場合は、「内部サイトは https を使用」にチェックを入れてください。その区間の証明書は検証されません。経路のその部分は Connector 自身のネットワーク内にとどまるからです。
スマホからサイトを追加したり共有したりできますか?
追加と共有はウェブキャビネットで行います。デスクトップアプリはサイトの一覧を表示し、サインイン済みの状態で開きます。モバイルは一覧を表示します。ですから、追加と共有はブラウザーかデスクトップから行い、開くのはどこからでも、という形になります。
エンドツーエンド暗号化ですか?
いいえ、そうは呼んでいません。通信は、あなたのブラウザーから Cloudflare を経てプロキシまで TLS で運ばれ、そこで復号されてサイトへ中継されます。ですから通信経路上の TLS であって、エンドツーエンドではない、と言っています。
ダッシュボードをリンク 1 つの距離に
1 行で Connector をインストールし、1 枚のカードでサイトを追加すれば、どこからでもブラウザーで開きます——転送するポートも、VPN も、公開リンクもなし。
Pro または Team · 14 日間のトライアル · Connector · NAT の内側への SSH · 自宅の NAS へ(英語)