eturnal is a modern, straightforward STUN and TURN server with full IPv6 support. For TURN authentication, the mechanism described in the REST API for Access to TURN Services specification is implemented.
On Linux/x64 systems, you can install the binary release. On SUSE Linux Enterprise and openSUSE systems, distribution repositories can be used instead. On other platforms, eturnal is built from source.
On DEB-based Linux/x64 distributions, run:
$ curl -O https://eturnal.net/download/package/eturnal_1.4.5-1_amd64.deb
$ sudo dpkg -i eturnal_1.4.5-1_amd64.deb
On RPM-based Linux/x64 distributions, run:
$ curl -O https://eturnal.net/download/package/eturnal-1.4.5-1.x86_64.rpm
$ sudo rpm -i eturnal-1.4.5-1.x86_64.rpm
$ sudo systemctl daemon-reload
$ sudo systemctl --now enable eturnal
On other Linux/x64 systems, the binary release tarball can be installed as described in the reference documentation.
The eturnal server is configured by editing the /etc/eturnal.yml
file. This
file uses the (indentation-sensitive!) YAML format. A commented example
configuration is shipped with the eturnal server. However, for TURN relaying
to work, you'll have to specify the shared authentication secret
and
probably also the relay_ipv4_addr
option (which should be set to the server's
external IPv4 address). Then, either remove the enable_turn: false
lines
within the listen
section or remove the listen
section altogether. As an
example, a minimal configuration for offering STUN and TURN services on port
3478 (UDP and TCP) might look like this:
eturnal:
secret: "long-and-cryptic" # Shared secret, CHANGE THIS.
relay_ipv4_addr: "203.0.113.4" # The server's public IPv4 address.
relay_ipv6_addr: "2001:db8::4" # The server's public IPv6 address (optional).
On Linux systems, the eturnal server is usually invoked by systemd. For
non-systemd platforms, an example init script is shipped in the
etc/init.d
directory.
For controlling eturnal, the eturnalctl
command can be used; see:
$ eturnalctl help
If eturnal was started by systemd, log files are written into the
/var/log/eturnal
directory by default. In order to log to the journal
instead, the log_dir
option can be set to stdout
in the configuration file.
For a detailed description of eturnal's configuration options and the
eturnalctl
tool, see the reference documentation. For notable changes
between eturnal releases, see the change log.
Please use our issue tracker for bug reports and feature requests. Feel
free to (ab)use it for usage questions as well. If you happen to be using
XMPP, you could also join our public channel
[email protected]
.