2

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

在新安装的虚拟机中使用: 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

一切似乎都在运行,但是当我尝试 Trickle Ice 时: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 云虚拟机内部而被阻止。

4

2 回答 2

5

我最近在 AWS Ubuntu EC2 实例上设置了一个 coturn 服务器。谷歌云实例的过程应该是相同的。

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

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

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

no-tls
no-dtls
verbose

通常,您还需要添加fingerprint到您的配置中。

有关这些的解释,请查看。我现在也会从你的配置中删除cert=cert.crt和删除。pkey=private.key

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

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

图片

如果没有,请尝试以下操作:

  • 从 turnserver.conf 中删除侦听 IP、中继 IP、外部 IP 和侦听端口,让 coturn 自行决定(这在 AWS EC2 上适用于我)

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

于 2017-11-22T09:44:35.857 回答
3

对不起,迟到的帖子,但这明确适用于 GCP 的使用。Coturn 几乎需要所有的 UDP 端口。您需要在外部 GCP 防火墙上打开 UDP 端口。与其他云不同,GCP 需要手动添加防火墙规则才能启用远程输入。

控制面板 > 虚拟机实例

找到您的虚拟机并单击“查看网络详细信息”。

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

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

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

于 2018-10-29T08:52:02.040 回答