On-Premises

Hostuj własną sieć HopToDesk lokalnie lub w chmurze.

Skonfiguruj własną sieć

Skonfiguruj własną sieć HopToDesk. Zgodna z Ubuntu 18 - 24 i Windows.

System:
Linux
LinuxWindows
Ta konfiguracja pozwala urządzeniom w sieci LAN łączyć się bezpośrednio, a do połączeń zewnętrznych używa domyślnych serwerów przekaźnikowych HopToDesk.
Skonfiguruj własny serwer TURN, aby mieć pełną kontrolę nad połączeniami przekaźnikowymi. Wszystkie pola są wymagane.

Samouczek konfiguracji

Self-hosting HopToDesk

Przewodnik konfiguracji krok po kroku

Co robi instalator, jak to sprawdzić i jak połączyć urządzenia z własną siecią.

Jak to działa

HopToDesk korzysta z dwóch rodzajów serwerów. Serwer sygnalizacyjny pomaga urządzeniom odnaleźć się nawzajem i nawiązać sesję. Przekaźnik TURN przenosi ruch sesji tylko wtedy, gdy bezpośrednie połączenie między dwoma urządzeniami nie jest możliwe.

Sesje są szyfrowane end-to-end, więc żaden serwer nie może odczytać Twojego ekranu, plików ani czatu. Serwer sygnalizacyjny widzi tylko identyfikatory urządzeń i żądania połączeń.

Instalator na tej stronie konfiguruje serwer sygnalizacyjny. Ruch przekaźnika domyślnie przechodzi przez przekaźnik HopToDesk albo przez Twój własny serwer TURN, jeśli go podasz.

Panel pozostaje usługą hostowaną. Urządzenia w sieci własnej nadal można z nim powiązać w celu zarządzania, a panel może wysyłać do nich ustawienia sieci.

Zanim zaczniesz

  • Serwer z Ubuntu 18.04 do 24.04 albo serwer Windows.
  • Dostęp root lub sudo na tym serwerze.
  • Adres IP lub nazwa hosta, do której docierają wszystkie Twoje urządzenia. Dla sieci, która nigdy nie opuszcza Twojej sieci LAN, wystarczy adres prywatny.
  • Port TCP 80 otwarty na zaporze serwera dla Twoich urządzeń.
  • Jeśli chcesz mieć własny przekaźnik: host, port, nazwa użytkownika i hasło Twojego serwera TURN.

Krok 1: Zainstaluj serwer sygnalizacyjny w systemie Linux

  1. Zaloguj się na serwerze jako root albo jako użytkownik z uprawnieniami sudo.
  2. U góry tej strony wybierz LAN + Default Relay albo Custom TURN Server. Polecenie instalacji zmienia się zależnie od wyboru.
  3. Kliknij Copy, wklej polecenie w terminalu i naciśnij Enter.
  4. Poczekaj, aż skrypt się zakończy. Na świeżym serwerze instalacja pakietów może potrwać kilka minut.
  5. Na końcu skrypt wypisuje HopSignal Setup Complete, a po nim adres Twojego serwera i gotowy blok ustawień sieci. Zachowaj to wyjście, będzie potrzebne w kroku 3.
cd /home && curl -o hsinstall.sh -sL https://www.hoptodesk.com/hs/hsinstall && sh hsinstall.sh

Z własnym serwerem TURN dodaj jego cztery wartości na końcu polecenia w tej kolejności: host, port, nazwa użytkownika, hasło.

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

Co robi skrypt

  • Instaluje przez apt potrzebne narzędzia kompilacji i biblioteki OpenSSL.
  • Pobiera plik binarny serwera sygnalizacyjnego do folderu /home/hopsignal.
  • Tworzy usługę systemd o nazwie hopsignal i uruchamia ją przy każdym starcie systemu.
  • Dodaje strażnika w cronie, który restartuje usługę, gdy przestanie odpowiadać, i rotuje log, gdy przekroczy 100 MB.
  • Otwiera port TCP 80 w ufw, gdy ufw jest aktywne.

Krok 1 w systemie Windows: Uruchom serwer sygnalizacyjny

  1. Przełącz przełącznik OS u góry tej strony na Windows i kliknij Download. Otrzymasz jeden plik o nazwie hopsignal.exe.
  2. Utwórz folder, na przykład C:\hopsignal, i przenieś do niego hopsignal.exe.
  3. W tym samym folderze utwórz pusty plik tekstowy o nazwie fedlist.txt.
  4. Wersja dla Windows wymaga też certyfikatu TLS i jego klucza prywatnego w formacie PEM. Zadziała każda para, także z podpisem własnym. Zapisz je jako cert.pem i key.pem w tym samym folderze.
  5. Otwórz Wiersz polecenia jako administrator i uruchom serwer.
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

