Comment puis-je installer un serveur TURN sur mon ubuntu 12.04? Pouvez-vous partager un tutoriel? J'ai lu ce tutoriel: Implémentation de notre propre serveur STUN/TURN pour l'application WebRTC . Mais ce que je ne comprends pas, c'est comment puis-je installer mon propre serveur TURN sur mon ubuntu 12.04?
J'utilise actuellement quelque chose comme le code suivant pour créer le 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);
Et je veux remplir les arguments du code ci-dessus pour travailler avec un réseau différent.
Lorsque je veux installer Turn Server, je reçois
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package resiprocate-turn-server
J'ai utilisé apt-get install resiprocate-turn-server
. J'ai également utilisé ce https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html tutoriel.
il est facile à installer sur les machines Linux, pas essayé dans d'autres OS.
manière simple:
Sudo apt-get install coturn
Si vous dites non, je veux le dernier tranchant, vous pouvez télécharger le code source depuis leur page de téléchargements en l'installant vous-même, exemple:
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
exemple de commande pour exécuter le serveur TURN:
Sudo turnserver -a -o -v -n --no-dtls --no-tls -u test:test -r "someRealm"
description de la commande:
vérifiez ceci wiki pour plus de détails et de configurations.
vous pouvez maintenant utiliser le serveur TURN dans votre application WebRTC comme:
var peerConnectionConfig = {
iceServers: [{
urls: YOUR_IP:3478,
username: 'test',
password: 'test'
}]
}
Sur votre machine serveur ubuntu, installez, configurez et exécutez ne version packagée decoturn . Pour une configuration de base, faites
# 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
Ajouter --daemon
pour le faire fonctionner en arrière-plan. Voir https://github.com/coturn/coturn/wiki/turnserver pour la liste des options de turnserver
et jetez un œil à leur exemple de fichier de configuration = si vous voulez en utiliser un avec -c CONFIGFILE
à la place d'utiliser -n
et en passant toutes les options sur la ligne de commande comme je l'ai fait ci-dessus.
Pour vérifier que cela fonctionne, dans Google Chrome, sur n'importe quelle page d'une origine sécurisée (par exemple stackoverflow.com), exécutez ceci dans la console développeur:
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,
}))
Tu devrais obtenir
TURN server reachable on TCP? true
TURN server reachable on UDP? true
Je pense que le guide est quelque peu dépassé.
Regardez ce serveur Google open source TURN.
Vraiment facile à installer et fonctionne très bien.
https://code.google.com/p/rfc5766-turn-server/
Ce lien fournira tous les détails concernant l'installation et la configuration du serveur TURN.
https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html
Le gars a un très bon référentiel pour les démos WebRtc.
Installation de Turn Server
changer le package en fonction de votre serveur
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
Ajouter ce qui suit pour transformer 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
Ajoutez le nom d'utilisateur et le mot de passe sur turnuserdb.conf
vi turnuserdb.conf
dans le format suivant
testuser:pass0wrd
Pour démarrer Turn Server:
sh /data/start_turn_server.sh
Pour ajouter un nouvel utilisateur de virage:
sh /data/ addTurnUser.sh
Pour voir si Turn Server est en cours d'exécution:
ps aux | grep –I turn
La commande ci-dessus doit répertorier certains processus en tant que turnserver, si le serveur TURN fonctionne correctement.