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

Что такое Шлюз и для чего он используется?

Шлюз — это небольшое консольное приложение, которое предоставляет другим устройствам в той же сети доступ к серверу Connect.

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

Приложение доступно для операционных систем Windows и Linux.

Скачать Шлюз


Возможности

Использование Шлюза не добавляет новых функций, однако значительно улучшает возможности использования системы, создавая более подходящие условия для работы существующих функций. При использовании Шлюза вы получаете:

  • Пользовательское проксирование данных для соединений между удалённым устройством и техника
  • Импорт учётных записей техников из корпоративного Active Directory
  • Проксирование сигнала Magic Packet для Wake-on-LAN внутри локальной сети
  • Доступ приложения Агент к серверу из закрытых сетей

Проксирование подключений к устройствам

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

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

Шлюз поддерживает оба канала передачи данных: WebRTC и WebSocket. Они могут использоваться отдельно или одновременно.

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

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

WebRTC

Хотя WebRTC является протоколом для установления P2P-соединений, ему всё равно требуется доступ к служебным STUN-серверам для определения IP-адресов участников, а также к TURN-серверам для проксирования данных в случаях, когда P2P-соединение невозможно из-за сетевых условий. Шлюз запускает эти серверы для поддержания работоспособности канала.

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

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

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

WebSocket

Для поддержки альтернативного канала Шлюз работает как публичный веб-сервер и проксирует HTTP-соединения через протокол WebSocket.

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

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

После создания A-записи, указывающей доменное имя на IP-адрес Шлюза, укажите имя хоста в config.json в поле proxy.websocket.host. Подробнее см. в разделе Конфигурация.

Также потребуется SSL-сертификат для вашего доменного имени, чтобы браузер мог установить защищённое соединение. Поместите файл сертификата и файл приватного ключа в папку cert рядом с исполняемым файлом, используя следующие имена: server.crt и server.key.

По умолчанию Шлюз принимает входящие подключения на порту 443 на всех доступных IP-адресах. Чтобы изменить эти параметры, укажите другие значения в config.json в полях proxy.websocket.listen_ip и proxy.websocket.port. Подробнее см. в разделе Конфигурация.

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

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

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

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

Импорт учётных записей техников из Active Directory

Контроллеры домена Active Directory обычно не имеют открытого доступа в Интернет из соображений безопасности. Из-за этого сервер Connect не может напрямую отправлять запросы на импорт учётных записей из Active Directory. Чтобы предоставить серверу доступ к Active Directory, запустите приложение Шлюз внутри той же локальной сети в качестве посредника. Запущенный Шлюз может синхронизировать учётные записи, выполняя следующие операции по указанию сервера:

  1. Получение от сервера учётных данных для подключения к Active Directory
  2. Подключение к Active Directory по LDAP и получение данных учётных записей пользователей
  3. Отправка полученных данных на сервер

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

Для использования Шлюза в качестве импортёра данных Active Directory и отправки данных на сервер Connect устройство с запущенным Шлюзом должно иметь открытый доступ к серверу по доменному имени через порт 443, а также доступ к службе каталогов Windows по LDAP. Публичный IP-адрес не требуется.

Интеграция с Active Directory

Подробные инструкции по импорту учётных записей технических специалистов из Active Directory приведены в отдельном руководстве.

Техники и система прав доступа

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

Проксирование сигнала Magic Packet для Wake-on-LAN

Когда устройство пробуждается с помощью Wake-on-LAN, сервер отправляет сигнал Magic Packet на все известные IP-адреса целевого устройства. Однако целевое устройство часто не имеет публичного IP-адреса, поэтому пакет может не дойти до него. При этом устройство может быть подключено к другим устройствам в локальной сети и способно получать сигнал пробуждения от них.

Это означает, что вы можете превратить одно из устройств в вашей локальной сети в «наблюдатель», установив на него приложение Шлюз. По запросу сервера, Шлюз отправляет сигнал Magic Packet по локальной сети, обеспечивая надёжное пробуждение целевого устройства.

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

Для использования Шлюза в качестве ретранслятора Magic Packet - устройство с запущенным Шлюзом должно иметь открытый доступ к серверу по доменному имени через порт 443. Публичный IP-адрес не требуется.

Wake-on-LAN

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

Доступ приложения Агент к серверу из закрытых сетей

Когда приложение Агент на удалённом устройстве не имеет прямого доступа к серверу, он может подключаться к серверу через Шлюз, у которого такой доступ есть. Это может потребоваться при настройке удалённого доступа к устройствам без доступа в Интернет, например в закрытых корпоративных сетях.

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

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

Конфигурация Шлюза

Чтобы изменить порт, используемый приложениями Агент для подключения к Шлюзу, обновите параметр proxy.websocket.port в config.json. Подробнее см. в разделе Конфигурация.

Запуск приложения Агент

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

pro32connect.exe -config "server='192.168.1.1:443'"

О приложении Агент

Подробнее о приложении Агент читайте в отдельных руководствах:

Управление Шлюзом

Запущенное приложение Шлюз идентифицируется на сервере с помощью токена, который Шлюз отправляет серверу при подключении. Сервер использует этот токен для определения учётной записи владельца Шлюза и доступных для него ролей.

Управление токенами и ролями выполняется в личном кабинете на странице Шлюзы в разделе Настройки.

На вкладке Установка и запуск в карточке токена можно найти краткие инструкции по установке Шлюза и скачать предварительно настроенный файл config.json для конфигурации запущенного экземпляра. Этот файл содержит адрес сервера и токен.

На вкладке Список активных можно увидеть список запущенных экземпляров, использующих данный токен.

На остальных вкладках можно включать или отключать необходимые роли Шлюза:

Установка и запуск службы

Приложение Шлюз управляется с помощью консольных команд.

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

./gateway -install

Право на выполнение

В системах Linux необходимо сделать файл исполняемым с помощью команды: chmod +x ./gateway

Чтобы запустить службу, используйте команду -start:

./gateway -start

Список всех доступных команд

Команда Описание
-install Установить службу
-uninstall Удалить службу
-start Запустить службу
-stop Остановить службу

Конфигурация

Запущенный экземпляр Шлюза настраивается с помощью файла config.json, который должен находиться рядом с исполняемым файлом. После внесения изменений необходимо перезапустить приложение.

Подключение к серверу

Параметры подключения к серверу Connect:

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

Проксирование подключений

Настройки, необходимые для запуска Шлюза в качестве прокси данных при подключении к удалённым устройствам:

Параметр Тип Описание
Канал WebRTC
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
Канал WebSocket
proxy.websocket.host string Доменное имя, по которому будет доступен Шлюз и для которого выдан SSL-сертификат
proxy.websocket.listen_ip string IP-адрес для прослушивания входящих подключений. По умолчанию: 0.0.0.0
proxy.websocket.port number Порт для входящих подключений. По умолчанию: 443
Пример
{
  "proxy": {
    "webrtc": {
      "public_ip": "130.193.34.86",
      "listen_ip": "0.0.0.0",
      "port": "3478",
      "udp_ports_max": "60000",
      "udp_ports_min": "40000"
    },
    "websocket": {
      "host": "proxy.example.ru",
      "listen_ip": "0.0.0.0",
      "port": "443"
    }
  }
}