自分のリレーサーバー(TURN)を作って Any Display につなぐ

Any Display製品チーム

リレーサーバー(TURN)は、2 台のデバイスが直接つながれないときに、その間で映像・音声・入力を代わりに届けるサーバーです。Any Display は通常デバイス同士を直接つなぎますが、会社や学校のネットワーク、一部のモバイル回線のように直接接続をブロックする環境では、リレーサーバーがないとリモート操作やリモートカメラが接続できません。

なぜ必要なのでしょうか。インターネット上では、それぞれのデバイスがルーターや通信事業者の機器の内側にあるため、相手のアドレスに直接たどり着けないことがあります。多くの場合 Any Display は直接つながる経路を見つけますが、セキュリティの厳しいネットワークはこの方法をブロックします。そこで両方のデバイスが接続できるリレーサーバーを 1 台用意すると、デバイスはそのサーバーを経由してつながります。映像はデバイス間で暗号化されたまま通過するため、サーバーが内容を見ることはできません。このガイドでは、無料の TURN サーバー coturn を Mac・Linux・Windows にインストールし、ユーザー名とパスワードを決めてアプリに入力するまでを順に説明します。

判断ポイント

リレーサーバーが必要になるのは?

会社や学校のネットワークから自宅のパソコンをリモート操作するとき

セキュリティの厳しいネットワークでは、デバイス同士の直接通信がブロックされることがよくあります。リレーサーバーを経由すればつながります。

モバイル回線でリモートカメラを見るとき

一部の携帯キャリアの回線では直接接続がうまくいきません。自宅のリレーサーバーを経由しても、遅延はたいていほぼリアルタイムです。

接続中のまま止まってしまうとき

