@
asuraa #60 可以参考基于 Docker 的教程, 因为我的实例也基于 Docker.
https://hub.docker.com/r/coturn/coturn首先要确保整个网络环境具有公网 IPv4, 双栈公网 (公网 IPv4 + 公网 IP v6) 最佳.
如果在 Docker 中运行 coturn, 网络模式不建议使用桥接 (bridge), 因为对于 coturn 这种需要计划映射大量端口的容器, 桥接模式会导致容器启动非常慢, 可选模式为 host.
暴露到公网的操作期间 IP 地址与端口相关:
端口: 对外开放端口 3478 (TCP / UDP) / 5349 (TCP / UDP) / 49152 ~ 65535 (UDP);
IPv4: 如果 coturn 实例所处的机器 (或 coturn 的容器) 没有获取到公网 IP 地址, 那么需要上游的路由器或类似设备转发外部的流量到实例所处的机器 (或 coturn 的容器) 的上述端口;
IPv6: 确保该机器 (或 coturn 的容器) 能获取到公网 IP 地址 (类似 240* 开头的那种), 确保该机器的防火墙放行上述端口的入站流量.
可以额外为 coturn 实例的 IP 地址分配一个域名方便在各种场合调用.
--------
自用配置文件参考 (配置文件位于 /etc/turnserver.conf):
```
# 冗余的日志输出
verbose
# 启用认证
use-auth-secret
# 值为认证时使用的密钥
static-auth-secret=
# 数据库路径
userdb=/var/db/turndb
# 值为你给 coturn 实例分配的域名 (它可以不和你的域名完全一致, 但至少必须有)
realm=
# 证书公钥 (证书最好是带完整证书链 (fullchain) 的)
cert=/etc/cert.pem
# 证书私钥
pkey=/etc/pkey.pem
# 忽略所有 STUN 入站流量
no-stun
no-rfc5780
no-stun-backward-compatibility
response-origin-only-with-rfc5780
# 限定 TLS 版本 (以下几行会导致仅启用 TLS 1.3)
no-sslv2
no-sslv3
no-tlsv1
no-tlsv1_1
no-tlsv1_2
```