# Nextcloud Talk TURN-Server einrichten: Schritt-für-Schritt-Anleitung

Nextcloud Talk ermöglicht Audio- und Videoanrufe direkt innerhalb von Nextcloud. Innerhalb eines lokalen Netzwerks oder bei unkomplizierten Internetverbindungen funktioniert das häufig ohne zusätzliche Konfiguration. Befinden sich Teilnehmende jedoch hinter restriktiven Firewalls, Unternehmensnetzwerken oder bestimmten NAT-Konfigurationen, kann keine direkte Verbindung aufgebaut werden. In diesem Fall kommt ein TURN-Server zum Einsatz.

## Was ist ein Nextcloud TURN-Server?

Ein [TURN-Server](https://www.ionos.de/digitalguide/server/knowhow/turn-server/) fungiert als **Vermittlungsstelle**: Anstatt Audio- und Videodaten direkt zwischen den Gesprächsteilnehmenden auszutauschen, werden die Daten über den TURN-Server übertragen. [Nextcloud Talk](https://www.ionos.de/digitalguide/server/tools/nextcloud-talk/) versucht dabei grundsätzlich zunächst eine direkte Peer-to-Peer-Verbindung aufzubauen, nutzt bei Bedarf einen [STUN-Server](https://www.ionos.de/digitalguide/server/konfiguration/stun-server/) zur Ermittlung der öffentlichen Netzwerkadresse und greift erst dann auf TURN als Fallback zurück. Für eine zuverlässig erreichbare Talk-Installation empfiehlt sich daher insbesondere bei externen Nutzenden ein eigener TURN-Server.

## Voraussetzungen für einen Nextcloud Talk TURN-Server

Bevor Sie mit der Einrichtung beginnen, benötigen Sie eine funktionierende [Nextcloud-Installation](https://www.ionos.de/digitalguide/server/konfiguration/nextcloud-ubuntu-2204/) mit aktivierter Nextcloud-Talk-App. Nextcloud Talk setzt für WebRTC [HTTPS](https://www.ionos.de/digitalguide/hosting/hosting-technik/was-ist-https/) voraus. Ihre [Nextcloud](https://www.ionos.de/digitalguide/server/tools/was-ist-nextcloud/)-Instanz sollte daher bereits über ein gültiges [TLS](https://www.ionos.de/digitalguide/server/sicherheit/tls-transport-layer-security/)-Zertifikat erreichbar sein. Shared Hosting eignet sich für umfangreichere Talk-Installationen nur eingeschränkt, da Talk zusätzliche Serverlast erzeugt und Sie für einen eigenen TURN-Server insbesondere Zugriff auf Netzwerkports und einen dauerhaft laufenden Serverdienst benötigen.

Für die folgende Einrichtung benötigen Sie:

- eine Nextcloud-Installation mit aktiviertem Nextcloud Talk,
- Administratorrechte innerhalb von Nextcloud,
- einen Linux-Server, auf dem Sie Software installieren dürfen,
- SSH-Zugriff mit sudo- oder Root-Rechten,
- eine öffentliche IPv4-Adresse,
- eine [Domain](https://www.ionos.de/digitalguide/domains/domaintipps/was-ist-eine-domain/) bzw. [Subdomain](https://www.ionos.de/digitalguide/domains/domainverwaltung/was-ist-eine-subdomain/),
- Zugriff auf die [DNS](https://www.ionos.de/digitalguide/server/knowhow/domain-name-system/)-Einstellungen dieser Domain,
- eine Firewall, bei der Sie [TCP](https://www.ionos.de/digitalguide/server/knowhow/tcp-vorgestellt/)- und [UDP](https://www.ionos.de/digitalguide/server/knowhow/udp-user-datagram-protocol/)-Ports freigeben können.

Als Betriebssystem eignet sich beispielsweise [Ubuntu Server](https://www.ionos.de/digitalguide/server/konfiguration/ubuntu-server/) 26.04 LTS. Auch Ubuntu 24.04 LTS oder aktuelle Debian-Versionen können verwendet werden. Für diese Anleitung wird beispielhaft davon ausgegangen, dass der TURN-Server unter *turn.example.com* erreichbar sein soll. Ersetzen Sie diese Adresse in sämtlichen Befehlen durch Ihre eigene Domain.

## VPS oder Dedicated Server: Welcher Server eignet sich für Nextcloud Talk TURN?

Für einen TURN-Server ist **nicht allein die Rechenleistung** entscheidend. Besonders wichtig ist die Netzwerkanbindung, denn TURN leitet Audio- und Videodaten zwischen den Gesprächsteilnehmenden weiter. Wird TURN tatsächlich benötigt, laufen die übertragenen Mediendaten daher durch den Server.

Ein kleiner oder mittelgroßer [VPS](https://www.ionos.de/digitalguide/server/knowhow/was-ist-ein-virtual-private-server-vps/) ist für private Installationen, kleine Unternehmen und Teams mit wenigen gleichzeitig aktiven Talk-Verbindungen in der Regel eine sinnvolle Ausgangsbasis. Für einen ausschließlich als TURN-Server genutzten VPS sind beispielsweise zwei virtuelle CPU-Kerne und einige Gigabyte Arbeitsspeicher häufig ausreichend. Wichtiger sind eine stabile Anbindung, eine öffentliche IP-Adresse und ein ausreichend großes Traffic-Kontingent.

Bei regelmäßig stattfindenden Videokonferenzen mit vielen gleichzeitig aktiven Nutzerinnen und Nutzern gewinnt dagegen die verfügbare Netzwerkbandbreite zunehmend an Bedeutung. Für größere Installationen kann daher ein leistungsfähiger VPS beziehungsweise [Cloud Server](https://www.ionos.de/digitalguide/server/knowhow/was-ist-ein-cloud-server/) oder ein [Dedicated Server](https://www.ionos.de/digitalguide/server/knowhow/was-ist-ein-dedizierter-server/) sinnvoll sein. Nextcloud empfiehlt bei größeren Deployments ausdrücklich, den TURN-Server auf einer eigenen Maschine zu betreiben, die direkt aus dem Internet erreichbar ist.

<table>
  <thead>
    <tr>
      <th><strong>Einsatzszenario</strong></th>
      <th><strong>Geeigneter Server</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Private Nextcloud, Familie, kleines Team, gelegentliche Talk-Anrufe</td>
      <td>kleiner bis mittlerer VPS</td>
    </tr>
    <tr>
      <td>Unternehmen mit regelmäßigen Videoanrufen und mehreren parallelen Gesprächen</td>
      <td>leistungsfähiger VPS bzw. Cloud Server</td>
    </tr>
    <tr>
      <td>Viele parallele Verbindungen und hoher TURN-Traffic</td>
      <td>großer VPS oder Dedicated Server</td>
    </tr>
    <tr>
      <td>Große Talk-Installation mit High Performance Backend</td>
      <td>separater TURN-Server bzw. separate öffentliche IP empfohlen</td>
    </tr>
  </tbody>
</table>

Ein eigener VPS nur für TURN hat noch einen weiteren Vorteil: Nextcloud empfiehlt für eine möglichst hohe Kompatibilität Port 443 für den TURN-Dienst. Auf einem Server, auf dem bereits Nextcloud mit Apache oder NGINX läuft, ist TCP-Port 443 normalerweise bereits für HTTPS belegt. Auf einem separaten TURN-Server steht der Port dagegen **ohne Konflikte zur Verfügung**.

Hinweis Ein TURN-Server ersetzt nicht das Nextcloud Talk High Performance Backend (HPB). TURN löst in erster Linie Verbindungsprobleme durch [NAT](https://www.ionos.de/digitalguide/server/knowhow/nat-so-funktioniert-die-netzwerkadressuebersetzung/) und [Firewalls](https://www.ionos.de/digitalguide/server/sicherheit/was-ist-eine-firewall/). Das HPB übernimmt unter anderem Signalisierung und Medienverteilung für größere Talk-Installationen. Für größere Gruppengespräche mit mehr als 5 bis 10 Personen kann zusätzlich das High Performance Backend erforderlich sein.

## Schritt 1: Subdomain für den TURN-Server einrichten

Zunächst benötigt Ihr Server einen eindeutigen Hostnamen. Legen Sie bei Ihrem DNS-Anbieter beispielsweise folgenden [A-Record](https://www.ionos.de/digitalguide/hosting/hosting-technik/a-record/) an:

```bash
turn.example.com → 203.0.113.10
```

Dabei steht 203.0.113.10 stellvertretend für die öffentliche IPv4-Adresse Ihres Servers. Besitzt Ihr Server eine funktionierende öffentliche IPv6-Adresse, können Sie zusätzlich einen AAAA-Record einrichten. Verwenden Sie einen AAAA-Eintrag jedoch nur dann, wenn IPv6 auf dem TURN-Server tatsächlich vollständig konfiguriert und erreichbar ist.

Nach der DNS-Änderung kann es einige Zeit dauern, bis der neue Eintrag weltweit verfügbar ist. Prüfen können Sie die Auflösung beispielsweise mit `dig turn.example.com` oder `nslookup turn.example.com`. Wenn Sie zusätzlich einen AAAA-Eintrag eingerichtet haben, prüfen Sie diesen mit `dig AAAA turn.example.com`.

Die ausgegebene [IP-Adressen](https://www.ionos.de/digitalguide/server/knowhow/was-ist-eine-ip-adresse/) (IPv4 und ggf. IPv6) sollten mit den öffentlichen Adressen Ihres Servers übereinstimmen.

## Schritt 2: Mit dem Server verbinden und System aktualisieren

Stellen Sie nun per [SSH](https://www.ionos.de/digitalguide/server/tools/secure-shell-ssh/) eine Verbindung zu Ihrem TURN-Server her:

```bash
ssh benutzer@turn.example.com
```

Aktualisieren Sie anschließend zunächst die Paketlisten und installieren Sie verfügbare Updates:

```bash
sudo apt update
sudo apt upgrade -y
```

Dadurch stellen Sie sicher, dass Sie mit einem aktuellen System starten.

## Schritt 3: coturn installieren

Als TURN-Software verwenden wir coturn. Die Software ist als Paket für Ubuntu und Debian verfügbar. Installieren Sie coturn zunächst über die Paketverwaltung:

```bash
sudo apt install coturn -y
```

Anschließend können Sie überprüfen, welche Version installiert wurde:

```bash
dpkg -s coturn | grep Version
```

Die Nextcloud-Dokumentation nennt coturn 4.5.0.8 als absolutes Minimum. Für eine neue Installation sollten Sie aus Sicherheitsgründen **eine möglichst aktuelle coturn-Version** verwenden.

Hinweis Die Installation über `apt` liefert die von Ubuntu bereitgestellte Paketversion von coturn. Diese ist offiziell für die jeweilige Ubuntu-Version gepflegt, kann jedoch deutlich älter sein als die aktuelle Upstream-Version des coturn-Projekts. Prüfen Sie deshalb nach der Installation, welche Version tatsächlich installiert wurde. Benötigen Sie eine neuere coturn-Version, kommen alternativ beispielsweise ein geeignetes PPA, ein Container-Image oder eine manuelle Installation aus dem Quellcode infrage. Für produktive Systeme sollten Sie dabei ausschließlich vertrauenswürdige Quellen verwenden und auf eine regelmäßige Aktualisierung achten.

Prüfen Sie außerdem, ob systemd den Dienst kennt:

```bash
systemctl status coturn
```

Bei aktuellen Debian- und Ubuntu-Systemen wird coturn über eine systemd-Unit verwaltet.

## Schritt 4: Sicheres TURN-Secret erstellen

Nextcloud Talk und coturn müssen später ein **gemeinsames Secret** kennen. Dieses Secret dient dazu, temporäre Zugangsdaten für den TURN-Server zu erzeugen. Erstellen Sie dazu einen zufälligen Wert mit `openssl rand -hex 32`. Sie erhalten beispielsweise eine Ausgabe wie:

```none
8c6e8a2a79bd6507e7a5274bc5779ec3a5f6c1f45dbcf420c1a824cd94a25112
```

Kopieren Sie den erzeugten Wert und bewahren Sie ihn sicher auf. Sie benötigen ihn später sowohl in der coturn-Konfiguration als auch in den Talk-Einstellungen Ihrer Nextcloud-Instanz als [sicheres Passwort](https://www.ionos.de/digitalguide/server/sicherheit/sensible-daten-durch-ein-sicheres-passwort-schuetzen/). Verwenden Sie für eine Produktivumgebung **keinen** einfachen Zugangscode.

## Schritt 5: TLS-Zertifikat für TURN einrichten

Für eine möglichst hohe Kompatibilität ist es ratsam, TURN auf Port 443 anzubieten und sowohl normale TURN-Verbindungen als auch verschlüsselte `turns:`-Verbindungen zu ermöglichen. Das hilft insbesondere bei Clients in restriktiven Netzwerken, die nur Verbindungen über Port 443 zulassen. Für `turns:` benötigt coturn ein TLS-Zertifikat. Dieses können Sie beispielsweise kostenlos über Let’s Encrypt beziehen.

Bei einem ausschließlich für TURN vorgesehenen Ubuntu-Server können Sie Certbot über Snap installieren:

```bash
sudo snap install --classic certbot
```

Falls der Befehl `certbot` anschließend noch nicht direkt verfügbar ist, erstellen Sie den entsprechenden Link:

```bash
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
```

Öffnen Sie für die Zertifikatsausstellung zunächst TCP-Port 80:

```bash
sudo ufw allow 80/tcp
```

Fordern Sie danach das Zertifikat an:

```bash
sudo certbot certonly --standalone -d turn.example.com
```

Der Standalone-Modus startet vorübergehend einen eigenen Webserver für die Domainvalidierung. Für die HTTP-01-Challenge muss Ihr Server deshalb über Port 80 aus dem Internet erreichbar sein. Nach erfolgreicher Ausstellung befinden sich Zertifikat und privater Schlüssel typischerweise unter:

```none
/etc/letsencrypt/live/turn.example.com/fullchain.pem
/etc/letsencrypt/live/turn.example.com/privkey.pem
```

Certbot richtet normalerweise auch die automatische Verlängerung des Zertifikats ein. Die Funktion können Sie mit folgendem Befehl testen:

```bash
sudo certbot renew --dry-run
```

## Schritt 6: Port 443 für coturn verfügbar machen

Portnummern unterhalb von 1024 gelten unter Linux als **privilegierte Ports**. coturn wird auf aktuellen Distributionen häufig unter einem unprivilegierten User ausgeführt und kann deshalb nicht automatisch Port 443 öffnen. Linux Capabilities sind dafür eine Lösung. Geben Sie dem Programm gezielt die Berechtigung zum Binden privilegierter Ports:

```bash
sudo setcap cap_net_bind_service=+ep /usr/bin/turnserver
```

Damit erhält `turnserver` nicht sämtliche Root-Rechte, sondern lediglich die Fähigkeit, beispielsweise Port 443 zu öffnen. Beachten Sie, dass ein Paketupdate die gesetzte Capability unter Umständen entfernen kann. Sollte coturn nach einem Update plötzlich nicht mehr auf Port 443 starten, prüfen Sie die Einstellung mit:

```bash
getcap /usr/bin/turnserver
```

## Schritt 7: Zertifikat für den coturn-Dienst zugänglich machen

Der private Schlüssel von Let’s Encrypt ist aus Sicherheitsgründen normalerweise nur für Root lesbar. Der coturn-Prozess benötigt jedoch Zugriff darauf. Prüfen Sie zunächst, ob der Benutzer `turnserver` vorhanden ist:

```bash
getent passwd turnserver
```

Erstellen Sie anschließend ein geschütztes Verzeichnis für die von coturn verwendeten Zertifikatskopien:

```bash
sudo install -d -m 750 -o root -g turnserver /etc/coturn
```

Kopieren Sie Zertifikat und Schlüssel:

```bash
sudo install -m 640 -o root -g turnserver \
/etc/letsencrypt/live/turn.example.com/fullchain.pem \
/etc/coturn/fullchain.pem
sudo install -m 640 -o root -g turnserver \
/etc/letsencrypt/live/turn.example.com/privkey.pem \
/etc/coturn/privkey.pem
```

Falls Ihre Distribution einen anderen User für den coturn-Dienst verwendet, müssen Sie `turnserver` entsprechend ersetzen.

Da Let’s Encrypt die Originaldateien bei einer Zertifikatsverlängerung aktualisiert, sollten Sie die Kopien anschließend ebenfalls aktualisieren und coturn neu starten. Dazu können Sie einen Certbot-Deploy-Hook anlegen. Erstellen Sie die Datei:

```bash
sudo nano /etc/letsencrypt/renewal-hooks/deploy/coturn.sh
```

Fügen Sie Folgendes ein:

```txt
#!/bin/sh
install -m 640 -o root -g turnserver \
/etc/letsencrypt/live/turn.example.com/fullchain.pem \
/etc/coturn/fullchain.pem
install -m 640 -o root -g turnserver \
/etc/letsencrypt/live/turn.example.com/privkey.pem \
/etc/coturn/privkey.pem
systemctl restart coturn
```

Machen Sie das Skript ausführbar:

```bash
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/coturn.sh
```

Damit wird coturn nach einer erfolgreichen Zertifikatserneuerung automatisch mit den neuen Zertifikatsdateien gestartet.

## Schritt 8: coturn für Nextcloud Talk konfigurieren

Die zentrale coturn-Konfigurationsdatei befindet sich bei Ubuntu und Debian normalerweise unter `/etc/turnserver.conf`. Sichern Sie zunächst die vorhandene Datei:

```bash
sudo cp /etc/turnserver.conf /etc/turnserver.conf.bak
```

Öffnen Sie sie anschließend:

```bash
sudo nano /etc/turnserver.conf
```

Für eine typische Nextcloud-Talk-Installation können Sie folgende grundlegende Konfiguration verwenden:

```txt
listening-port=443
fingerprint
use-auth-secret
static-auth-secret=IHR_GENERIERTES_SECRET
realm=turn.example.com
cert=/etc/coturn/fullchain.pem
pkey=/etc/coturn/privkey.pem
stale-nonce
no-multicast-peers
total-quota=0
bps-capacity=0
min-port=49152
max-port=65535
```

Ersetzen Sie IHR\_GENERIERTES\_SECRET durch das Secret aus Schritt 4 und turn.example.com durch Ihre TURN-Domain. Die wichtigsten Optionen haben folgende Bedeutung:

- `listening-port=443` legt fest, über welchen Port Clients den TURN-Server erreichen.
- `fingerprint` ergänzt TURN-Nachrichten um einen Fingerprint.
- `use-auth-secret` aktiviert die von Nextcloud Talk verwendete Authentifizierung über ein gemeinsames Secret.
- `static-auth-secret` enthält dieses gemeinsame Secret.
- `realm` bezeichnet die Authentifizierungsdomäne des Servers.
- `cert` und `pkey` geben TLS-Zertifikat und privaten Schlüssel an.
- `stale-nonce` begrenzt die Lebensdauer von Authentifizierungs-Nonces.
- `no-multicast-peers` verhindert das Weiterleiten von TURN-Verbindungen an Multicast-Adressen.
- `min-port` und `max-port` legen den Bereich für die eigentlichen Relay-Verbindungen fest.

coturn verwendet standardmäßig die UDP-Ports 49152 bis 65535 für Relay-Endpunkte. Dieser Bereich muss deshalb bei einer klassischen coturn-Konfiguration ebenfalls in der Firewall berücksichtigt werden. coturn kann TLS-Verbindungen auch auf dem normalen Listening-Port erkennen, sofern TLS in der Konfiguration aktiviert ist. Dadurch lassen sich `turn:` und `turns:` gemeinsam über Port 443 anbieten.

## Schritt 9: TURN-Server gegen Zugriffe auf interne Netze absichern

Ein TURN-Server sollte **nicht als Umweg** genutzt werden können, um auf interne Dienste Ihres Servers oder Netzwerks zuzugreifen. Hat der TURN-Server Zugang zu privaten Netzen, empfiehlt es sich daher, entsprechende Zielbereiche explizit zu sperren. Sie können unter anderem folgende Einträge ergänzen:

- denied-peer-ip=0.0.0.0-0.255.255.255
- denied-peer-ip=10.0.0.0-10.255.255.255
- denied-peer-ip=100.64.0.0-100.127.255.255
- denied-peer-ip=127.0.0.0-127.255.255.255
- denied-peer-ip=169.254.0.0-169.254.255.255
- denied-peer-ip=172.16.0.0-172.31.255.255
- denied-peer-ip=192.0.0.0-192.0.0.255
- denied-peer-ip=192.0.2.0-192.0.2.255
- denied-peer-ip=192.88.99.0-192.88.99.255
- denied-peer-ip=192.168.0.0-192.168.255.255
- denied-peer-ip=198.18.0.0-198.19.255.255
- denied-peer-ip=198.51.100.0-198.51.100.255
- denied-peer-ip=203.0.113.0-203.0.113.255
- denied-peer-ip=240.0.0.0-255.255.255.255

Wenn der TURN-Server auch IPv6 verwendet, sperren Sie zusätzlich interne IPv6-Zieladressen. Für Unique-Local-Adressen (fc00::/7) und Link-Local-Adressen (fe80::/10) können Sie folgende Einträge ergänzen:

- denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
- denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff

Prüfen Sie außerdem, ob weitere IPv6-Adressen Ihrer eigenen Infrastruktur vom TURN-Server aus erreichbar sind, und sperren Sie diese bei Bedarf gezielt.

Hinweis Befindet sich beispielsweise das Talk High Performance Backend in einem privaten Netzwerk und muss vom TURN-Server erreichbar sein, dürfen Sie dessen Adresse nicht einfach blockieren. In diesem Fall können Sie die benötigte IP gezielt über `allowed-peer-ip` freigeben oder die Netzwerkregeln entsprechend an Ihre Architektur anpassen.

## Schritt 10: Öffentliche IP-Adresse bei NAT eintragen

Ein klassischer VPS besitzt häufig direkt eine öffentliche IP-Adresse. Das ist für coturn die einfachste Konfiguration. Befindet sich der Server dagegen hinter NAT, muss coturn wissen, welche öffentliche Adresse zu seiner internen Adresse gehört. In einem einfachen Szenario können Sie beispielsweise `external-ip=203.0.113.10` ergänzen. Bei einer expliziten Zuordnung von öffentlicher und privater Adresse ist auch folgende Form möglich: `external-ip=203.0.113.10/10.0.0.10`.

Dabei ist die erste Adresse die öffentliche und die zweite die interne IP-Adresse. coturn verwendet diese Zuordnung, damit Clients die korrekte öffentliche Relay-Adresse erhalten. Die entsprechenden Ports müssen vom NAT ohne Veränderung an den TURN-Server weitergeleitet werden. Setzen Sie `external-ip` jedoch nicht vorsorglich. Eine falsche Adresse kann dazu führen, dass TURN zwar erreichbar erscheint, die weitergeleiteten Medienverbindungen aber nicht funktionieren.

## Schritt 11: Firewall konfigurieren

Nun müssen die benötigten Ports auf dem Server freigegeben werden. Stellen Sie zunächst sicher, dass SSH weiterhin erlaubt ist:

```bash
sudo ufw allow OpenSSH
```

Erlauben Sie anschließend TURN über TCP und UDP auf Port 443:

```bash
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
```

Öffnen Sie zusätzlich den UDP-Relay-Bereich:

```bash
sudo ufw allow 49152:65535/udp
```

Falls Sie Certbot per HTTP-01 verwenden, lassen Sie außerdem Port 80 für die Zertifikatsverlängerung erreichbar:

```bash
sudo ufw allow 80/tcp
```

Falls UFW noch nicht aktiviert ist, können Sie den Status zunächst prüfen:

```bash
sudo ufw status
```

Aktivieren Sie die Firewall erst, nachdem Sie sichergestellt haben, dass SSH freigegeben ist:

```bash
sudo ufw enable
```

Verwendet Ihr Hosting-Anbieter zusätzlich eine externe Cloud-Firewall, müssen Sie die entsprechenden Regeln auch dort einrichten. Eine Freigabe ausschließlich innerhalb von UFW reicht dann nicht aus.

## Schritt 12: coturn starten

Starten Sie den Dienst nun mit `sudo systemctl restart coturn` neu und aktivieren Sie ihn außerdem für zukünftige Neustarts mit `sudo systemctl enable coturn`.

Prüfen Sie anschließend den Status:

```bash
sudo systemctl status coturn --no-pager
```

Wenn Sie `active (running)` sehen, läuft der TURN-Dienst. Mit folgendem Befehl können Sie zusätzlich kontrollieren, ob Port 443 geöffnet wurde:

```bash
sudo ss -lntup | grep ':443'
```

Sie sollten Einträge für `turnserver` erkennen.

## Schritt 13: TURN-Server in Nextcloud Talk hinterlegen

Nachdem der TURN-Server funktioniert, müssen Sie Nextcloud Talk mitteilen, wie er erreichbar ist. Melden Sie sich als Administrator in Ihrer Nextcloud-Instanz an und öffnen Sie die **Administrationseinstellungen**. Wechseln Sie anschließend zum Bereich Talk und tragen Sie als TURN-Server ein:

```none
turn.example.com:443
```

Wichtig ist, dass Sie an dieser Stelle **kein** https://, `turn:` oder `turns:` vor die Adresse schreiben. Nextcloud erwartet im Serverfeld lediglich Hostname und Port. Das verwendete TURN-Schema wird separat ausgewählt. Als TURN-Secret tragen Sie exakt denselben Wert ein, den Sie zuvor bei `static-auth-secret=` in `/etc/turnserver.conf` hinterlegt haben. Wählen Sie außerdem:

- UDP und TCP
- die Option, die sowohl `turn:` als auch `turns:` verwendet

## Schritt 14: TURN-Server testen

Eine laufende coturn-Instanz bedeutet noch nicht automatisch, dass sie aus dem Internet korrekt erreichbar und von Talk verwendbar ist. Deshalb sollten Sie die Einrichtung anschließend testen. Führen Sie den Test nach Möglichkeit **nicht auf dem TURN-Server selbst**, sondern auf einem anderen Rechner mit einer anderen Internetverbindung durch. Auf einem Ubuntu-System können Sie zunächst die coturn-Werkzeuge installieren:

```bash
sudo apt install coturn
```

Danach lässt sich der TURN-Server mit dem von Nextcloud dokumentierten Testwerkzeug aufrufen:

```bash
turnutils_uclient -p 443 -W IHR_GENERIERTES_SECRET -v -y turn.example.com
turnutils_uclient -t -p 443 -W IHR_GENERIERTES_SECRET -v -y turn.example.com
turnutils_uclient -t -S -p 443 -W IHR_GENERIERTES_SECRET -v -y turn.example.com
```

Ein erfolgreicher Test zeigt zunächst, dass der TURN-Dienst grundsätzlich von außen erreichbar ist. Er belegt jedoch noch nicht, dass Nextcloud Talk den TURN-Server tatsächlich für die Medienübertragung verwenden kann. Für einen aussagekräftigen Funktionstest können Sie Nextcloud Talk deshalb dazu zwingen, **ausschließlich Relay-Verbindungen über TURN** zu verwenden. Treten Sie dazu zunächst einem Talk-Anruf bei, öffnen Sie die Entwicklerkonsole Ihres Browsers und führen Sie folgenden Befehl aus:

```bash
OCA.Talk.SimpleWebRTC.webrtc.config.peerConnectionConfig.iceTransportPolicy = 'relay'
```

Verlassen Sie anschließend den Anruf und treten Sie ihm erneut bei. Funktionieren Audio und Video weiterhin, kann Talk den TURN-Server für die Medienübertragung verwenden. Testen Sie dies nach Möglichkeit mit zwei Geräten in unterschiedlichen Netzwerken.

## Fazit: Ein eigener TURN-Server erhöht die Zuverlässigkeit von Nextcloud Talk

Nextcloud Talk kann viele Verbindungen ohne eigenen TURN-Server aufbauen. Sobald die Anwendung jedoch regelmäßig über unterschiedliche Netzwerke, Mobilfunkverbindungen, Unternehmensfirewalls oder komplexe NAT-Umgebungen genutzt wird, **verbessert ein eigener TURN-Server die Zuverlässigkeit** deutlich.

Für kleinere und mittlere Installationen ist ein separater VPS in vielen Fällen die sinnvollste Lösung. Er lässt sich unabhängig von der eigentlichen Nextcloud-Installation verwalten und ermöglicht es, coturn auf dem von Nextcloud empfohlenen Port 443 zu betreiben. Bei größeren Installationen mit vielen gleichzeitig aktiven Gesprächen sollte dagegen insbesondere die verfügbare Netzwerkbandbreite berücksichtigt werden. Hier kann ein leistungsfähiger VPS oder Dedicated Server sinnvoll sein.


This is a markdown version of: [https://www.ionos.de/digitalguide/server/konfiguration/nextcloud-talk-turn-server/](https://www.ionos.de/digitalguide/server/konfiguration/nextcloud-talk-turn-server/) for AI/LLM consumption.