Настройка Coturn в Ubuntu

Я пытаюсь запустить Coturn в экземпляре 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.


person William Lee    schedule 12.10.2017    source источник
comment
Я думаю, вам нужно открыть порты на брандмауэре. Попробуйте открыть порт 3478 и 5349 с помощью следующих инструкций.   -  person Kyle    schedule 13.10.2017


Ответы (2)


Недавно я установил сервер coturn на экземпляре AWS Ubuntu EC2. Процесс должен быть таким же для экземпляра Google Cloud.

Прежде всего, убедитесь, что открыты следующие входящие порты (TCP и UDP):

  • 3478 и 3479 (стандартный порт прослушивания и альтернативный порт прослушивания)
  • 5349 и 5350 (стандартный порт прослушивания tls и альтернативный порт прослушивания tls)
  • 49152-65535 (стандартные порты реле)

В целях тестирования, пока ваш сервер не станет доступным, добавьте в файл turnserver.conf следующее:

no-tls
no-dtls
verbose

В общем, вам также нужно добавить fingerprint в ваш config.

Чтобы узнать об этом, просмотрите это. Я бы также удалил cert=cert.crt и pkey=private.key из вашей конфигурации.

На этом этапе вы должны иметь доступ к своему серверу с удаленного компьютера. Лучший способ проверить это обычно - просто зайти в браузер на удаленном компьютере и перейти по адресу «your-public-ip»: 3478.

Если сервер доступен, вы должны увидеть в браузере следующее:

pic

Если нет, попробуйте следующее:

  • удалите listen-ip, relay-ip, external-ip и порт прослушивания из turnserver.conf и позвольте coturn решать самостоятельно (это работает для меня на AWS EC2)

  • установите для прослушивающего порта значение 80, а для альтернативного прослушивающего порта - 443 и откройте порты на своем сервере. Это поможет против очень строгих брандмауэров, но я не думаю, что это должно быть проблемой на виртуальной машине Google.

person marco56    schedule 22.11.2017

Извините за позднюю публикацию, но это работает явно для использования GCP. Coturn нужны почти все порты UDP. Вам необходимо включить UDP-порты на внешнем брандмауэре GCP. В отличие от других облаков, GCP необходимо вручную добавить правило брандмауэра для включения удаленного ввода.

Панель управления> Экземпляры ВМ

найдите свою виртуальную машину и нажмите "просмотреть сведения о сети".

Вы увидите страницу «Сеть VPC», затем выберите «Правила брандмауэра» и «Добавить правило брандмауэра».

Установите "Цели" на "Все экземпляры" (или теги по вашему выбору), установите "правило протоколов и портов" и включите UDP порты.

Это должно работать для тестирования таких инструментов, как Trickle ICE.

person Druid Virtual    schedule 29.10.2018