Jeśli masz OpenSSL, to polecenie tworzy parę certyfikatów z podpisem własnym:

openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650 -subj "/CN=hopsignal"

Zezwól na port w Zaporze systemu Windows:

netsh advfirewall firewall add rule name="HopSignal" dir=in action=allow protocol=TCP localport=80

Aby serwer działał po ponownym uruchomieniu, zarejestruj go jako zadanie zaplanowane uruchamiane przy starcie na koncie 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

Krok 2: Sprawdź, czy serwer działa

W systemie Linux sprawdź usługę i log:

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

W systemie Windows sprawdź, czy port nasłuchuje:

netstat -an | find ":80 "

Z dowolnego komputera przetestuj port WebSocket. Zastąp SERVER_IP adresem swojego serwera. Sprawny serwer odpowiada 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/

Krok 3: Skieruj urządzenia na serwer

Każde urządzenie odczytuje ustawienia sieci z małego dokumentu JSON. To blok, który instalator wypisał na końcu kroku 1. Zastąp SERVER_IP adresem swojego serwera i wypełnij blok TURN, jeśli używasz własnego przekaźnika.

{
  "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"
}

Blok rendezvous to Twój serwer sygnalizacyjny. Użyj klucza rendezvousssl zamiast rendezvous, gdy serwer jest osiągany przez TLS, na przykład Cloudflare Worker lub wdrożenie w AWS. Lista turnservers zawiera jeden lub więcej przekaźników. Ustaw protokół na turn dla zwykłego połączenia albo turn-tls dla połączenia TLS. Klucze wersji zostaw bez zmian.

Są trzy sposoby dostarczenia tego dokumentu do urządzeń. Wybierz ten, który pasuje do Twojej konfiguracji.

Opcja A: Umieść plik api.json na każdym urządzeniu

Zapisz dokument jako plik o nazwie api.json w folderze konfiguracji HopToDesk, a następnie uruchom HopToDesk ponownie. Aplikacja odczytuje plik przy starcie i nie łączy się już z API HopToDesk.

PlatformaŚcieżka
Windows, wszyscy użytkownicy i usługaC:\ProgramData\HopToDesk\config\api.json
Windows, tylko bieżący użytkownik%APPDATA%\HopToDesk\config\api.json
macOS~/Library/Preferences/com.hoptodesk.HopToDesk/api.json
Linux~/.config/hoptodesk/api.json

W systemie Linux usługa w tle działa jako root i odczytuje plik w /root, a aplikacja, którą otwierasz, odczytuje plik w Twoim katalogu domowym. Umieść kopię w obu miejscach.

Opcja B: Udostępnij plik pod adresem URL i wybierz go w aplikacji

  1. Wgraj api.json na dowolny serwer WWW, do którego docierają Twoje urządzenia. Zalecany jest HTTPS.
  2. W HopToDesk kliknij ikonę koła zębatego, aby otworzyć ustawienia.
  3. W sekcji Network kliknij Choose Network.
  4. Wybierz Custom Network Settings, wklej adres URL swojego pliku i potwierdź.
  5. HopToDesk pobiera plik, sprawdza, czy zawiera poprawny wpis rendezvous i listę turnservers, a następnie łączy się ponownie przez Twój serwer.

Aby wrócić do sieci publicznej, otwórz ponownie Choose Network i wybierz HopToDesk Network.

Opcja C: Wyślij ustawienia z panelu

Jeśli Twoje urządzenia są powiązane z panelem HopToDesk, możesz ustawić sieć raz dla całego konta. Niestandardowy klient zbudowany z panelu ma te ustawienia wbudowane.

  1. Zaloguj się do panelu jako właściciel lub administrator i otwórz ustawienia.
  2. W sekcji Network Settings wybierz Custom Network.
  3. Wpisz host serwera sygnalizacyjnego, jego port oraz WS jako protokół. Dodaj serwer TURN, jeśli używasz własnego przekaźnika, albo zostaw puste, aby zachować przekaźnik HopToDesk.
  4. Kliknij Save Network Settings. Każde powiązane urządzenie otrzyma nowe ustawienia i zastosuje je bez ponownej instalacji.

Uruchom własny przekaźnik TURN (opcjonalnie)

