На главную

Свой ретранслятор

RemoScreen — руководство по развёртыванию ретранслятора

В руководстве описано развёртывание ретранслятора RemoScreen. Комплект содержит программу для Linux, средство первоначальной настройки, шаблоны конфигурации и это руководство. Доступность комплектов указана в разделе загрузки приложения.

Загрузить пакет ретранслятора

Выберите архитектуру сервера. В пакете есть SHA256SUMS: проверьте загрузку перед распаковкой.

Linux x86_64 Linux ARM64 (тестирование)

Назначение ретранслятора

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

Загрузка и подготовка

Выберите Linux x86_64 или ARM64 в соответствии с сервером. Комплект должен содержать remoscreen-service, remoscreen-setup, шаблоны, руководство, идентификаторы версии и исходного кода и SHA256SUMS. Сверьте контрольную сумму со страницей выпуска, распакуйте в новый каталог версии и сохраните предыдущую версию.

Подготовьте сервер Linux, указывающий на него домен и действующий HTTPS-сертификат для этого домена. Используйте отдельную учётную запись с минимальными правами и каталог постоянных данных. Программы должны быть исполняемыми; доступ к каталогу состояния разрешите только этой учётной записи, а созданным файлам ключей задайте права 0600.

В примерах используются connect.example.com, HTTPS 8443 и TCP 9443 для ретранслятора. Сначала проверьте домен, порты, межсетевой экран и облачные группы безопасности. Если порт занят, спланируйте обратный прокси или другой адрес прослушивания, не заменяя существующую службу.

Инициализация резервного ретранслятора

Запустите средство настройки от имени учётной записи службы. Замените домен и укажите отдельный каталог данных, принадлежащий этой учётной записи:

./remoscreen-setup -directory /var/lib/remoscreen/relay \
  -role relay -name RemoScreen \
  -control-url https://connect.example.com:8443/v2/control \
  -relay-host connect.example.com -relay-tcp-port 9443

Будут созданы идентификатор службы, клиентский ключ доступа и конфигурация. При повторной инициализации сохраняйте роль relay и исходный адрес; существующие идентификаторы не перезаписываются. Не удаляйте данные и не создавайте ключи заново ради обновления программы.

Запуск резервного ретранслятора

Используйте тот же каталог данных и замените пути сертификатов на реальные PEM-файлы, доступные учётной записи службы для чтения:

./remoscreen-service -service-role=relay \
  -control-listen=:8443 \
  -control-tls-certificate=/etc/remoscreen/fullchain.pem \
  -control-tls-key=/etc/remoscreen/privkey.pem \
  -service-info-config=/var/lib/remoscreen/relay/service-info.json \
  -relay-control-config=/var/lib/remoscreen/relay/relay-control.json \
  -relay-access-keys=/var/lib/remoscreen/relay/relay-access-keys.json \
  -control-revocation-store=/var/lib/remoscreen/relay/revocations.json \
  -control-primary-lock=/var/lib/remoscreen/relay/primary.lock \
  -account-deletion-journal=/var/lib/remoscreen/relay/deletion-journal.json \
  -usage-ledger-store=/var/lib/remoscreen/relay/usage.jsonl \
  -public-host=connect.example.com -tcp-relay-listen=:9443 \
  -tcp-require-local-control-allocation=true \
  -relay-node-id=self-hosted -relay-region=self-hosted \
  -require-commercial-subscription=false

Сначала проверьте запуск в переднем плане, затем передайте управление менеджеру служб Linux. В определении службы нужны отдельная учётная запись, абсолютные пути, те же аргументы, закрытый каталог данных и перезапуск при сбое. После продления сертификата перезапустите эту службу, чтобы загрузить новый сертификат.

Добавление на Mac и iPad

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

Файл для импорта должен быть создан функцией экспорта конфигурации в приложении. client-connection.json — результат настройки для администратора, а не файл импорта приложения. Не передавайте service-info.json, relay-control.json, закрытые TLS-ключи или весь каталог данных сервера.

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

Проверка развёртывания

Из другой сети проверьте HTTPS-сертификат и подписанный идентификатор службы по /v2/service-info, затем запустите проверку сервера в приложении. Соедините уже авторизованные устройства через тестовую сеть без прямого доступа и убедитесь, что используется именно этот ретранслятор. Проверьте журналы на ошибки сертификата и ключа доступа.

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

Обновление, откат и удаление

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

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