В локална среда

Хоствайте собствена HopToDesk мрежа локално или в облака.

Настройте собствена мрежа

Настройте собствена HopToDesk мрежа на 64-битов сървър с Linux или Windows.

Най-бързият начин: в таблото отворете Настройки, Network Settings, Set up a private network. Получавате готов линк за стартиране в AWS или команда за Docker, а новият сървър сам се обажда на вашето табло. Отваряне на таблото

ОС:
Linux
LinuxWindows
Тази конфигурация позволява на устройствата в локалната ви мрежа да се свързват директно, като използва релейните сървъри по подразбиране на HopToDesk за външни връзки.
Конфигурирайте собствен TURN сървър за пълен контрол над релейните връзки. Всички полета са задължителни.

Ръководство за настройка

Самостоятелен хостинг на HopToDesk

Ръководство за настройка стъпка по стъпка

Какво прави инсталаторът, как да го проверите и как да свържете устройствата си със собствената си мрежа.

Как работи

HopToDesk използва два вида сървъри. Сигналният сървър помага на устройствата да се открият и да установят сесия. TURN релето пренася трафика на сесията само когато директна връзка между двете устройства не е възможна.

Сесиите са криптирани от край до край, така че никой от сървърите не може да чете екрана, файловете или чата ви. Сигналният сървър вижда само идентификатори на устройства и заявки за връзка.

Инсталаторът на тази страница настройва сигналния сървър. Трафикът през реле минава по подразбиране през релето на HopToDesk или през вашия собствен TURN сървър, ако зададете такъв.

Устройствата в самостоятелно хоствана мрежа все още могат да бъдат свързани с таблото за управление, а таблото може да им изпраща мрежовите настройки.

Искате таблото и на собствените си сървъри? Говорете с нас

Преди да започнете

  • 64-битов Linux сървър със systemd, например Ubuntu или Debian, или сървър с Windows.
  • Root или sudo достъп до този сървър.
  • IP адрес или име на хост, до които всички ваши устройства имат достъп. За мрежа, която никога не напуска вашата LAN, е достатъчен частен адрес.
  • TCP порт 80, отворен на защитната стена на сървъра за вашите устройства.
  • Ако искате собствено реле: хост, порт, потребителско име и парола на вашия TURN сървър.

Стъпка 1: Инсталирайте сигналния сървър в Linux

  1. Влезте в сървъра като root или като потребител с sudo права.
  2. В горната част на тази страница изберете LAN + Default Relay или Custom TURN Server. Командата за инсталиране се променя според избора ви.
  3. Щракнете върху Copy, поставете командата в терминала и натиснете Enter.
  4. Изчакайте скриптът да приключи. Отнема по-малко от минута.
  5. Накрая скриптът извежда HopSignal Setup Complete, следвано от адреса на сървъра и готов блок с мрежови настройки. Запазете този изход, ще ви трябва в стъпка 3.
curl -o hsinstall.sh -sL https://www.hoptodesk.com/hs/hsinstall && sudo sh hsinstall.sh

Със собствен TURN сървър добавете четирите му стойности в края на командата в този ред: хост, порт, потребителско име, парола.

sudo sh hsinstall.sh turn.example.com 443 myuser mypassword

Какво прави скриптът

  • Изтегля сигналния сървър за вашия процесор, Intel, AMD или ARM, в папката /home/hopsignal.
  • Проверява изтегления файл спрямо публикувания списък SHA256SUMS и спира без промени, ако не съвпада.
  • Създава systemd услуга с име hopsignal и я стартира при всяко зареждане.
  • Стартира сървъра с препоръчаните ограничения на връзките и случайна парола за федерация, записана в /home/hopsignal/hopsignal.env с достъп само за root.
  • Добавя cron наблюдател, който рестартира услугата, ако спре да отговаря, и ротира дневника, когато надхвърли 100 MB.
  • Отваря TCP порт 80 в ufw, когато ufw е активен.

Стъпка 1 в Windows: Стартирайте сигналния сървър

  1. Превключете превключвателя OS в горната част на тази страница на Windows и щракнете върху Download. Получавате един файл с име hopsignal.exe.
  2. Създайте папка като C:\hopsignal и преместете hopsignal.exe в нея.
  3. В същата папка създайте празен текстов файл с име fedlist.txt.
  4. Отворете командния ред като администратор и стартирайте сървъра.
