Zum Inhalt springen

Kategorie:Coturn

Aus Foxwiki

topic kurze Beschreibung

Beschreibung

Installation

# apt install coturn
Hinweis
coturn startet nicht automatisch, bis eine Konfiguration angewendet wird (siehe unten).

Anwendungen

Syntax

Optionen

Parameter

Umgebungsvariablen

Exit-Status

Konfiguration

Dateien

Sicherheit

Dokumentation

RFC

Man-Pages

Info-Pages

Siehe auch

Links

Projekt-Homepage

Weblinks

Weblinks

  1. https://community.hetzner.com/tutorials/install-turn-stun-server-on-debian-ubuntu-with-coturn
  2. https://community.letsencrypt.org/t/are-pre-hook-and-post-hook-and-etc-letsencrypt-renewal-hooks-scripts-mutually-exclusive/96471
  3. https://certbot.eff.org/docs/using.html?highlight=hooks#pre-and-post-validation-hooks
  4. https://github.com/certbot/certbot/issues/5935
  5. https://serverfault.com/questions/849683/how-to-setup-coturn-with-letsencrypt
  6. https://github.com/coturn/coturn/issues/268
  7. https://www.google.com/search?client=firefox-b-d&q=turnserver%3A+0%3A+WARNING%3A+cannot+find+certificate+file
  8. https://decatec.de/home-server/nextcloud-talk-mit-eigenem-turn-server-coturn/

Einzelnachweise

Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5

TMP

TURN-Protokoll

siehe TURN-Protokoll

DNS

DNS-Eintrag

  • Es wird ein vollständig qualifizierten Domänennamen benötigt, der in die externe IP-Adresse Ihres Turn-Servers aufgelöst
  • Mit diesem Domänennamen werden TLS-Zertifikat mit Let's Encrypt erstellt

Erforderliche Ports

Auf dem Coturn-Server müssen die folgenden Ports erreichbar sein, damit Clients eine Verbindung herstellen können (Port 3478 und 443) und Coturn eine Verbindung zu Ihrem zu den Clients herstellen kann (32768 - 65535).

Ports Protokoll Beschreibung
3478 TCP / UDP Coturn Listening Port
443 TCP / UDP TLS-Abhörport
32768-65535 UDP Relaisanschlussbereich

Zertifikate

TLS-Zertifikate von Let's Encrypt
# certbot certonly --standalone --preferred-challenges http -d <turn.example.com>

Aktuelle Versionen des Befehls certbot richten standardmäßig eine automatische Verlängerung ein.

Renewal-Hook
  • Um sicherzustellen, dass die Zertifikate von lesbar sind coturn, die als läuft turnserverBenutzer, fügen Sie den folgenden Erneuerungs-Hook zu Let's Encrypt hinzu.
  • Erstellen Sie zunächst das Verzeichnis /etc/letsencrypt/renewal-hooks/deploy.
# mkdir -p /etc/letsencrypt/renewal-hooks/deploy


Renewal-Hook Skript

/etc/letsencrypt/renewal-hooks/deploy/coturn

#!/bin/bash -e
for certfile in fullchain.pem privkey.pem ; do
       cp -L /etc/letsencrypt/live/<turn.example.com>/"${certfile}" /etc/turnserver/"${certfile}".new
       chown turnserver:turnserver /etc/turnserver/"${certfile}".new
       mv /etc/turnserver/"${certfile}".new /etc/turnserver/"${certfile}"
done

systemctl kill -sUSR2 coturn.service

Datei ausführbar machen

# chmod 0755 /etc/letsencrypt/renewal-hooks/deploy/coturn

Protokollrotation

So drehen Sie die Protokolle für coturnInstallieren Sie die folgende Konfigurationsdatei in /etc/logrotate.d/coturn

