STUN 穿孔
回線事業者から固定の公開ポートが提供されない場合、STUN 穿孔は NAT ホールパンチングで公開側のマッピングアドレスとポートを取得し、外部から LAN 内のサービスへアクセスできるようにします。
機能
- TCP / UDP の穿孔とキープアライブ
- UPnP / NAT-PMP によるルーターへのポートマッピングの自動作成
- 内蔵フォワーディング。穿孔で得た公開ポートを LAN 内のターゲットへ直接転送
- 公開アドレスやポートが変化したときに Webhook とスクリプトを実行。DNS の更新やクライアントへの通知に利用できます
組み合わせ
STUN で得られる公開ポートは通常変化するため、次のものとの併用をおすすめします。
- ダイナミック DNS、または Webhook / スクリプトで、新しいアドレスを DNS に同期する
- Web サービス で HTTPS の入口を提供する
制限
ルーターの WAN 側がキャリアグレード NAT(100.64.0.0/10)の配下にある場合、外部から穿孔したポートにアクセスできません。これはネットワーク環境自体の制約です。その場合は Tailscale、frp、Cloudflare トンネル に切り替えてください。
デプロイのヒント
STUN はホストのポートを直接待ち受ける必要があるため、Docker でデプロイする場合は --network host を推奨します。