TURNサーバ(たーんさーば)
最終更新:2026/4/27
TURNサーバは、ネットワークアドレス変換(NAT)を透過し、ピアツーピア通信を可能にするサーバである。
ポイント
TURNサーバは、特に音声・ビデオ通話などのリアルタイム通信において、NAT環境下での接続確立を支援する重要な役割を担う。STUNと組み合わせて利用されることが多い。
TURNサーバとは
TURN(Traversal Using Relays around NAT)サーバは、NAT環境下にあるクライアント同士が直接通信できない場合に、中継点として機能するサーバです。NATは、プライベートネットワーク内のIPアドレスをグローバルIPアドレスに変換する技術であり、セキュリティ上の理由から広く利用されています。しかし、NATの存在は、ピアツーピア通信を困難にする場合があります。
TURNサーバの役割
TURNサーバは、クライアントからの接続要求を受け付け、その接続を他のクライアントに中継します。これにより、NAT環境下にあるクライアントでも、あたかも直接接続しているかのように通信できるようになります。TURNサーバは、STUN(Session Traversal Utilities for NAT)サーバと組み合わせて利用されることが一般的です。STUNサーバは、クライアントがNATのタイプを特定し、グローバルIPアドレスとポート番号を特定するために使用されます。TURNサーバは、STUNサーバで直接接続できない場合に、中継パスを提供します。
TURNプロトコル
TURNプロトコルは、RFC 5766で定義されています。TURNプロトコルは、TCPまたはUDPを使用して通信を行います。TURNサーバは、クライアントからの接続要求を認証し、許可された場合にのみ中継サービスを提供します。認証方式としては、ユーザー名とパスワードによる認証や、TLS証明書による認証などが使用されます。
TURNサーバの利用例
TURNサーバは、WebRTC(Web Real-Time Communication)などのリアルタイム通信技術において、重要な役割を果たしています。WebRTCは、ブラウザ間で音声・ビデオ通話やデータ通信を可能にする技術であり、TURNサーバは、NAT環境下にあるブラウザ同士が通信できるようにするために使用されます。また、IP電話やビデオ会議システムなど、様々なアプリケーションでTURNサーバが利用されています。
TURNサーバの構築
TURNサーバは、Coturnなどのオープンソースソフトウェアを使用して構築することができます。Coturnは、TURNプロトコルを実装したサーバであり、LinuxなどのUnix系OS上で動作します。TURNサーバの構築には、サーバの準備、Coturnのインストール、設定、ファイアウォールの設定など、いくつかの手順が必要です。