cd C:\hopsignal
for /f %i in ('powershell -NoProfile -Command "[guid]::NewGuid().ToString('N')"') do @(setx /M FEDPWD %i >nul & set FEDPWD=%i)
hopsignal.exe --ADDR 0.0.0.0:80 --FEDLIST fedlist.txt --FEDADDR 127.0.0.1:82 --LOGFILE hs.log

Вторият ред записва случайна парола за федерация като системна настройка на Windows, така че тя никога не се появява в командния ред на сървъра.

Разрешете порта в защитната стена на 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 --FEDLIST C:\hopsignal\fedlist.txt --FEDADDR 127.0.0.1:82 --LOGFILE C:\hopsignal\hs.log"
schtasks /Run /TN HopSignal

Стъпка 1 с Docker: Стартирайте сигналния сървър в контейнер

Образът hoptodesk/hopsignal изпълнява същия сигнален сървър на хостове с Intel, AMD и ARM. Стартирайте го с препоръчаните ограничения:

docker run -d --name hopsignal --restart unless-stopped -p 80:80 \
  -e HS_MAX_MESSAGE_KB=64 -e HS_QUEUE_LIMIT=256 -e HS_MAX_CONNS=20000 \
  -e HS_CONNS_PER_IP=100 -e HS_LOOKUPS_PER_IP=20 \
  -e HS_IDLE_TIMEOUT=300 -e HS_UPGRADE_TIMEOUT=10 \
  hoptodesk/hopsignal

Всяка стойност HS_ включва едно ограничение: размер на съобщението в KB, чакащи съобщения на връзка, отворени връзки, нови връзки и справки на адрес в секунда, секунди на бездействие и секунди за ръкостискане. Пропуснете стойност и това ограничение остава изключено.

За да свържете контейнера с акаунта си в таблото автоматично, използвайте командата за Docker от Set up a private network в таблото. Тя добавя HS_SETUP_TOKEN и HS_DASHBOARD_URL, а сървърът съобщава адреса си веднъж, при първото стартиране.

Стъпка 2: Проверете дали сървърът работи

В Linux проверете услугата и дневника:

sudo systemctl status hopsignal
tail /home/hopsignal/hs.log

В Windows потвърдете, че портът слуша:

netstat -an | find ":80 "

С Docker проверете контейнера и неговия дневник:

docker ps --filter name=hopsignal
docker logs hopsignal

От всеки компютър тествайте 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. Списъкът 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/.config/hoptodesk. Приложението използва това копие на екрана за вход, преди потребител да влезе.

Вариант B: Хоствайте файла на URL и го изберете в приложението

  1. Качете api.json на всеки уеб сървър, до който устройствата ви имат достъп. Препоръчва се HTTPS.
  2. В HopToDesk щракнете върху иконата на зъбно колело, за да отворите настройките.
  3. В Network щракнете върху Choose Network.
  4. Изберете Custom Network Settings, поставете URL адреса на файла си и потвърдете.
  5. HopToDesk изтегля файла, проверява дали съдържа валиден запис rendezvous и списък turnservers, след което се свързва отново през вашия сървър.

За да се върнете към публичната мрежа, отворете отново Choose Network и изберете HopToDesk Network (Default).

На Android и iOS отворете Настройки, изключете Use HopToDesk Network в раздела Мрежа и въведете URL адреса на вашия файл. Телефоните, управлявани чрез EMM, могат да получат същия URL адрес чрез управляваната настройка custom_api_url.

Вариант C: Изпратете настройките от таблото

Ако устройствата ви са свързани с таблото на HopToDesk, можете да зададете мрежата веднъж за целия акаунт. Персонализиран клиент, създаден от таблото, вече съдържа тези настройки.

Нов сървър: в таблото отворете Настройки, Network Settings, Set up a private network. Изберете In my AWS account или On my own server. Сървърът съобщава адреса си при стартиране и всяко свързано устройство получава настройките. Няма нищо за писане.

Сървър, който вече използвате: въведете настройките му ръчно.

  1. Влезте в таблото като собственик или администратор и отворете настройките.
  2. В Network Settings изберете Custom Network.
  3. Въведете хоста на сигналния сървър, неговия порт и WS като протокол. Добавете TURN сървър, ако използвате собствено реле, или оставете празно, за да запазите релето на HopToDesk.
  4. Щракнете върху Save Network Settings. Всяко свързано устройство получава новите настройки и ги прилага без преинсталиране.

