Перейти к содержанию

Собственный прокси-сервер для подключений

Когда технический специалист подключается к удалённому устройству, система пытается установить прямое P2P-соединение между сторонами с помощью протокола WebRTC. Однако из-за сетевых ограничений на одной из сторон прямое соединение не всегда возможно. В таких случаях система использует прокси-серверы, чтобы обеспечить надёжное подключение технического специалиста к удалённому устройству.

Файловый менеджер

Прокси-серверы также активно используются в режиме передачи файлов. Подробнее о файловом менеджере читайте в отдельном руководстве.

Типы прокси-серверов

Стандартные

SaaS-версия нашей системы использует несколько прокси-серверов, распределённых по различным регионам. Это позволяет обеспечить более низкую задержку и более быструю передачу видеотрафика и файлов от приложения Агент на удалённом устройстве к браузеру технического специалиста. Однако, несмотря на географическое распределение, ресурсы этих серверов ограничены и могут быть перегружены в зависимости от активности пользователей.

Пользовательские

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

Как работает прокси-сервер

Прокси-сервер выступает посредником между приложением Агент на удалённом устройстве и браузером Техника. При установлении удалённой сессии приложение Агент подключается к прокси-серверу и передаёт ему медиаданные или файлы. Одновременно браузер Техника также подключается к этому же прокси-серверу и получает данные, отправленные приложением Агент. Таким образом, прокси-сервер обеспечивает передачу данных между участниками соединения.

Чтобы приложение Агент и браузер могли подключаться к прокси-серверу, поддерживаются два канала:

  • WebRTC — в этом режиме прокси запускает стандартный TURN-сервер в рамках протокола WebRTC.
  • WebSocket — в этом режиме прокси запускает веб-сервер, доступный по протоколу HTTPS.

Техник выбирает используемый канал в настройках карточки устройства или в панели подключения. Если в пользовательском прокси настроен только один канал, выбора у специалиста не будет.

Канал передачи данных

Подробнее о каналах передачи данных читайте в руководствах Качество изображения экрана и Функции управления экраном.

Настройка пользовательского прокси-сервера

Установка Шлюза

Для развёртывания собственного прокси-сервера необходимо использовать приложение Шлюз. Оно имеет специальный режим работы, позволяющий использовать его в качестве прокси-сервера.

Скачать и установите приложение Шлюз на выделенный виртуальный сервер, который будет использоваться в качестве вашего персонального прокси-сервера. Выбирайте сервер с максимально хорошими сетевыми условиями для связи как с удалённым устройством, так и с устройством технического специалиста.

./gateway -install

Руководство по установке Шлюза

Подробнее о процессе установки читайте в руководстве Что такое приложение Шлюз?.

Системные требования

Для прокси-сервера рекомендуется использовать следующие минимальные системные требования:

  • Оперативная память: 2 ГБ
  • Процессор: 2 ядра
  • Диск: 16 ГБ
  • Пропускная способность канала: до 100 Мбит/с
Требования к сети для канала WebRTC

Статический IP-адрес для сервера не требуется, однако сервер должен быть доступен по IP-адресу для остальных участников сети: основного сервера, браузера технического специалиста и приложения Агент. Также потребуется открыть порты для входящих и исходящих TCP- и UDP-подключений. Подробнее см. в разделе ниже.

Требования к сети для канала WebSocket

Для сервера потребуется статический IP-адрес, доменное имя, SSL-сертификат и открытый порт 443 для входящих TCP-подключений. Подробнее см. в разделе ниже.

Настройка Шлюза

Привязка Шлюза к учётной записи

После установки приложения Шлюза на выделенный виртуальный сервер необходимо привязать его к вашей учётной записи на основном сервере Connect.

Для этого откройте личный кабинет, перейдите в раздел Настройки, затем на страницу Шлюзы. Создайте новый профиль шлюза с любым удобным названием. После создания откройте карточку шлюза и скачайте файл config.json на вкладке Установка и запуск.

Этот файл уже содержит все необходимые данные. Разместите его на выделенном сервере рядом с исполняемым файлом gateway. Ниже приведён пример и описание параметров, используемых для подключения к серверу:

Параметр Тип Описание
server.host string Адрес сервера. По умолчанию: pro32connect.ru
server.token string Токен авторизации
server.secure boolean Подключаться только к серверам с действительным SSL-сертификатом. По умолчанию: true
Пример файла конфигурации
{
  "server": {
    "host": "pro32connect.ru",
    "token": "3wHcXGzc4KVMCJgxjX7sw5j6UO...",
    "secure": true
  }
}

После этого запустите Шлюз следующей командой:

./gateway -start

После запуска Шлюз в журнале приложения должна появиться строка, похожая на приведённую ниже. Это означает, что Шлюз успешно подключился к серверу Connect:

13:51:55.731  INFO    Signaling       connected to signaling server pro32connect.ru

