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