ネットワーク基礎
「LAN内で動いた」から「外部公開」まで。DNS・ポート・プロキシ・NAT/ブリッジの 考え方を整理します。
目的
- ネットワーク起因のトラブルを切り分けられる
- LAN / 外部公開どちらの構成でも正しく動かせる
前提条件
- 基本ポート番号の理解(8787 = 本体 UI)
- ルーター / NAS の管理画面へアクセスできる
基本事項
1. ポートの役割
| 8787 |
run-local の UI / API(全 Worker の入り口) |
| 3000 |
dev-client 用(Vite がフロント配信時) |
| 9000 |
VITE_BACKEND_HOST 指定時のバックエンド |
2. 名前解決(DNS)
- LAN 内:
http://<NAS-IP>:8787 で直アクセス
- 「ホスト名で」アクセスしたい → ルーターの DNS リゾルバ / ローカル DNS
- 外部公開 → ドメインの A レコード → 固定 IP / Tunnel
# 名前解決の確認
dig +short <あなたのドメイン>
nslookup <NAS-IP>
3. LAN 公開と外部公開
| LAN 直アクセス |
◎ |
○ |
個人・社内試用 |
| リバースプロキシ(Caddy/nginx) |
○ |
◎ |
外部公開・HTTPS |
| Cloudflare Tunnel(cloudflared) |
○ |
◎ |
クレデンシャル不要で手軽 |
| ポート転送(NAPT) |
△ |
○(TLS必須) |
手動でどうしても |
4. NAT / ブリッジ
- NAT: コンテナ内ポートを外へマップ(QNAP の Container Station はこれ)
- ブリッジ: コンテナを LAN の一員として並べる
- どちらの場合も 8787 を公開したければバインドを明確に
手順(外部公開の最短)
ドメインを用意(例: cf.<yourdomain>.com)
リバースプロキシで TLS 終端(13)
# Caddyfile 例
cf.example.com {
reverse_proxy 127.0.0.1:8787
}
ファイアウォール設定(11)
アクセス確認(https で UI・連携が動く)
よくある失敗
| LAN 内は見えるのに外部は不可 |
ルーターで 8787 が開いていない |
ポート・PBR を確認、または Tunnel 利用 |
| ドメインで繋がらない |
DNS 遅延・A レコード誤り |
dig で解決先を確認 |
| プロキシ配下で UI が壊れる |
WebSocket / 大きなヘッダー未対応 |
プロキシの WS 転送を ON |
| OAuth が回らない |
http then リダイレクト |
https 統一+完全一致 URL |