4

我试图使用coturn部署一个简单的 TURN 服务器。当我在Trickle ICE ( turn:rtc.jackxujh.me:3478 [webrtc:mighty]) 上测试它时,Trickle ICE 说“身份验证失败?” . coturn服务器一直这个错误:

错误:check_stun_auth:找不到用户的凭据

Trickle ICE 显示身份验证失败。


这是turnserver.conf我正在使用的完整内容(通过取消注释coturn示例 conf 的行):

external-ip=39.108.74.114/XXX.XXX.XXX.XXX #(XXX is internal IP)
fingerprint
lt-cred-mech
use-auth-secret
static-auth-secret=XXXXXXXX... #(XXX is the secret)
realm=rtc.jackxujh.me
user=webrtc:0xXXXXXXXX... #(XXX is the key)
cert=/etc/letsencrypt/live/rtc.jackxujh.me/cert.pem
pkey=/etc/letsencrypt/live/rtc.jackxujh.me/privkey.pem
mobility

我在GitHub 上找到了相关的讨论,但我觉得最后没有解决方案。

事实上,我很困惑我的 conf 文件是否使用了 TURN REST API。

同时,我尝试通过 using检查turndb中是否有名为webrtc的用户,但输出什么也没有。(这个命令正确吗?)# turnadmin -l

4

1 回答 1

1

事实上,我很困惑我的 conf 文件是否使用了 TURN REST API。

我可以确认您使用 REST API,因为设置了 use-auth-secret

use-auth-secret

因此,您需要使用 unixtimestamp 作为用户名和散列密码。

user=timestamp:userid
password=base64(hmac(secret key, user)

阅读更多关于 Long-Term-Credential 和 REST 的区别:

https://www.ietf.org/proceedings/87/slides/slides-87-behave-10.pdf

如果您想使用普通用户名/密码,请使用 long-term-credential 所以删除 use-auth-secret

并静态设置或在数据库中设置

user=username1:key1

转管理员

turnadmin -l

列出静态和数据库用户。

因此,如果 REST 正确,则空列表。

于 2018-09-12T11:53:18.380 回答