同じアカウントでログインしているのにリモート接続が待機したままなら、直接接続がブロックされている可能性があります。

  1. 1

    準備:サーバー用パソコンとアドレスの確認

    リレーサーバーは常に電源が入っているパソコンにインストールします。Mac mini、Linux のミニ PC、Windows PC、クラウドサーバー(VPS)のどれでもかまいません。まず 2 つのアドレスを控えておきます。グローバル IP は、そのパソコンのターミナルで curl -4 ifconfig.me を実行すると表示されます。ローカル IP は、Mac なら ipconfig getifaddr en0、Linux なら hostname -I、Windows なら ipconfig で確認します(例:192.168.0.20)。

    ルーターの DHCP 設定でこのパソコンのローカル IP を固定(予約)しておくと、あとでポート転送が切れません。

  2. 2

    設定ファイルを作り、ユーザー名とパスワードを決める

    3 つの OS とも、下のような turnserver.conf ファイル 1 つで設定します。user= の行が、Any Display に入力するユーザー名とパスワードです。形式は user=ユーザー名:パスワード で、myname と CHANGE-THIS-LONG-PASSWORD を自分の値に置き換えます。パスワードは長くランダムなものにしてください。ターミナルで openssl rand -base64 24 を実行すると作れます。パスワードにコロン(:)は使わないでください。

    ルーターの内側にある場合、external-ip は前の手順で確認した値を使って グローバルIP/ローカルIP の形で書きます。サーバー自体にグローバル IP が付いている VPS なら、この行は削除してかまいません。min-port〜max-port は中継に使う UDP ポートの範囲です。個人で使うなら 41 個で十分で、多くの人が同時に使うなら広げます。

    listening-port=3478
    fingerprint
    lt-cred-mech
    realm=anydisplay
    user=myname:CHANGE-THIS-LONG-PASSWORD
    min-port=49160
    max-port=49200
    external-ip=203.0.113.10/192.168.0.20
    no-tls
    no-dtls
    no-cli
    no-multicast-peers
  3. 3

    macOS にインストール(Homebrew)

    Homebrew が入っていれば、ターミナルで下のコマンドを順に実行します。2 つ目のコマンドで設定ファイルが開くので、前の手順の設定内容を貼り付けて保存します(nano では Control+O、Enter、Control+X)。Intel Mac ではパスが /usr/local/etc/turnserver.conf になります。

    sudo brew services start coturn を使うと、Mac の起動時に、ログインしていなくてもリレーサーバーが自動で起動します。システム設定 › ネットワーク › ファイアウォール がオンなら、turnserver への受信接続を許可します。

    brew install coturn
    nano /opt/homebrew/etc/turnserver.conf
    sudo brew services start coturn
  4. 4

    Linux にインストール(Ubuntu・Debian)

    下のコマンドで coturn をインストールし、/etc/turnserver.conf に前の手順の設定内容を入れます。古い Debian・Ubuntu のパッケージでは、/etc/default/coturn の TURNSERVER_ENABLED=1 の行頭にある # を消さないと起動しません。systemctl enable --now で今すぐ起動し、再起動後も自動で起動します。

    ufw ファイアウォールを使っていなければ、最後の 2 行は飛ばしてください。Fedora・RHEL では sudo dnf install coturn でインストールし、設定ファイルは /etc/coturn/turnserver.conf です。クラウドサーバーの場合は、事業者のセキュリティグループ(ファイアウォール)でも UDP 3478 と 49160〜49200 を開けます。

    sudo apt update && sudo apt install coturn
    sudo nano /etc/turnserver.conf
    sudo systemctl enable --now coturn
    sudo ufw allow 3478/udp
    sudo ufw allow 49160:49200/udp
  5. 5

    Windows にインストール(Docker Desktop)

    coturn には Windows 用の公式インストーラーがないため、無料の Docker Desktop で公式 coturn イメージを動かします。Docker Desktop をインストールし、設定で「Start Docker Desktop when you sign in」(サインイン時に起動)をオンにしておきます。次に PowerShell で下のコマンドを順に実行します。メモ帳が開いたら、前の手順の設定内容を貼り付けて保存します。

    Windows では external-ip を external-ip=グローバルIP のようにグローバル IP だけで書きます。最後のファイアウォールのコマンドは、管理者として実行した PowerShell で実行します。--restart unless-stopped により、PC を再起動しても Docker が起動すればリレーサーバーも再び動きます。

    mkdir C:\coturn
    notepad C:\coturn\turnserver.conf
    docker run -d --name coturn --restart unless-stopped -p 3478:3478/udp -p 49160-49200:49160-49200/udp -v C:\coturn\turnserver.conf:/etc/coturn/turnserver.conf coturn/coturn
    New-NetFirewallRule -DisplayName "Any Display TURN" -Direction Inbound -Protocol UDP -LocalPort 3478,49160-49200 -Action Allow
  6. 6

    ルーターのポート転送

    ルーター管理画面のポート転送(ポートフォワーディング、仮想サーバー、静的 IP マスカレード)のメニューで、サーバー用パソコンのローカル IP に向けて 2 つのルールを追加します。UDP 3478 → 3478、UDP 49160〜49200 → 49160〜49200。プロトコルには必ず UDP を含めてください。

    ルーターがさらにプロバイダーのルーターの内側にある場合や、プロバイダーがグローバル IP を割り当てない回線(CGNAT)の場合は、自宅のサーバーに外からつなげません。その場合はクラウドサーバー(VPS)に Linux でインストールしてください。

  7. 7

    ユーザー名・パスワードの変更と再起動

    ユーザー名やパスワードを変えるには、turnserver.conf の user= の行を書き換えてリレーサーバーを再起動します。user= の行を複数置けば、人ごとに別のアカウントを渡せます。削除したアカウントは再起動後から使えなくなります。OS ごとの再起動コマンドは下のとおりです。

    パスワードを変えたら、Any Display に保存したパスワードも新しい値に変えてください。

    # macOS
    sudo brew services restart coturn
    # Linux
    sudo systemctl restart coturn
    # Windows (Docker)
    docker restart coturn
  8. 8

    パソコン版アプリに入力する

    Mac・Windows の Any Display で 設定 › ネットワーク › リレーサーバー(TURN) を開きます。「リレーサーバーを使う」をオンにし、「サーバーアドレス」に turn:グローバルIP:3478 の形で入力します(下の例)。固定アドレスがなければ、ルーターの DDNS のアドレスも使えます(例:turn:myhome.example.com:3478)。「ユーザー名」と「パスワード」には user= の行に書いた値を入れます。

    「接続テスト」をクリックし、「接続できました。このサーバーで中継できます。」と表示されたら「保存」をクリックします。「サーバー名」を入力して「リストに保存」をクリックすると「保存済みサーバー」に残り、次回すぐに読み込めます。

    turn:203.0.113.10:3478
  9. 9

    スマホ・タブレット版アプリに入力する

    iPhone・iPad・Android の Any Display で 設定 › リレーサーバー(TURN) を開き、パソコンと同じサーバーアドレス・ユーザー名・パスワードを入力して「接続テスト」と「保存」をタップします。片方のデバイスだけで十分ですが、外出先からモバイル回線でつなぐことが多いなら、スマホ側に入れておくと便利です。

  10. 10

    接続テストの結果で原因を探す

    「サーバーが応答しません」と出たら、アドレスとポート、サーバー用パソコンの電源、ルーターの UDP 3478 の転送、サーバーのファイアウォールを確認します。同じネットワーク内からグローバル IP でテストして応答がない場合は、ルーターがヘアピン NAT(NAT ループバック)に対応していない可能性があります。モバイル回線に切り替えてもう一度テストしてください。

    「ログインに失敗しました」と出た場合は、サーバーには届いていますがユーザー名かパスワードが違います。大文字・小文字まで user= の行と同じか確認し、設定を直したらサーバーを再起動します。テストは通るのにリモート画面が表示されない場合は、49160〜49200 の転送を確認してください。

両方のデバイスで設定が必要ですか?
いいえ。接続する 2 台のうち片方で設定するだけで使えます。それぞれに別のサーバーを入れてもかまいません。
リレーサーバーの管理者に画面を見られますか?
いいえ。映像と音声はデバイス間で暗号化されたままサーバーを通るため、サーバーでは復号できません。
turns:(TLS)は使えますか?
Any Display の高速な UDP 経路は turn:(UDP)だけを使います。最も安定して使えるよう、turn:アドレス:3478 の形式をおすすめします。
グローバル IP が変わったら?
turnserver.conf の external-ip を新しいアドレスに書き換えて、サーバーを再起動します。アプリのサーバーアドレスに DDNS のアドレスを使っていれば、アプリ側は変更不要です。
複数人で共有できますか?
はい。user= の行を 1 人につき 1 行ずつ追加し、同時に使う人が多ければ min-port〜max-port の範囲とポート転送も広げます。

確認基準

2026 年 10 月 8 日に、macOS のリレーサーバー(Homebrew coturn 4.18.0)と Any Display のリモートカメラ接続で確認しました。Linux と Windows の手順は、coturn の公式パッケージと Docker イメージのドキュメントに基づいています。

制限事項

公式情報源

Any Display をダウンロード料金