Настройка канала WebRTC для прокси-сервера

Чтобы включить канал WebRTC на прокси-сервере, откройте профиль Шлюз в личном кабинете, перейдите на вкладку Проксирование подключений и включите опцию Разрешить WebRTC-канал:

Если вы хотите настроить параметры TURN-сервера, можно указать дополнительные параметры в разделе proxy.webrtc файла config.json.

Все доступные параметры приведены в таблице ниже:

Параметр Тип Описание
proxy.webrtc.public_ip string Публичный IP-адрес
proxy.webrtc.listen_ip string Внутренний IP-адрес для прослушивания входящих подключений
proxy.webrtc.port number Порт для прослушивания входящих TCP-подключений. По умолчанию: 3478.
proxy.webrtc.udp_ports_max number Максимальный порт диапазона для прослушивания входящих UDP-подключений. По умолчанию: 60000
proxy.webrtc.udp_ports_min number Минимальный порт диапазона для прослушивания входящих UDP-подключений. По умолчанию: 40000
Пример
{
  "proxy": {
    "webrtc": {
      "public_ip": "158.160.25.25",
      "listen_ip": "0.0.0.0",
      "port": 3478,
      "udp_ports_max": 60000,
      "udp_ports_min": 40000
    }
  }
}

Перезапуск Шлюза

Чтобы применить настройки, перезапустите Шлюз:

./gateway -stop
./gateway -start

Настройка канала WebSocket для прокси-сервера

Чтобы включить канал WebSocket на прокси-сервере, откройте профиль Шлюза в личном кабинете, перейдите на вкладку Проксирование подключений и включите опцию Разрешить WebSocket-канал:

Затем в файле config.json укажите доменное имя, по которому будет доступен ваш прокси-веб-сервер, в параметре proxy.websocket.host.

При необходимости вы также можете настроить дополнительные параметры из таблицы ниже:

Параметр Тип Описание
proxy.websocket.host string Доменное имя, по которому будет доступен Шлюз и для которого выпущен SSL-сертификат
proxy.websocket.listen_ip string IP-адрес для прослушивания входящих подключений. По умолчанию: 0.0.0.0
proxy.websocket.port number Порт для прослушивания входящих подключений. По умолчанию: 443
Пример
{
  "proxy": {
    "websocket": {
      "host": "proxy.example.com",
      "listen_ip": "0.0.0.0",
      "port": 443
    }
  }
}

Доменное имя

Необходимо создать запись типа A в DNS-настройках вашего регистратора домена, указав в качестве значения публичный IP-адрес сервера. Для удобства можно использовать поддомен.

После этого выпустите SSL-сертификат для выбранного доменного имени и поместите файлы сертификата и закрытого ключа в каталог cert, расположенный рядом с файлом config.json. Файлы должны иметь имена server.crt и server.key.

SSL-сертификат

Вы можете выпустить сертификат с помощью бесплатного центра сертификации Let’s Encrypt .

Если всё настроено правильно, при открытии корневой страницы вашего доменного имени по HTTPS вы увидите сообщение:

Gateway is running.

Принудительное использование

По умолчанию настроенные пользовательские прокси-серверы не гарантированно используются для всех ваших подключений. Они добавляются как дополнительный вариант к существующим общим стандартным прокси-серверам, но только для вашей учётной записи. Если система определит, что ваш пользовательский прокси-сервер является оптимальным вариантом, будет использован именно он. В противном случае будет выбран общий стандартный прокси-сервер.

Чтобы система использовала только ваши пользовательские прокси-серверы, можно включить режим принудительного использования. Для этого откройте раздел Настройки, перейдите на вкладку Команда и включите опцию Используйте только пользовательские прокси-серверы для передачи медиаданных:

Самостоятельное обслуживание

При включении режима использования только собственных прокси-серверов вы полностью берёте на себя ответственность за их обслуживание и доступность. Обязательно контролируйте загрузку ресурсов и работоспособность ваших прокси-серверов.

Подготовка приложения Агент

Прокси-сервер выбирается со стороны приложения Агент в момент установления соединения, то есть со стороны удалённого устройства.

Чтобы приложение Агент обнаружило новый прокси-сервер, необходимо его перезапустить. Поэтому после завершения всех описанных выше этапов настройки пользовательского сервера необходимо перезапустить приложение Агент на удалённых устройствах.

Проверка доступности и использования

Чтобы убедиться, что во время подключения используется ваш пользовательский прокси-сервер, подключитесь к удалённому устройству, переключитесь на канал WebSocket в окне управления сигнализацией и проверьте поле Proxy. В нём должно отображаться доменное имя вашего прокси-сервера.

Если используется канал WebRTC и прямое P2P-соединение недоступно, будет задействован TURN-прокси-сервер. В поле Proxy будет отображаться IP-адрес вашего прокси-сервера.