> For the complete documentation index, see [llms.txt](https://docs.digitalhumans.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digitalhumans.jp/dev/miniprem/network-requirements.md).

# ネットワーク要件

{% hint style="warning" %}
本ページに記載のファイアウォール例外申請・FQDN ホワイトリスト登録・UFW 設定・社内ネットワーク機器の設定変更は、すべてお客様側の責任範囲となります。\
弊社（デジタルヒューマン株式会社）では情シスへのファイアウォール開放申請を代行しておりません。導入の遅延を避けるため、必ず事前に貴社のネットワーク管理者と本ページを共有してください。
{% endhint %}

{% hint style="info" %}
インストール作業はお客様にご準備いただいたリモート接続を通じて実施します。機材のお預かりやオンサイトでの作業は承っておりません。リモート接続経由でのインストール準備（SSH / ngrok 等）については [リモートインストール支援](/dev/miniprem/remote-install-support.md) をご覧ください。
{% endhint %}

## 概要

本ページは、ミニプレム（MiniPrem）を社内ネットワークに導入する際に必要となる、ファイアウォール設定・FQDN ホワイトリスト・WebRTC 用ポート・Azure TTSやElevenLabs（音声合成）リージョン選定・接続検証コマンドをまとめた早見資料です。日本のエンタープライズ環境ではアウトバウンド通信が厳しく制限されているケースが多いため、本ページを情報システム部門へ事前共有することで、ファイアウォール例外申請の往復回数を削減できます。

MiniPrem はデジタルヒューマンの映像・音声を WebRTC で表示端末へ配信します。MiniPrem ホストと表示端末が同一プライベートネットワーク内にある場合は P2P 接続、NAT/VPN/別 VLAN を跨ぐ場合は TURN/STUN 経由の中継接続が必要となり、それぞれで開放すべきポート構成が変わります。本ページではこの 2 パターンを並列で示します。

ハードウェア要件・OS 要件・apt パッケージ等の前提条件は [前提条件](/dev/miniprem/prerequisites.md) を、リモート接続（SSH / ngrok / TeamViewer）経由のインストール支援手順は [リモートインストール支援](/dev/miniprem/remote-install-support.md) を参照してください。

## ファイアウォール早見表

下表は、MiniPrem ホスト側（Renny サーバー）と表示端末側それぞれについて、共通設定・P2P 追加・TURN/STUN 追加の 3 区分で開放が必要なポートを一覧化したものです。情シス申請時のチェックリストとしてそのままご利用いただけます。

### MiniPrem ホスト側

| 項目                                              | 共通                    | P2P 追加                         | TURN/STUN 追加           |
| ----------------------------------------------- | --------------------- | ------------------------------ | ---------------------- |
| SSH                                             | TCP 22 IN（管理端末 IP から） | -                              | -                      |
| デジタルヒューマン プラットフォームの認証、Azure TTS / ElevenLabs など | TCP 443 OUT           | -                              | -                      |
| DNS                                             | UDP/TCP 53 OUT        | -                              | -                      |
| HTTP/HTTPS                                      | TCP 80/443 OUT        | -                              | -                      |
| P2P 接続                                          | -                     | UDP 49152-65535 IN（表示端末 IP から） | -                      |
| STUN/TURN                                       | -                     | -                              | UDP 3478 OUT/IN        |
| TURN TLS                                        | -                     | -                              | TCP 5349 OUT           |
| WebRTC（TURN）                                    | -                     | -                              | UDP 49152-65535 OUT/IN |

### 表示端末側

| 項目                 | 共通             | P2P 追加                         | TURN/STUN 追加        |
| ------------------ | -------------- | ------------------------------ | ------------------- |
| デジタルヒューマン プラットフォーム | TCP 443 OUT    | -                              | -                   |
| DNS                | UDP/TCP 53 OUT | -                              | -                   |
| HTTP/HTTPS         | TCP 80/443 OUT | -                              | -                   |
| P2P 接続             | -              | UDP 49152-65535 OUT（通常は既に許可済み） | -                   |
| STUN/TURN          | -              | -                              | UDP 3478 OUT        |
| TURN TLS           | -              | -                              | TCP 5349 OUT        |
| WebRTC（TURN）       | -              | -                              | UDP 49152-65535 OUT |

{% hint style="info" %}
P2P 接続が成立する条件は「MiniPrem と表示端末が同一端末、もしくは NAT/VLAN を跨がず互いにプライベート IP で直接通信できる同一ネットワーク上にあること」です。NAT 越えが必要な場合は TURN/STUN 構成を選択してください。
{% endhint %}

## 必須 FQDN ホワイトリスト

アウトバウンド TCP 443 で許可が必要な FQDN の一覧です。日本のエンタープライズ環境ではドメイン単位のホワイトリスト申請が一般的なため、本セクションをそのまま情シス申請に添付してください。

### プラットフォーム / シグナリング

| FQDN                      | 用途                                                       |
| ------------------------- | -------------------------------------------------------- |
| `*.uneeq.io`              | デジタルヒューマン プラットフォームのシグナリング・API・WebSocket 接続               |
| `*.digitalhumans.ne.jp`   | デジタルヒューマン日本向けプラットフォーム                                    |
| `*.hosted-experience.jp`  | デジタルヒューマン配布版インストーラー・シグナリング・静的コンテンツ                       |
| `*.digitalhumans-demo.jp` | デジタルヒューマンデモ用フロントエンド ホステッドエクスペリエンス デモ コンフィグレーター（表示端末側で使用） |

### Docker レジストリ

| FQDN             | 用途                               |
| ---------------- | -------------------------------- |
| `hub.docker.com` | Docker Hub（旧構成 / デジタルヒューマン配布版）   |
| `cr.uneeq.io`    | Harbor レジストリ（公式 MiniPrem イメージ取得） |

### TTS（音声合成）/ STT（音声認識）

| FQDN                                 | 用途                                   |
| ------------------------------------ | ------------------------------------ |
| `*.tts.speech.microsoft.com`         | Azure Cognitive Services TTS（全リージョン） |
| `japaneast.tts.speech.microsoft.com` | Azure TTS 日本東リージョン（最優先で許可）           |
| `api.elevenlabs.io`                  | ElevenLabs TTS API                   |

### TURN/STUN サーバー

| FQDN               | 用途                               |
| ------------------ | -------------------------------- |
| `*.turn.uneeq.io`  | NAT 越え用 TURN/STUN サーバー（マルチリージョン） |
| `turn.us.uneeq.io` | 米国 TURN サーバー                     |

{% hint style="warning" %}
2026 年 6 月現在、上記 FQDN のうち `*.digitalhumans.ne.jp` / `*.hosted-experience.jp` / `*.digitalhumans-demo.jp` は弊社（デジタルヒューマン株式会社）固有のドメインです。デジタルヒューマン提供の固有ドメインのため、貴社の情シス申請に必ず含めてください。
{% endhint %}

## P2P 接続（同一ネットワーク内）

MiniPrem と表示端末が同一プライベートネットワーク上にある場合に推奨される構成です。TURN サーバーを経由しないため遅延が最も小さく、運用品質が安定します。

### MiniPrem ホスト側で必要なポート

| プロトコル | ポート         | 方向 | 送信元     | 用途                                  |
| ----- | ----------- | -- | ------- | ----------------------------------- |
| UDP   | 49152-65535 | IN | 表示端末 IP | WebRTC P2P メディアストリーム（音声・映像・データチャネル） |

WebRTC は動的ポート割り当て方式のため、ホスト側で `49152-65535` の UDP 動的ポート範囲全体を表示端末 IP からの IN 通信に対して開放する必要があります。

### 動作イメージ

```
表示端末                                    MiniPrem ホスト
UDP 53872（動的割り当て） ←―直接接続/P2P―→ UDP 49152-65535（動的割り当て）
                                          ↑この範囲への接続許可が必須
```

### UFW 設定例（MiniPrem ホスト側 P2P 追加分）

```bash
#!/bin/bash
# P2P 接続時の追加設定（MiniPrem ホスト側）

# 表示端末の IP アドレスを設定
CLIENT_IP="192.168.200.100"  # ← 実際の表示端末 IP に変更

# 方法 1: 表示端末からのすべての通信を許可（推奨・最もシンプル）
sudo ufw allow from ${CLIENT_IP} comment "P2P from client ${CLIENT_IP}"

# 方法 2: 高位動的ポート範囲のみ許可（より厳格）
# sudo ufw allow from ${CLIENT_IP} to any port 49152:65535 proto udp comment "P2P WebRTC from client"

# IPv6 を使用する場合
# CLIENT_IPV6="fddf:6257:ea18:94b5:86ef:4cce:1dbf:2cee"
# sudo ufw allow from ${CLIENT_IPV6} comment "P2P from client IPv6"

sudo ufw reload
```

### 表示端末側

表示端末側は Outbound がデフォルト許可されている環境であれば追加設定は不要です。デフォルトポリシーが DENY の場合のみ、以下を追加します。

```bash
#!/bin/bash
# P2P 接続時の追加設定（表示端末側 / Linux UFW）
# Windows / macOS の場合は読み替えてください

SERVER_IP="192.168.200.200"  # ← 実際の MiniPrem ホスト IP に変更
sudo ufw allow out to ${SERVER_IP} proto udp comment "P2P to MiniPrem"
sudo ufw reload
```

{% hint style="info" %}
P2P 接続を選択した場合、STUN/TURN 用の UDP 3478 / TCP 5349 / UDP 22000-23000 の開放は **不要** です。誤って TURN サーバー側の UDP 22000-23000 を開放しないよう注意してください。
{% endhint %}

## TURN/STUN 構成（NAT 越え接続）

MiniPrem と表示端末が別のネットワーク（NAT/VPN/別 VLAN）に分かれている場合の構成です。通常のサービス運用ではこちらが標準的な構成となります。

### MiniPrem ホスト側で必要なポート

| プロトコル | ポート         | 方向     | 宛先/送信元                                 | 用途                                |
| ----- | ----------- | ------ | -------------------------------------- | --------------------------------- |
| UDP   | 3478        | OUT/IN | `*.turn.uneeq.io` / `turn.us.uneeq.io` | STUN/TURN（NAT Traversal、ICE 候補収集） |
| TCP   | 5349        | OUT    | `*.turn.uneeq.io` / `turn.us.uneeq.io` | TURN over TLS（セキュアなフォールバック）       |
| UDP   | 49152-65535 | OUT/IN | `*.turn.uneeq.io`                      | WebRTC メディア（TURN 経由）              |

### 動作イメージ

```
MiniPrem ホスト           TURN サーバー              表示端末
UDP 49152-65535  ←―→   UDP 22000-23000  ←―→   UDP 49152-65535
   (動的)                   (TURN 側)                (動的)
    │                         │                       │
    └── UDP 3478 で STUN/TURN 接続確立 ─────────────────┘
```

### UFW 設定例（MiniPrem ホスト側 TURN/STUN 追加分）

```bash
#!/bin/bash
# TURN/STUN 使用時の追加設定（MiniPrem ホスト側）

# STUN/TURN（最重要）
sudo ufw allow out 3478/udp comment 'STUN/TURN - NAT Traversal'
sudo ufw allow in 3478/udp comment 'STUN/TURN response'

# TURN over TLS（フォールバック）
sudo ufw allow out 5349/tcp comment 'TURN over TLS'

# WebRTC メディア（TURN 経由）
sudo ufw allow out 49152:65535/udp comment 'WebRTC media via TURN (out)'
sudo ufw allow in 49152:65535/udp comment 'WebRTC media via TURN (in)'

sudo ufw reload
```

{% hint style="warning" %}
UDP 49152-65535 を全 IP から許可するとセキュリティリスクがあります。可能な場合は TURN サーバーの IP アドレスを `sudo ufw allow from <TURN_SERVER_IP> to any port 49152:65535 proto udp` のように指定してください。\
また、TURN サーバー側で使用される UDP 22000-23000 は MiniPrem ホスト側で開放する必要は **ありません**。
{% endhint %}

### 表示端末側

通常 Outbound はデフォルト許可のため追加設定不要ですが、厳格なファイアウォール環境では以下を許可します。

```bash
# STUN/TURN
sudo ufw allow out 3478/udp comment 'STUN/TURN'
# TURN over TLS
sudo ufw allow out 5349/tcp comment 'TURN over TLS'
# WebRTC メディア（TURN 経由）
sudo ufw allow out 49152:65535/udp comment 'WebRTC media via TURN'
sudo ufw reload
```

## UFW 完全設定スクリプト（MiniPrem ホスト側）

共通設定・P2P・TURN/STUN を組み合わせた完全な UFW 設定スクリプトです。`ADMIN_IP` / `CLIENT_IP` / `TURN_SERVER_IP` を貴社環境に合わせて書き換えてご利用ください。

```bash
#!/bin/bash
# MiniPrem TURN/STUN 使用 - 完全なファイアウォール設定
set -e

ADMIN_IP="192.168.200.10"        # ← 管理端末 IP（SSH 用）
# TURN_SERVER_IP="203.0.113.10"  # ← TURN サーバー IP が分かる場合は設定

# 既存ルールのバックアップ
sudo ufw status numbered > /root/ufw_backup_$(date +%Y%m%d_%H%M%S).txt

# デフォルトポリシー
sudo ufw default deny incoming
sudo ufw default allow outgoing

# IPv6 サポート
sudo sed -i 's/IPV6=no/IPV6=yes/' /etc/default/ufw

# === 共通設定 ===
sudo ufw allow from ${ADMIN_IP} to any port 22 proto tcp comment 'SSH from admin'
sudo ufw allow out 443/tcp comment 'プラットフォーム + Azure TTS'
sudo ufw allow out 53/udp comment 'DNS query'
sudo ufw allow out 53/tcp comment 'DNS query TCP'
sudo ufw allow out 80/tcp comment 'HTTP'

# === TURN/STUN 設定 ===
sudo ufw allow out 3478/udp comment 'STUN/TURN'
sudo ufw allow in 3478/udp comment 'STUN/TURN response'
sudo ufw allow out 5349/tcp comment 'TURN over TLS'

if [ -n "${TURN_SERVER_IP}" ]; then
    sudo ufw allow from ${TURN_SERVER_IP} to any port 49152:65535 proto udp comment 'WebRTC from TURN'
    sudo ufw allow out to ${TURN_SERVER_IP} port 49152:65535 proto udp comment 'WebRTC to TURN'
else
    sudo ufw allow out 49152:65535/udp comment 'WebRTC media via TURN (out)'
    sudo ufw allow in 49152:65535/udp comment 'WebRTC media via TURN (in)'
fi

sudo ufw reload
sudo ufw status numbered
```

## Azure TTS リージョン選定（日本からの RTT 計測）

Azure TTS のリージョン選定は、デジタルヒューマンの発話レイテンシに直結します。デフォルトでは `japaneast` を選択するケースが多いですが、ピーク時の遅延次第では他リージョンへの切替を検討する価値があります。下記のスクリプトを MiniPrem ホスト上で実行することで、主要 13 リージョンに対する 5 回平均 RTT を計測できます。

### 計測対象リージョン（13 リージョン）

| リージョン                          | 地域     |
| ------------------------------ | ------ |
| `japaneast`                    | 日本（東京） |
| `japanwest`                    | 日本（大阪） |
| `eastus` / `eastus2`           | 米国東部   |
| `westus` / `westus2`           | 米国西部   |
| `centralus` / `southcentralus` | 米国中部   |
| `southeastasia`                | シンガポール |
| `eastasia`                     | 香港     |
| `koreacentral` / `koreasouth`  | 韓国     |
| `eastindia`                    | インド東部  |

### 計測スクリプト

```bash
tmpfile=$(mktemp)
for region in japaneast japanwest eastus eastus2 westus westus2 \
              centralus southcentralus southeastasia eastasia \
              koreacentral koreasouth eastindia; do
    url="https://${region}.tts.speech.microsoft.com"
    echo "リージョン: $region への接続テスト"
    sum=0
    for i in {1..5}; do
        t=$(curl -s -o /dev/null -w "%{time_total}" "$url")
        printf "  %d 回目: %s 秒\n" "$i" "$t"
        sum=$(echo "$sum + $t" | bc)
    done
    avg=$(echo "scale=6; $sum/5" | bc)
    printf "  → 平均 RTT: %s 秒\n" "$avg"
    echo "${region},${avg}" >> "$tmpfile"
done
echo -e "\n=== Azure TTS 全リージョン RTT 結果（RTT が短い順）==="
sort -t, -k2,2n "$tmpfile" | awk -F, '{printf("  %2d. %-20s : %s 秒\n", NR, $1, $2)}'
rm -f "$tmpfile"
```

{% hint style="info" %}
日本国内から計測した場合、通常は `japaneast` が最短 RTT となります。ただし国内バックボーンの混雑時には `koreacentral` や `japanwest` が同等以下になるケースもあるため、本番環境では実測値を基にリージョンを決定することを推奨します。
{% endhint %}

## WebRTC パケットロス品質判定

映像のコマ落ち・再接続が発生した際に、原因がネットワーク側か MiniPrem 側かを切り分けるための定量基準です。MiniPrem ホスト上で以下のコマンドを実行し、10 秒間で 500 パケットを送信してロス率を計測します。

```bash
ping -s 1200 -i 0.02 -c 500 digitalhumans-demo.jp
```

### 判定基準

| パケットロス | 判定 | デジタルヒューマンの動作 | 推奨対策                  |
| ------ | -- | ------------ | --------------------- |
| ≤ 1%   | 優秀 | 非常に滑らか       | 対策不要                  |
| ≤ 3%   | 良好 | 滑らか          | 対策不要                  |
| ≤ 5%   | 注意 | やや不安定        | ネットワーク環境の確認           |
| ≤ 10%  | 警告 | 不安定（途切れ頻発）   | 有線化・5GHz Wi-Fi・ルータ再起動 |
| > 10%  | 不適 | 使用困難         | ISP 問い合わせ・回線見直し       |

### 推奨対策（パケットロス 3% 超の場合）

1. 有線接続への切り替えを検討
2. Wi-Fi の場合は 5GHz 帯の使用を推奨
3. ルーター / アクセスポイントの再起動
4. ネットワーク帯域の確保（他アプリケーションの停止）
5. ISP への問い合わせ

## 接続検証コマンド

ファイアウォール設定後、または映像が表示されない場合の一次切り分けに使用するコマンドです。

### UFW 状態確認

```bash
# UFW 状態確認
sudo ufw status numbered

# 特定ポートの確認
sudo ufw status numbered | grep -E "(3478|5349|49152|443)"

# UFW ログ確認
sudo tail -f /var/log/ufw.log
```

### P2P 接続テスト

```bash
# 表示端末から MiniPrem ホストへの UDP 接続テスト
nc -u -v -z <MiniPrem ホスト IP> 49152

# MiniPrem ホストで待ち受け確認
ss -unap | grep -E "49[0-9]{3}|5[0-9]{4}|6[0-5]{4}"
```

### TURN/STUN 接続テスト

```bash
# STUN サーバーへの接続テスト
nc -u -v -z turn.uneeq.io 3478

# TURN over TLS の接続テスト
nc -v -z turn.uneeq.io 5349
```

### chrome://webrtc-internals/ での確認

表示端末側 Chrome で `chrome://webrtc-internals/` を開き、セッション接続中に以下の値を確認します。

```
// P2P 接続の場合
"googLocalCandidateType": "host"
"googRemoteCandidateType": "host"
"iceConnectionState": "connected"

// TURN 経由の場合
"googLocalCandidateType": "relay"
"googRemoteCandidateType": "relay"
"iceConnectionState": "connected"

// 使用ポート確認
"googLocalAddress": "192.168.200.200:49152"
"googRemoteAddress": "192.168.200.100:53872"
```

{% hint style="info" %}
`iceConnectionState` が `connected` にならず `checking` / `failed` で止まる場合は、UDP 49152-65535 範囲のいずれかが遮断されている可能性が高いです。本ページの早見表に従ってファイアウォール設定を見直してください。
{% endhint %}

## ホスト疎通確認 URL

弊社サポートが顧客環境からの疎通可否を確認する際に使用する URL リストです。インストール前に MiniPrem ホストから以下の URL へ HTTP ステータスが正常に返ることを確認してください。

```bash
echo "Docker Hub 接続テスト:"
curl -s -o /dev/null -w "HTTP Status: %{http_code}, Time: %{time_total}s\n" https://hub.docker.com

echo "デジタルヒューマン プラットフォーム API 接続テスト:"
curl -s -o /dev/null -w "HTTP Status: %{http_code}, Time: %{time_total}s\n" https://api.uneeq.io

echo "デジタルヒューマン配布版インストーラー・シグナリング・静的コンテンツ接続テスト:"
curl -s -o /dev/null -w "HTTP Status: %{http_code}, Time: %{time_total}s\n" https://hosted-experience.jp

echo "デジタルヒューマンデモ接続テスト:"
curl -s -o /dev/null -w "HTTP Status: %{http_code}, Time: %{time_total}s\n" http://digitalhumans-demo.jp
```

不明点や疎通エラーが発生した場合は、計測結果（`miniprem_precheck_YYYYMMDD_HHMM.txt`）を [サポート窓口](https://support.digitalhumans.jp/) までお送りください。

## 関連ドキュメント

* [はじめに](/dev/miniprem/getting-started.md)
* [前提条件](/dev/miniprem/prerequisites.md)
* [リモートインストール支援](/dev/miniprem/remote-install-support.md)
* [問題診断ガイド](/dev/miniprem/first-steps.md)
* [Harbor レジストリ](/dev/miniprem/harbor-registry.md)
* [トラブルシューティング](/dev/miniprem/troubleshooting.md)
