UbuntuでTURNサーバーを構築する

Ubuntu環境においてWebRTC用のTURNサーバーを構築するための手順を記述する。

事前確認

gccがインストールされているか確認する。

which gcc

SSL証明書の生成

opensslを使用して、自己署名証明書を生成する。

sudo apt install openssl-libs

openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes

証明書の作成过程中では、特に設定せずにEnterキーを押下して進める。

libeventのインストール

libeventをソースコードからビルドしてインストールする。

wget --no-check-certificate https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz

tar -zxvf libevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable/
./configure
make
make install

coturnのインストール

coturnプロジェクトのページからアーカイブを取得し、ビルドを行う。

wget --no-check-certificate https://github.com/coturn/coturn/archive/4.5.1.1.tar.gz

tar -zxvf 4.5.1.1.tar.gz
cd coturn-4.5.1.1
./configure
make
make install

用户的作成

turnadminコマンドを使用して、TURNサーバーにアクセスするための認証情報を生成する。

turnadmin -a -u adminuser -p securepass -r realm.example.com

設定ファイルの準備

設定ファイルのサンプルをコピーして編集する。

cd /usr/local/etc
cp turnserver.conf.default turnserver.conf

ネットワーク設定の確認

現在のIP地址を確認する。

ip addr show

設定ファイルの編集

turnserver.confファイルを以下のように編集する。

vim turnserver.conf
relay-device=eth0
listening-ip=192.168.1.100
external-ip=203.0.113.50
user=adminuser:securepass
realm=realm.example.com
listening-port=3478
cli-password=admincli

cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem

各パラメータの説明:

  • relay-device: ネットワークインターフェースの名稱
  • listening-ip: サーバー内のローカルIPアドレス
  • external-ip: インターネットに公開されているIPアドレス
  • user: IceServer作成時に使用するユーザー名とパスワード
  • realm: turnadminでユーザーを作成した際に指定したrealmと一致させる
  • cli-password: コマンドラインインターフェースのパスワード設定

ファイアウォールの設定

TURNサーバーが使用するポートをファイアウォールで開放する。

sudo ufw allow 3478/tcp
sudo ufw allow 3478/udp

coturnの起動

foregroundモードで起動して動作確認を行う。

turnserver -a -f -r realm.example.com

正常に起動ことが確認出来后、バックグラウンドで実行する。

turnserver -a -o -f -r realm.example.com

動作確認

WebRTCのICE接続性をテストするには、公式のテストページにアクセスする。

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

テストページの手順に従い、STUNまたはTURNサーバーを追加して接続性を検証する。

タグ: Ubuntu turn-server WebRTC coturn ice

6月21日 20:58 投稿