Sesje, które nie mogą połączyć się bezpośrednio, domyślnie przechodzą przez przekaźnik HopToDesk. Aby cały ruch pozostał w Twojej infrastrukturze, uruchom serwer TURN. Działa każdy standardowy serwer TURN, a coturn to częsty wybór w systemie Linux.

  1. Zainstaluj coturn na serwerze przekaźnika.
sudo apt install coturn
  1. Edytuj /etc/turnserver.conf i ustaw co najmniej poniższe wartości. Zastąp realm, dane logowania i publiczny adres IP własnymi.
listening-port=443
fingerprint
lt-cred-mech
user=myuser:mypassword
realm=example.com
external-ip=PUBLIC_IP
  1. Jeśli /etc/default/coturn zawiera wiersz TURNSERVER_ENABLED, odkomentuj go. Następnie włącz i uruchom usługę.
sudo systemctl enable --now coturn
sudo systemctl restart coturn
  1. Otwórz na zaporze przekaźnika port nasłuchu dla TCP i UDP oraz zakres przekaźnika UDP od 49152 do 65535.
  2. Przekaż przekaźnik urządzeniom: uruchom instalator ponownie z czterema wartościami TURN albo edytuj blok turnservers w ustawieniach sieci. Użyj protokołu turn-tls, jeśli Twój przekaźnik obsługuje TLS.

Zarządzanie serwerem w systemie Linux

sudo systemctl status hopsignal
sudo systemctl restart hopsignal
sudo systemctl stop hopsignal
tail -f /home/hopsignal/hs.log

Aby zaktualizować serwer, zatrzymaj usługę i uruchom polecenie instalacji ponownie. Pobierze ono aktualny plik binarny i zapisze usługę na nowo.

Aby usunąć serwer wraz z usługą i wpisami crona:

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

Rozwiązywanie problemów

  • ID pozostaje na Generating albo aplikacja ciągle próbuje połączyć się z siecią: urządzenie nie może dotrzeć do serwera sygnalizacyjnego. Sprawdź, czy usługa działa, czy port 80 jest otwarty i czy adres w ustawieniach sieci jest poprawny.
  • Urządzenia łączą się w sieci LAN, ale nie z zewnątrz: przekaźnik jest nieosiągalny. Z domyślnym przekaźnikiem urządzenia potrzebują wychodzącego dostępu do turn.hoptodesk.com na porcie 443. Z własnym przekaźnikiem sprawdź jego reguły zapory i dane logowania.
  • Aplikacja ignoruje api.json: upewnij się, że plik to poprawny JSON bez końcowych przecinków, że leży we właściwym folderze i że uruchomiono HopToDesk ponownie. Log aplikacji zawiera wiersz Loaded local api.json, gdy plik został wczytany.
  • Port 82 to port federacji do łączenia kilku własnych serwerów sygnalizacyjnych. Trzymaj go zamknięty dla internetu.
  • Serwer sygnalizacyjny nie przechowuje danych sesji. Jeśli coś wygląda na zablokowane, zrestartuj usługę. Urządzenia same łączą się ponownie w ciągu około minuty.

Hosting u dostawcy zewnętrznego

Wolisz platformę zarządzaną? Wdróż sieć HopToDesk w Cloudflare lub AWS.

HopToDesk w Cloudflare

  1. Zaloguj się na konto Cloudflare i przejdź do strefy domeny, której chcesz użyć.
  2. Utwórz nowy worker o nazwie pliku index.js.
  3. Skopiuj kod workera do index.js, a następnie zapisz i wdróż workera. Kod workera
  4. Adres URL Twojego Cloudflare Workera jest gotowy. Użyj go jako wartości "rendezvousssl". api.json Własne API

HopToDesk w AWS

  1. Załóż konto AWS, jeśli jeszcze go nie masz.
  2. Subskrybuj ofertę HopToDesk w AWS Marketplace. AWS Marketplace
  3. Gdy Amazon udostępni usługę, w razie potrzeby skonfiguruj ją i uruchom instancję.
  4. Twoja sieć HopToDesk działa teraz w AWS. Ustaw jej adres https jako wartość "rendezvousssl". api.json Własne API

Uwaga: Worker wymaga płatnego planu Cloudflare od 5 $ miesięcznie, ponieważ korzysta z Durable Objects. Cennik Durable Objects

AWS Marketplace i logo AWS Marketplace są znakami towarowymi Amazon.com, Inc. lub jej podmiotów zależnych.
Cloudflare, logo Cloudflare i Cloudflare Workers są znakami towarowymi lub zastrzeżonymi znakami towarowymi Cloudflare, Inc. w Stanach Zjednoczonych i innych jurysdykcjach.