会社や学校のネットワークから自宅のパソコンをリモート操作するとき
セキュリティの厳しいネットワークでは、デバイス同士の直接通信がブロックされることがよくあります。リレーサーバーを経由すればつながります。
リレーサーバー(TURN)は、2 台のデバイスが直接つながれないときに、その間で映像・音声・入力を代わりに届けるサーバーです。Any Display は通常デバイス同士を直接つなぎますが、会社や学校のネットワーク、一部のモバイル回線のように直接接続をブロックする環境では、リレーサーバーがないとリモート操作やリモートカメラが接続できません。
なぜ必要なのでしょうか。インターネット上では、それぞれのデバイスがルーターや通信事業者の機器の内側にあるため、相手のアドレスに直接たどり着けないことがあります。多くの場合 Any Display は直接つながる経路を見つけますが、セキュリティの厳しいネットワークはこの方法をブロックします。そこで両方のデバイスが接続できるリレーサーバーを 1 台用意すると、デバイスはそのサーバーを経由してつながります。映像はデバイス間で暗号化されたまま通過するため、サーバーが内容を見ることはできません。このガイドでは、無料の TURN サーバー coturn を Mac・Linux・Windows にインストールし、ユーザー名とパスワードを決めてアプリに入力するまでを順に説明します。
セキュリティの厳しいネットワークでは、デバイス同士の直接通信がブロックされることがよくあります。リレーサーバーを経由すればつながります。
一部の携帯キャリアの回線では直接接続がうまくいきません。自宅のリレーサーバーを経由しても、遅延はたいていほぼリアルタイムです。
同じアカウントでログインしているのにリモート接続が待機したままなら、直接接続がブロックされている可能性があります。
リレーサーバーは常に電源が入っているパソコンにインストールします。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 を固定(予約)しておくと、あとでポート転送が切れません。
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-peersHomebrew が入っていれば、ターミナルで下のコマンドを順に実行します。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下のコマンドで 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/udpcoturn には 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ルーター管理画面のポート転送(ポートフォワーディング、仮想サーバー、静的 IP マスカレード)のメニューで、サーバー用パソコンのローカル IP に向けて 2 つのルールを追加します。UDP 3478 → 3478、UDP 49160〜49200 → 49160〜49200。プロトコルには必ず UDP を含めてください。
ルーターがさらにプロバイダーのルーターの内側にある場合や、プロバイダーがグローバル IP を割り当てない回線(CGNAT)の場合は、自宅のサーバーに外からつなげません。その場合はクラウドサーバー(VPS)に Linux でインストールしてください。
ユーザー名やパスワードを変えるには、turnserver.conf の user= の行を書き換えてリレーサーバーを再起動します。user= の行を複数置けば、人ごとに別のアカウントを渡せます。削除したアカウントは再起動後から使えなくなります。OS ごとの再起動コマンドは下のとおりです。
パスワードを変えたら、Any Display に保存したパスワードも新しい値に変えてください。
# macOS
sudo brew services restart coturn
# Linux
sudo systemctl restart coturn
# Windows (Docker)
docker restart coturnMac・Windows の Any Display で 設定 › ネットワーク › リレーサーバー(TURN) を開きます。「リレーサーバーを使う」をオンにし、「サーバーアドレス」に turn:グローバルIP:3478 の形で入力します(下の例)。固定アドレスがなければ、ルーターの DDNS のアドレスも使えます(例:turn:myhome.example.com:3478)。「ユーザー名」と「パスワード」には user= の行に書いた値を入れます。
「接続テスト」をクリックし、「接続できました。このサーバーで中継できます。」と表示されたら「保存」をクリックします。「サーバー名」を入力して「リストに保存」をクリックすると「保存済みサーバー」に残り、次回すぐに読み込めます。
turn:203.0.113.10:3478iPhone・iPad・Android の Any Display で 設定 › リレーサーバー(TURN) を開き、パソコンと同じサーバーアドレス・ユーザー名・パスワードを入力して「接続テスト」と「保存」をタップします。片方のデバイスだけで十分ですが、外出先からモバイル回線でつなぐことが多いなら、スマホ側に入れておくと便利です。
「サーバーが応答しません」と出たら、アドレスとポート、サーバー用パソコンの電源、ルーターの UDP 3478 の転送、サーバーのファイアウォールを確認します。同じネットワーク内からグローバル IP でテストして応答がない場合は、ルーターがヘアピン NAT(NAT ループバック)に対応していない可能性があります。モバイル回線に切り替えてもう一度テストしてください。
「ログインに失敗しました」と出た場合は、サーバーには届いていますがユーザー名かパスワードが違います。大文字・小文字まで user= の行と同じか確認し、設定を直したらサーバーを再起動します。テストは通るのにリモート画面が表示されない場合は、49160〜49200 の転送を確認してください。
2026 年 10 月 8 日に、macOS のリレーサーバー(Homebrew coturn 4.18.0)と Any Display のリモートカメラ接続で確認しました。Linux と Windows の手順は、coturn の公式パッケージと Docker イメージのドキュメントに基づいています。