web-dev-qa-db-ja.com

UbuntuにWebRTC用のTURN Serverをインストールする

Ubuntu 12.04にTURNサーバーをインストールするにはどうすればよいですか?チュートリアルを共有できますか?私はこのチュートリアルを読みます: WebRTCアプリケーション用の独自のSTUN/TURNサーバーの実装 。しかし、私が理解していないのは、ubuntu 12.04に自分のTURNサーバーをインストールする方法です。

現在、次のコードのようなものを使用してRTCPeerConnectionを作成しています

const pc_config = {"iceServers": [{"url": "stun:stun.l.google.com:19302"},
  {"url":"turn:my_username@<turn_server_ip_address>", "credential":"my_password"}]};

const pc_new = new webkitRTCPeerConnection(pc_config);

そして、別のネットワークで動作するように上記のコードの引数を入力します。

ターンサーバーをインストールしたいときは

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package resiprocate-turn-server

apt-get install resiprocate-turn-server。私もこれを使用しました https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html チュートリアル。

15
Dvlpr

linuxマシンへのインストールは簡単で、他のOSでは試していません。

簡単な方法:

Sudo apt-get install coturn

いいえと答えた場合は、最新の最先端が欲しいのですが、ソースコードを downloads page からダウンロードして自分でインストールできます。例:

Sudo -i     # ignore if you already in admin mode
apt-get update && apt-get install libssl-dev libevent-dev libhiredis-dev make -y    # install the dependencies
wget -O turn.tar.gz http://turnserver.open-sys.org/downloads/v4.5.0.3/turnserver-4.5.0.3.tar.gz     # Download the source tar
tar -zxvf turn.tar.gz     # unzip
cd turnserver-*
./configure
make && make install 

tURNサーバーを実行するためのサンプルコマンド:

Sudo turnserver -a -o -v -n  --no-dtls --no-tls -u test:test -r "someRealm"

コマンドの説明:

  • -a-長期資格情報メカニズムを使用します
  • -o-サーバープロセスをデーモンとして実行します
  • -v-「中程度」の詳細モード。
  • -n-構成ファイルなし
  • --no-dtls-DTLSリスナーを開始しません
  • --no-tls-TLSリスナーを起動しません
  • -u-使用するユーザー資格情報
  • -r-使用するデフォルトのレルム、TURN REST APIが必要

詳細と構成については、この wiki を確認してください。

これで、次のようにWebRTCアプリケーションでTURNサーバーを使用できます。

var peerConnectionConfig = {
  iceServers: [{
    urls: YOUR_IP:3478,
    username: 'test',
    password: 'test'
  }]
}
22
mido

Ubuntuサーバーマシンで、セットアップ、構成、および実行 のパッケージバージョンcoturn を実行します。基本的なセットアップについては、

# set up
Sudo apt-get install --assume-yes coturn

# configure & run
USERNAME="some-username"
PASSWORD="some-password"
PORT=3478

# -n: use only commandline parameters, no config file
Sudo turnserver \
    -n \
    --verbose \
    --lt-cred-mech \
    --user $USERNAME:$PASSWORD \
    --realm "someRealm" \
    --no-dtls \
    --no-tls \
    --listening-port $PORT

--daemonを追加して、バックグラウンドで実行し続けます。 turnserverのオプションのリストについては https://github.com/coturn/coturn/wiki/turnserver を参照し、 これらの設定ファイルの例 を参照してください= -c CONFIGFILEを使用して上記のようにコマンドラインですべてのオプションを渡す代わりに、-nで使用する場合.

Google Chromeで安全なOriginの任意のページ(例:stackoverflow.com)で機能することを確認するには、開発者コンソールで次のコマンドを実行します。

function checkTURNServer(turnConfig, timeout){ 

  return new Promise(function(resolve, reject){

    setTimeout(function(){
        if(promiseResolved) return;
        resolve(false);
        promiseResolved = true;
    }, timeout || 5000);

    var promiseResolved = false
      , myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection   //compatibility for firefox and chrome
      , pc = new myPeerConnection({iceServers:[turnConfig]})
      , noop = function(){};
    pc.createDataChannel("");    //create a bogus data channel
    pc.createOffer(function(sdp){
      if(sdp.sdp.indexOf('typ relay') > -1){ // sometimes sdp contains the ice candidates...
        promiseResolved = true;
        resolve(true);
      }
      pc.setLocalDescription(sdp, noop, noop);
    }, noop);    // create offer and set local description
    pc.onicecandidate = function(ice){  //listen for candidate events
      if(promiseResolved || !ice || !ice.candidate || !ice.candidate.candidate || !(ice.candidate.candidate.indexOf('typ relay')>-1))  return;
      promiseResolved = true;
      resolve(true);
    };
  });   
}

const USERNAME="some-username"
const PASSWORD="some-password"
const PORT=3478
const IP="10.11.0.115" // you will have to change this

console.log('TURN server reachable on TCP?', await checkTURNServer( {
    url: `turn:${IP}:${PORT}?transport=tcp`,
    username: USERNAME,
    credential: PASSWORD,
}))

console.log('TURN server reachable on UDP?', await checkTURNServer( {
    url: `turn:${IP}:${PORT}?transport=udp`,
    username: USERNAME,
    credential: PASSWORD,
}))

あなたは得るべきです

TURN server reachable on TCP? true
TURN server reachable on UDP? true
3
masterxilo

ガイドは少し古いと思います。

このGoogleオープンソースTURNサーバーを見てください。
非常に簡単にインストールでき、非常にうまく機能します。
https://code.google.com/p/rfc5766-turn-server/

2
9dan

このリンクは、TURNサーバーのインストールと構成に関するすべての詳細を提供します。

https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html

その男はWebRtcデモ用の非常に優れたリポジトリを持っています。

1
Mhadonis

ターンサーバーのインストール

サーバーに応じてパッケージを変更する

wget http://turnserver.open-sys.org/downloads/v3.2.4.4/turnserver-3.2.4.4-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz

tar -zxvf turnserver-3.2.4.4-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz

wget http://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz

tar -zxvf libevent-2.0.21-stable.tar.gz

cd libevent-2.0.21-stable/

./configure

make && make install

dpkg -i rfc5766-turn-server_3.2.4.4-1_AMD64.deb

cd /etc/

vi turnserver.conf

以下を追加してserver.confをオンにします

listening-device=eth0
listening-ip=YOUR_IP_HERE
listening-port=3478
userdb=turnuserdb.conf
relay-device=eth0
realm=YOUR_REALM_IP_HERE
lt-cred-mech
log-file=/var/log/turnserver.log

turnuserdb.confにユーザー名とパスワードを追加します

 vi turnuserdb.conf

次の形式

testuser:pass0wrd

ターンサーバーを起動するには:

sh /data/start_turn_server.sh

新しいターンユーザーを追加するには:

sh /data/ addTurnUser.sh

ターンサーバーが実行されているかどうかを確認するには:

ps aux | grep –I turn

上記のコマンドは、TURNサーバーが適切に実行されている場合、いくつかのプロセスをturnserverとしてリストします。

0