Локально
Разместите собственную сеть HopToDesk локально или в облаке.
Настройте собственную сеть
Настройте собственную сеть HopToDesk. Совместимо с Ubuntu 18 - 24 и Windows.
Руководство по настройке
Пошаговое руководство по настройке
Что делает установщик, как его проверить и как подключить устройства к собственной сети.
Как это работает
HopToDesk использует два вида серверов. Сигнальный сервер помогает устройствам найти друг друга и установить сеанс. Ретранслятор TURN передаёт трафик сеанса только тогда, когда прямое соединение между двумя устройствами невозможно.
Сеансы шифруются сквозным шифрованием, поэтому ни один сервер не может прочитать ваш экран, файлы или чат. Сигнальный сервер видит только идентификаторы устройств и запросы на подключение.
Установщик на этой странице настраивает сигнальный сервер. Трафик ретрансляции по умолчанию идёт через ретранслятор HopToDesk или через ваш собственный сервер TURN, если вы его укажете.
Панель остаётся размещённым сервисом. Устройства в самостоятельно размещённой сети по-прежнему можно привязать к ней для управления, и панель может отправлять им сетевые настройки.
Перед началом
- Сервер с Ubuntu 18.04 до 24.04 или сервер Windows.
- Доступ root или sudo на этом сервере.
- IP-адрес или имя хоста, доступные всем вашим устройствам. Для сети, которая не выходит за пределы вашей локальной сети, достаточно частного адреса.
- Порт TCP 80 открыт на брандмауэре сервера для ваших устройств.
- Если хотите собственный ретранслятор: хост, порт, имя пользователя и пароль вашего сервера TURN.
Шаг 1: установка сигнального сервера в Linux
- Войдите на сервер как root или как пользователь с правами sudo.
- Вверху этой страницы выберите LAN + Default Relay или Custom TURN Server. Команда установки меняется в зависимости от выбора.
- Нажмите Copy, вставьте команду в терминал и нажмите Enter.
- Дождитесь завершения скрипта. На новом сервере установка пакетов может занять несколько минут.
- В конце скрипт выводит HopSignal Setup Complete, затем адрес вашего сервера и готовый блок сетевых настроек. Сохраните этот вывод, он понадобится на шаге 3.
cd /home && curl -o hsinstall.sh -sL https://www.hoptodesk.com/hs/hsinstall && sh hsinstall.sh
С собственным сервером TURN добавьте его четыре значения в конец команды в таком порядке: хост, порт, имя пользователя, пароль.
sh hsinstall.sh turn.example.com 443 myuser mypassword
Что делает скрипт
- Устанавливает через apt необходимые инструменты сборки и библиотеки OpenSSL.
- Загружает исполняемый файл сигнального сервера в папку /home/hopsignal.
- Создаёт службу systemd с именем hopsignal и запускает её при каждой загрузке.
- Добавляет сторожевое задание cron, которое перезапускает службу, если она перестаёт отвечать, и ротирует журнал, когда он превышает 100 МБ.
- Открывает порт TCP 80 в ufw, если ufw активен.
Шаг 1 в Windows: запуск сигнального сервера
- Переключите переключатель OS вверху этой страницы на Windows и нажмите Download. Вы получите один файл с именем hopsignal.exe.
- Создайте папку, например C:\hopsignal, и переместите в неё hopsignal.exe.
- В той же папке создайте пустой текстовый файл с именем fedlist.txt.
- Версия для Windows также ожидает сертификат TLS и его закрытый ключ в формате PEM. Подойдёт любая пара, включая самоподписанную. Сохраните их как cert.pem и key.pem в той же папке.
- Откройте командную строку от имени администратора и запустите сервер.
cd C:\hopsignal hopsignal.exe --ADDR 0.0.0.0:80 --WSS_ADDR 0.0.0.0:443 --CERT cert.pem --KEY key.pem --FEDLIST fedlist.txt --FEDADDR 127.0.0.1:82 --FEDPWD 123456789 --LOGFILE hs.log
Если у вас есть OpenSSL, эта команда создаёт самоподписанную пару сертификата и ключа:
openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650 -subj "/CN=hopsignal"
Разрешите порт в брандмауэре Windows:
netsh advfirewall firewall add rule name="HopSignal" dir=in action=allow protocol=TCP localport=80
Чтобы сервер продолжал работать после перезагрузки, зарегистрируйте его как запланированную задачу, запускаемую при загрузке под учётной записью SYSTEM:
schtasks /Create /TN HopSignal /SC ONSTART /RU SYSTEM /TR "C:\hopsignal\hopsignal.exe --ADDR 0.0.0.0:80 --WSS_ADDR 0.0.0.0:443 --CERT C:\hopsignal\cert.pem --KEY C:\hopsignal\key.pem --FEDLIST C:\hopsignal\fedlist.txt --FEDADDR 127.0.0.1:82 --FEDPWD 123456789 --LOGFILE C:\hopsignal\hs.log" schtasks /Run /TN HopSignal
Шаг 2: проверка, что сервер работает
В Linux проверьте службу и журнал:
sudo systemctl status hopsignal tail /home/hopsignal/hs.log
В Windows убедитесь, что порт прослушивается:
netstat -an | find ":80 "
С любого компьютера проверьте порт WebSocket. Замените SERVER_IP на адрес вашего сервера. Исправный сервер отвечает HTTP/1.1 101 Switching Protocols.
curl -i -N -m 5 -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Version: 13" -H "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" http://SERVER_IP:80/
Шаг 3: направление устройств на сервер
Каждое устройство читает сетевые настройки из небольшого документа JSON. Это тот блок, который установщик вывел в конце шага 1. Замените SERVER_IP на адрес вашего сервера и заполните блок TURN, если используете собственный ретранслятор.
{
"turnservers": [
{
"protocol": "turn",
"host": "turn.hoptodesk.com",
"port": "443",
"username": "hoptodesk",
"password": "hoptodesk1234"
}
],
"rendezvous": {
"host": "SERVER_IP",
"port": "80"
},
"winversion": "1.0.0",
"macversion": "1.0.0",
"linuxversion": "1.0.0",
"none": "none"
}
Блок rendezvous является вашим сигнальным сервером. Используйте ключ rendezvousssl вместо rendezvous, когда сервер доступен через TLS, например Cloudflare Worker или развёртывание в AWS. Список turnservers содержит один или несколько ретрансляторов. Задайте протокол turn для обычного соединения или turn-tls для соединения TLS. Ключи версий оставьте без изменений.
Есть три способа передать этот документ устройствам. Выберите тот, который подходит вашей схеме.
Вариант A: положить файл api.json на каждое устройство
Сохраните документ как файл с именем api.json в папке конфигурации HopToDesk, затем перезапустите HopToDesk. Приложение читает файл при запуске и больше не обращается к API HopToDesk.
| Платформа | Путь |
|---|---|
| Windows, все пользователи и служба | C:\ProgramData\HopToDesk\config\api.json |
| Windows, только текущий пользователь | %APPDATA%\HopToDesk\config\api.json |
| macOS | ~/Library/Preferences/com.hoptodesk.HopToDesk/api.json |
| Linux | ~/.config/hoptodesk/api.json |
В Linux фоновая служба работает от root и читает файл в /root, а приложение, которое вы открываете, читает файл в вашей домашней папке. Положите копию в оба места.
Вариант B: разместить файл по URL и выбрать его в приложении
- Загрузите api.json на любой веб-сервер, доступный вашим устройствам. Рекомендуется HTTPS.
- В HopToDesk нажмите значок шестерёнки, чтобы открыть настройки.
- В разделе Network нажмите Choose Network.
- Выберите Custom Network Settings, вставьте URL вашего файла и подтвердите.
- HopToDesk загружает файл, проверяет, что в нём есть корректная запись rendezvous и список turnservers, а затем переподключается через ваш сервер.
Чтобы вернуться в публичную сеть, снова откройте Choose Network и выберите HopToDesk Network.
Вариант C: отправить настройки из панели
Если ваши устройства привязаны к панели HopToDesk, вы можете задать сеть один раз для всей учётной записи. Пользовательский клиент, собранный из панели, уже содержит эти настройки.
- Войдите в панель как владелец или администратор и откройте настройки.
- В разделе Network Settings выберите Custom Network.
- Введите хост сигнального сервера, его порт и WS в качестве протокола. Добавьте сервер TURN, если используете собственный ретранслятор, или оставьте поле пустым, чтобы сохранить ретранслятор HopToDesk.
- Нажмите Save Network Settings. Каждое привязанное устройство получит новые настройки и применит их без переустановки.
Запуск собственного ретранслятора TURN (необязательно)
Сеансы, которые не могут подключиться напрямую, по умолчанию идут через ретранслятор HopToDesk. Чтобы весь трафик оставался в вашей инфраструктуре, запустите сервер TURN. Подойдёт любой стандартный сервер TURN, в Linux часто выбирают coturn.
- Установите coturn на сервер ретранслятора.
sudo apt install coturn
- Отредактируйте /etc/turnserver.conf и задайте как минимум значения ниже. Замените realm, учётные данные и публичный IP на свои.
listening-port=443 fingerprint lt-cred-mech user=myuser:mypassword realm=example.com external-ip=PUBLIC_IP
- Если в /etc/default/coturn есть строка TURNSERVER_ENABLED, раскомментируйте её. Затем включите и запустите службу.
sudo systemctl enable --now coturn sudo systemctl restart coturn
- Откройте на брандмауэре ретранслятора порт прослушивания для TCP и UDP, а также диапазон UDP-ретрансляции с 49152 по 65535.
- Передайте ретранслятор устройствам: запустите установщик ещё раз с четырьмя значениями TURN или отредактируйте блок turnservers в сетевых настройках. Используйте протокол turn-tls, если ваш ретранслятор завершает TLS.
Управление сервером в Linux
sudo systemctl status hopsignal sudo systemctl restart hopsignal sudo systemctl stop hopsignal tail -f /home/hopsignal/hs.log
Чтобы обновить сервер, остановите службу и снова выполните команду установки. Она загрузит актуальный исполняемый файл и перезапишет службу.
Чтобы удалить сервер вместе со службой и записями cron:
cd /home && curl -o hsinstall.sh -sL https://www.hoptodesk.com/hs/hsinstall && sh hsinstall.sh remove
Устранение неполадок
- Идентификатор остаётся на Generating или приложение постоянно пытается подключиться к сети: устройство не может достичь сигнального сервера. Проверьте, что служба запущена, порт 80 открыт и адрес в сетевых настройках верен.
- Устройства подключаются в локальной сети, но не извне: ретранслятор недоступен. С ретранслятором по умолчанию устройствам нужен исходящий доступ к turn.hoptodesk.com по порту 443. С собственным ретранслятором проверьте его правила брандмауэра и учётные данные.
- Приложение игнорирует api.json: убедитесь, что файл содержит корректный JSON без завершающих запятых, лежит в правильной папке и что вы перезапустили HopToDesk. В журнале приложения появляется строка Loaded local api.json, когда файл был загружен.
- Порт 82 является портом федерации для связи нескольких собственных сигнальных серверов. Держите его закрытым для интернета.
- Сигнальный сервер не хранит данные сеансов. Если что-то зависло, перезапустите службу. Устройства сами переподключатся примерно за минуту.
Хостинг у стороннего провайдера
Предпочитаете управляемую платформу? Разверните сеть HopToDesk в Cloudflare или AWS.

HopToDesk на Cloudflare
- Войдите в аккаунт Cloudflare и перейдите в нужную доменную зону.
- Создайте новый worker с именем файла index.js.
- Скопируйте код worker в index.js, затем сохраните и разверните его. Код worker
- URL вашего Cloudflare Worker готов. Используйте его как значение "rendezvousssl". api.json Собственный API

HopToDesk на AWS
- Зарегистрируйте аккаунт AWS, если у вас его ещё нет.
- Оформите подписку на HopToDesk в AWS Marketplace. AWS Marketplace
- После того как Amazon подготовит сервис, при необходимости настройте его и запустите экземпляр.
- Ваша сеть HopToDesk развёрнута в AWS. Укажите её https-адрес как значение "rendezvousssl". api.json Собственный API
Примечание: Worker требует платный тариф Cloudflare от 5 $ в месяц, поскольку использует Durable Objects. Цены Durable Objects
AWS Marketplace и логотип AWS Marketplace являются товарными знаками Amazon.com, Inc. или её аффилированных лиц.Cloudflare, логотип Cloudflare и Cloudflare Workers являются товарными знаками и/или зарегистрированными товарными знаками Cloudflare, Inc. в США и других юрисдикциях.