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 チュートリアル。
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"
コマンドの説明:
詳細と構成については、この wiki を確認してください。
これで、次のようにWebRTCアプリケーションでTURNサーバーを使用できます。
var peerConnectionConfig = {
iceServers: [{
urls: YOUR_IP:3478,
username: 'test',
password: 'test'
}]
}
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
ガイドは少し古いと思います。
このGoogleオープンソースTURNサーバーを見てください。
非常に簡単にインストールでき、非常にうまく機能します。
https://code.google.com/p/rfc5766-turn-server/
このリンクは、TURNサーバーのインストールと構成に関するすべての詳細を提供します。
https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html
その男はWebRtcデモ用の非常に優れたリポジトリを持っています。
ターンサーバーのインストール
サーバーに応じてパッケージを変更する
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としてリストします。