在ubuntu中进行Coturn设置

时间:2017-10-12 20:45:15

标签: ubuntu google-cloud-platform coturn

我正在尝试在Google Cloud Ubuntu实例中运行Coturn。

在新安装的VM中使用:sudo apt install coturn

我使用私钥创建了一个证书文件,并更新了/etc/turnserver.conf:

listening-port=3478
tls-listening-port=5349
listening-ip=10.128.0.2
relay-ip=10.128.0.2
external-ip=35.192.224.52/10.128.0.2
lt-cred-mech
userdb=/var/lib/turn/turndb
user=attitudemarketing:password
cert=cert.crt
pkey=private.key
no-stdout-log

一切似乎都在运行,但当我尝试涓涓冰时:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/它似乎无法正常工作

这是来自coturn的日志文件:

0: log file opened: /var/log/turn_1978_2017-10-12.log
0: pid file created: /var/run/turnserver.pid
0: IO method (main listener thread): epoll (with changelist)
0: Wait for relay ports initialization...
0:   relay 10.128.0.2 initialization...
0:   relay 10.128.0.2 initialization done
0:   relay ::1 initialization...
0:   relay ::1 initialization done
0: Relay ports initialization done
0: IO method (general relay thread): epoll (with changelist)
0: turn server id=1 created
0: IPv4. TCP listener opened on : 127.0.0.1:3478
0: IPv4. TCP listener opened on : 127.0.0.1:3479
0: IPv4. TCP listener opened on : 10.128.0.2:3478
0: IPv4. TCP listener opened on : 10.128.0.2:3479
0: IPv6. TCP listener opened on : ::1:3478
0: IPv6. TCP listener opened on : ::1:3479
0: IO method (general relay thread): epoll (with changelist)
0: turn server id=0 created
0: IPv4. TCP listener opened on : 127.0.0.1:3478
0: IPv4. TCP listener opened on : 127.0.0.1:3479
0: IPv4. TCP listener opened on : 10.128.0.2:3478
0: IPv4. TCP listener opened on : 10.128.0.2:3479
0: IPv6. TCP listener opened on : ::1:3478
0: IPv6. TCP listener opened on : ::1:3479
0: IPv4. UDP listener opened on: 127.0.0.1:3478
0: IPv4. UDP listener opened on: 127.0.0.1:3479
0: IPv4. UDP listener opened on: 10.128.0.2:3478
0: IPv4. UDP listener opened on: 10.128.0.2:3479
0: IPv6. UDP listener opened on: ::1:3478
0: IPv6. UDP listener opened on: ::1:3479
0: Total General servers: 2
0: IO method (auth thread): epoll (with changelist)
0: IO method (admin thread): epoll (with changelist)
0: IPv4. CLI listener opened on : 127.0.0.1:5766
0: IO method (auth thread): epoll (with changelist)
0: SQLite DB connection success: /var/lib/turn/turndb

我不确定它是否有效或是否因为它在Google云虚拟机内部而被屏蔽。

2 个答案:

答案 0 :(得分:2)

我最近在AWS Ubuntu EC2实例上设置了一个coturn服务器。 Google云端实例的流程应该相同。

首先,确保打开以下入站端口(TCP& UDP):

  • 3478和3479(标准侦听端口和备用侦听端口)
  • 5349和5350(标准tls-listening-port和替代tls-listening-port)
  • 49152 - 65535(标准继电器端口)

出于测试目的,在服务器可访问之前,id将以下内容添加到turnserver.conf:

no-tls
no-dtls
verbose

通常,您还需要在配置中添加fingerprint

有关这些的说明,请检查this。我现在还要从您的配置中删除cert=cert.crtpkey=private.key

此时,您应该能够从远程计算机访问您的服务器。测试此功能的最佳方法通常是访问远程计算机上的浏览器,然后转到" your-public-ip":3478。

如果服务器可以访问,您应该在浏览器中看到以下内容:

pic

如果没有,请尝试以下方法:

  • 从turnserver.conf中删除listen-ip,relay-ip,external-ip和listen-port并让coturn自行决定(这适用于AWS EC2)

  • 将侦听端口设置为80,将alt-listening-port设置为443并打开服务器上的端口。这将有助于防止非常严格的防火墙,但我不认为这应该是Google VM上的问题。

答案 1 :(得分:0)

对不起,我晚发布了,但是对于GCP使用而言,这是明确适用的。 Coturn几乎需要UDP的所有端口。 您需要打开外部GCP防火墙上的UDP端口。 与其他云不同,GCP需要手动添加防火墙规则以启用远程输入。

控制窗格> VM实例

找到您的VM,然后单击“ 查看网络详细信息”。

您将看到“ VPC网络”页面,然后进入“ 防火墙规则”, “ 添加防火墙规则”。

将“ 目标”设置为“ 所有实例”(或选择标记) 设置“ 协议和端口规则”并启用 UDP 端口。

这应该可以在Trickle ICE等工具上进行测试。