/var/log/turnserver/*.log
{
       rotate 7
       daily
       missingok
       notifempty
       compress
       postrotate
               /bin/systemctl kill -s HUP coturn.service
       endscript
}

Und erstellen Sie das zugehörige Protokollverzeichnis

# mkdir -p /var/log/turnserver
# chown turnserver:turnserver /var/log/turnserver

Coturn neu starten

Starten Sie den TURN-Server nach Abschluss der obigen Schritte neu

# /etc/letsencrypt/renewal-hooks/deploy/coturn    # Initial copy of certificates 
# systemctl daemon-reload                         # Ensure the override file is loaded
# systemctl restart coturn                        # Restart
  • Stellen Sie sicher, dass die coturn hat an Port 443 mit gebunden netstat -antp | grep 443.
  • Starten Sie auch Ihren TURN-Server neu und stellen Sie dies sicher coturn wird ausgeführt (und nach dem Neustart an Port 443 gebunden).

Testen

  • Standardmäßig versucht Ihr Browser, über WebRTC eine direkte Verbindung zu Kurento oder FreeSWITCH herzustellen.
  • Wenn keine direkte Verbindung hergestellt werden kann, wird der TURN-Server als einer der ICE-Kandidaten (Interconnectivity Connectivity Exchange) zum Weiterleiten der Medien verwendet.
Verwenden Sie FireFox, um Ihren TURN-Server zu testen.
  • Mit FireFox können Sie direkte Verbindungen deaktivieren und einen Fallback zu Ihrem TURN-Server benötigen.
  • Starten Sie FireFox und öffnen Sie es about:config und suchen Sie nach 'Relais . You should see a parameter media.peerconnection.ice.relay_only . Set this value to wahr`.
  • Wenn FireFox so konfiguriert ist, dass nur ein TURN-Server verwendet wird, öffnen Sie eine neue Registerkarte, nehmen Sie an einer BigBlueButton-Sitzung teil und geben Sie Ihre Webcam frei.
  • Wenn Ihre Webcam angezeigt wird, können Sie überprüfen, ob FireFox Ihren TURN-Server verwendet, indem Sie eine neue Registerkarte öffnen und auswählen about:webrtc.
  • Klicken show detailsund Sie sehen eine Tabelle für ICE-Statistiken.
  • Die erfolgreiche Verbindung, die oben in der Tabelle angezeigt wird, sollte haben (relay-tcp)in der Spalte Lokaler Kandidat.
  • Dies bedeutet, dass die Videoverbindung erfolgreich über Ihren TURN-Server weitergeleitet wurde.
  • Wenn Sie jedoch beim Freigeben einer Webcam eine 1020 erhalten haben (Verbindung kann nicht hergestellt werden), kann der Browser möglicherweise keine Verbindung zum TURN-Server herstellen oder der TURN-Server wird nicht ordnungsgemäß ausgeführt oder konfiguriert.
  • Überprüfen Sie die Browserkonsole in FireFox.

Wenn du siehst

WebRTC: ICE failed, your TURN server appears to be broken, see about:webrtc for more details
  • Dann konnte FireFox nicht mit Ihrem TURN-Server kommunizieren oder Ihr TURN-Server wurde nicht ordnungsgemäß ausgeführt oder konfiguriert.
  • Um sicherzustellen, dass Ihre Firewall keine UDP-Verbindungen über Port 443 blockiert, öffnen Sie einen neuen Tad-Besuch unter https://test.bigbluebutton.org/ , starten Sie eine Testsitzung und versuchen Sie, Ihre Webcam freizugeben.
  • Der Browser kann möglicherweise keine Verbindung zum TURN-Server herstellen, oder der TURN-Server wird nicht ordnungsgemäß ausgeführt oder konfiguriert.
  • Der TURN-Server fungiert auch als STUN-Server, sodass Sie zunächst überprüfen können, ob der STUN-Teil mit dem funktioniert stunclient.
  • Führen Sie die folgenden Befehle aus und ersetzen Sie sie <youor-turn-server-host> mit dem Hostnamen Ihres TURN-Servers.
# apt install -y stuntman-client
stunclient --mode full --localport 30000 <your-turn-server-host> 3478

Bei Erfolg sollte die Ausgabe für angezeigt werden stunclient sollte ähnlich wie folgt sein.

Binding test: success
Local address: xxx.xxx.xxx.xxx:30000
Mapped address: xxx.xxx.xxx.xxx:30000
Behavior test: success
Nat behavior: Direct Mapping
Filtering test: success
Nat filtering: Endpoint Independent Filtering
  • Wenn Sie eine Fehlermeldung erhalten, überprüfen Sie dies coturn wird auf dem TURN-Server mit ausgeführt systemctl status coturn.service.
  • Überprüfen Sie die Protokolle, indem Sie dies tun tail -f /var/log/turnserver/coturn.log.
  • Sie können ausführliche Protokolle erhalten, indem Sie hinzufügen verbose zu /etc/turnserver.conf und Neustart des TURN-Servers systemctl restart coturn.service
  • Sie können Ihren TURN-Server mithilfe der testen Trickle-ICE- Seite.
  • Auf diese Weise erhalten Sie ein Protokoll der Relaiskandidaten, wenn diese von der ICE-Sammlung zurückgegeben werden.
  • Um auf dieser Seite zu testen, müssen Sie einige Testanmeldeinformationen generieren.
  • Führen Sie das folgende BASH-Skript aus und ersetzen Sie es <turn.example.com> mit dem Hostnamen Ihres TURN-Servers und <secret_value> mit dem Passwort für Ihren TURN-Server.
#!/bin/bash

HOST=<turn.example.com>
SECRET=<secret_value>

time=$(date +%s)
expiry=8400
username=$(( $time + $expiry ))

echo
echo "          https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/"
echo
echo      URI : turn:$HOST:443
echo username : $username 
echo password : $(echo -n $username | openssl dgst -binary -sha1 -hmac $SECRET | openssl base64)
echo
  • Geben Sie die Werte in URI, Benutzername und Passwort auf der Trickle ICE-Seite ein und klicken Sie auf "Kandidaten sammeln".
  • Sie sollten eine Liste der Staffelkandidaten sehen.
  • Wenn Sie dies nicht tun, überprüfen Sie erneut, ob Ihr TURN-Server ausgeführt wird, und beenden Sie die Protokolle, über die der TURN-Server protokolliert tail -f /var/log/turnserver/coturn.log oder journalctl -f -u coturn.service.

Sie können ausführliche Protokolle erhalten, indem Sie hinzufügen verbose zu /etc/turnserver.conf und dann den TURN-Server neu starten systemctl restart coturn.serviceund versuchen Sie es erneut mit FireFox oder der obigen Tricke ICE-Seite.

Seiten in der Kategorie „Coturn“

Diese Kategorie enthält nur die folgende Seite.