Стартирайте собствено TURN реле (по избор)

Сесиите, които не могат да се свържат директно, минават по подразбиране през релето на HopToDesk. За да задържите целия трафик в собствената си инфраструктура, стартирайте TURN сървър. Всеки стандартен TURN сървър работи, а coturn е често срещан избор в Linux.

  1. Инсталирайте coturn на сървъра за реле.
sudo apt install coturn
  1. Редактирайте /etc/turnserver.conf и задайте поне стойностите по-долу. Заменете realm, идентификационните данни и публичния IP със своите.
listening-port=443
fingerprint
lt-cred-mech
user=myuser:mypassword
realm=example.com
external-ip=PUBLIC_IP
  1. Ако /etc/default/coturn съдържа ред TURNSERVER_ENABLED, премахнете коментара. След това активирайте и стартирайте услугата.
sudo systemctl enable --now coturn
sudo systemctl restart coturn
  1. Отворете на защитната стена на релето порта за слушане за TCP и UDP, както и UDP диапазона за реле от 49152 до 65535.
  2. Предайте релето на устройствата: стартирайте инсталатора отново с четирите 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:

curl -o hsinstall.sh -sL https://www.hoptodesk.com/hs/hsinstall && sudo sh hsinstall.sh remove

Отстраняване на проблеми

  • Идентификаторът остава на Generating или приложението непрекъснато се опитва да се свърже с мрежата: устройството не може да достигне сигналния сървър. Проверете дали услугата работи, дали порт 80 е отворен и дали адресът в мрежовите настройки е правилен.
  • Устройствата се свързват в LAN, но не и отвън: релето не е достъпно. С релето по подразбиране устройствата се нуждаят от изходящ достъп до turn.hoptodesk.com на порт 443. Със собствено реле проверете правилата на защитната стена и идентификационните данни.
  • Приложението игнорира api.json: уверете се, че файлът е валиден JSON без завършващи запетаи, че е в правилната папка и че сте рестартирали HopToDesk. Дневникът на приложението съдържа реда Loaded local api.json, когато файлът е зареден.
  • Порт 82 е порт за федерация за свързване на няколко ваши сигнални сървъра. Дръжте го затворен за интернет.
  • Сигналният сървър не съхранява данни от сесии. Ако нещо изглежда блокирано, рестартирайте услугата. Устройствата се свързват отново сами за около минута.

Хостинг при трета страна

Предпочитате управлявана платформа? Разположете своята HopToDesk мрежа в Cloudflare или AWS.

HopToDesk в Cloudflare

  1. Влезте в акаунта си в Cloudflare и отидете в домейн зоната, която искате да използвате.
  2. Създайте нов worker с име на файла index.js.
  3. Копирайте кода на worker в index.js, след което запишете и разположете worker-а. Код на worker
  4. В настройките на worker-а добавете Durable Object binding с име group за класа SessionGroup.
  5. URL адресът на вашия Cloudflare Worker е готов. Използвайте го като стойност на "rendezvousssl". api.json Собствен API

HopToDesk в AWS

  1. Абонирайте се за HopToDesk Private Network в AWS Marketplace. Обявата е безплатна; AWS таксува само сървъра. AWS Marketplace
  2. Влезли сте в таблото? Отворете Настройки, Network Settings, Set up a private network и изберете In my AWS account. Линкът за стартиране вече съдържа настройките, сървърът сам се обажда на вашето табло и можете да пропуснете следващите стъпки.
  3. Изберете Launch with CloudFormation. Един формуляр създава сървъра, неговия фиксиран адрес и правилата на защитната му стена в избрания от вас регион.
  4. Когато стекът е завършен, отворете раздела Outputs. Там е api.json за вашите приложения.
  5. Запазете този api.json на всеки компютър или го изпратете до всички устройства от Мрежови настройки в таблото. api.json

Забележка: Worker-ът използва Durable Objects. Цената им зависи от вашия план в Cloudflare и от използването. Цени на Durable Objects

AWS Marketplace и логото на AWS Marketplace са търговски марки на Amazon.com, Inc. или нейни филиали.
Cloudflare, логото на Cloudflare и Cloudflare Workers са търговски марки и/или регистрирани търговски марки на Cloudflare, Inc. в САЩ и други юрисдикции.

Планирате разгръщане със самостоятелен хостинг? Заявете оферта