coturnに基づくスタン/ターンクラウドサーバーの構築

Webrtcは、Googleが立ち上げたブラウザベースのリアルタイム音声ビデオ通信アーキテクチャです。典型的なアプリケーションシナリオは次のとおりです。ブラウザ間のエンドツーエンド(p2p)リアルタイムビデオ会話ですが、ネットワーク環境(ルーター/スイッチ/ファイアウォールなど)の複雑さのため、ブラウザとブラウザはできません多くの場合、p2p接続を確立します。パブリックネットワーク上のリレーサーバー(いわゆるターンサーバー)を介してのみ転送できます。サンプル画像は次のとおりです。

上の図のリレーサーバーはターンリレーサーバーであり、STUNサーバーの機能は、NATの背後にあるピア(つまり、ルーターの背後にあるコンピューターまたはルーターの背後にあるコンピューター)によって公開されたIPとポートを収集することによって、貫通可能なIPとポートを見つけることです。スイッチ)ルーターのリンクは、一般に「ホールパンチング」として知られています。スタン/ターンサーバーは通常、パブリックネットワークにデプロイされ、すべてのピアからアクセスできます。coturnオープンソースプロジェクトは、スタンサービスとターンサービスの機能を同時に実装し、webrtcアプリケーションに不可欠な最初の選択肢です。

以下に、coturnの構築プロセスについて説明します。

1.パブリックIPを備えたクラウドホストを取得します

ここで使用しているTianyiクラウドサーバー。他のクラウドサーバーは使用していませんが、すべて同じである必要があります。ここではubuntu16.04を使用しています

 

次に、coturnの依存コンポーネントをインストールします

新しい環境には何もないため、最初に次のコンポーネントをインストールする必要があります。

apt-get  install  build-essential #(可选),如果后面的./configure失败时,可先安装gcc
apt-get install openssl libssl-dev make
 
wget https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar.gz
tar -zxvf libevent-2.1.10-stable.tar.gz
cd libevent-2.1.10-stable
./configure
make & make install
apt-get install sqlite libsqlite3-dev
cd ~/


注:coturnなどのユーザー情報はデフォルトでsqliteに保持されます。mysqlに保存する場合は、上記のsqliteインストールオプションをmysql関連の依存関係に変更する必要があります。

 

3、coturnのソースコードをダウンロードしてコンパイルします

wget 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

 

第四に、ユーザーを作成し、coturnを構成します

turnadmin -a -u your_name -p your_password -r your_realm

ここでは、your_nameを自分の名前に、your_passwordを自分のパスワードに、your_realmを自分のドメイン名に置き換える必要があります。3つすべてを記述して置き換えることができます。覚えておいてください。

 

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

上記のコマンドは、構成モードファイルを/ usr / local / etc /にコピーします。

 

vim /usr/local/etc/turnserver.conf

vimを使用して構成ファイルを開きます。新しい環境にはvimがありません。最初に、vimをインストールする必要があります。

次の重要な項目を変更します。

listening-port=3478 #监听端口

listening-device=eth0 #监听的网卡

external-ip=xxx.xxx.xxx.xxx #云主机的公网ip

user=your_name:your_password #用户名:密码

realm=your_realm #一般与turnadmin创建用户时指定的realm一致

cli-password=123456 #这个随便填

 

5、セキュリティグループルールを追加します

クラウドホストは、デフォルトでは必要なポートを開きません。ここでは、必要なすべてのポートを開きます。購入したクラウドホストのコントロールセンターにログインし、セキュリティグループルールを変更するためのページを見つけます。

3478:udp / tcp

443:tcp

8088:tcp

8089:tcp

8090:tcp

40000-60000:udp

ncコマンドを使用して、ポート3478の検出など、使用するポートが開いているかどうかを検出できます。

例としてサーバーIP:129.204.197.213を取り上げます。

単純な検出原理:サーバーはnc -l 3478を使用してポート3478を監視し、次にncコマンドを使用して接続するLinuxマシンを見つけます。これは特定の操作です。

例:3478のTCPが開いているかどうかをテストします

サーバ:

nc -l 3478

クライアント:

nc -v 129.204.197.213 3478

接続が成功するとプロンプトが表示されます

129.204.197.2133478port [tcp / *]への接続に成功しました!

 

6、coturnを有効にして、確認します

クラウドホストのコマンドラインウィンドウに戻る

turnserver -o -a -f -v -r your_realm

 

webrtc-samplesの公式ウェブサイトには、氷の浸透を検出するためのオンラインツールも用意されています:https//webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

下の図を参照して、スタンアドレスとターンアドレスを設定し、下部の[候補者を収集]をクリックします(候補者のリンクを収集します)

最後の応答行が表示されている場合、アドレスのIPはターンサーバーのパブリックネットワークIPと同じであり、リレーが成功していることを示しています。

 

からのコンテンツ参照:

https://www.cnblogs.com/yjmyzz/p/how-to-install-coturn-on-ubuntu.html

https://www.jianshu.com/p/707e8a4e812a

 

おすすめ

転載: blog.csdn.net/qq_37381177/article/details/109612392