本地部署
在本地或雲端自架您自己的 HopToDesk 網路。
建立您自己的網路
建立您自己的 HopToDesk 網路。相容於 Ubuntu 18 - 24 與 Windows。
安裝教學
逐步設定指南
安裝程式做了什麼、如何檢查,以及如何把裝置接入您自己的網路。
運作方式
HopToDesk 使用兩種伺服器。信令伺服器協助裝置互相找到彼此並建立工作階段。TURN 中繼只在兩台裝置無法直接連線時才傳送工作階段流量。
工作階段採用端對端加密,因此任何一台伺服器都無法讀取您的螢幕、檔案或聊天內容。信令伺服器只看得到裝置 ID 和連線請求。
本頁的安裝程式負責建置信令伺服器。中繼流量預設經由 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 資料夾。
- 建立一個名為 hopsignal 的 systemd 服務,並在每次開機時啟動。
- 新增一個 cron 看門狗:服務停止回應時自動重新啟動,記錄檔超過 100 MB 時自動輪替。
- 當 ufw 啟用時,在 ufw 中開放 TCP 80 連接埠。
Windows 上的第 1 步:執行信令伺服器
- 把本頁頂端的 OS 切換鈕切到 Windows 並點選 Download。您會得到一個名為 hopsignal.exe 的檔案。
- 建立一個資料夾,例如 C:\hopsignal,並把 hopsignal.exe 移入其中。
- 在同一個資料夾中建立一個名為 fedlist.txt 的空白文字檔。
- Windows 版本還需要 PEM 格式的 TLS 憑證及其私鑰。任何一組都可以,包括自我簽署的。把它們以 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 區塊就是您的信令伺服器。當透過 TLS 連到伺服器時,例如 Cloudflare Worker 或 AWS 部署,請使用 rendezvousssl 鍵取代 rendezvous。turnservers 清單包含一個或多個中繼。一般連線把通訊協定設為 turn,TLS 連線設為 turn-tls。版本鍵保持原樣即可。
把這份文件交給裝置有三種方式。請選擇適合您環境的一種。
方式 A:在每台裝置上放置 api.json 檔案
把該文件儲存為名為 api.json 的檔案,放到 HopToDesk 的設定資料夾中,然後重新啟動 HopToDesk。應用程式會在啟動時讀取該檔案,不再連線到 HopToDesk API。
| 平台 | 路徑 |
|---|---|
| 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,以及 49152 到 65535 的 UDP 中繼範圍。
- 把中繼交給裝置:帶上四個 TURN 值重新執行安裝程式,或編輯網路設定中的 turnservers 區塊。如果您的中繼終止 TLS,通訊協定請使用 turn-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
疑難排解
- ID 一直停在 Generating,或應用程式一直嘗試連線到網路:裝置無法連到信令伺服器。請檢查服務是否在執行、80 連接埠是否開放,以及網路設定中的位址是否正確。
- 裝置在區域網路內可以連線,但從外部無法連線:中繼無法連到。使用預設中繼時,裝置需要能透過 443 連接埠對外連到 turn.hoptodesk.com。使用自有中繼時,請檢查其防火牆規則和憑證。
- 應用程式忽略了 api.json:請確認檔案是有效的 JSON 且沒有多餘的逗號、位於正確的資料夾,並且您已重新啟動 HopToDesk。檔案被讀取後,應用程式記錄檔會出現 Loaded local api.json 這一行。
- 82 連接埠是用來串連多台自有信令伺服器的聯邦連接埠。請勿對網際網路開放。
- 信令伺服器不儲存任何工作階段資料。如果看起來卡住了,重新啟動服務即可。裝置會在大約一分鐘內自行重新連線。
第三方託管
偏好託管平台嗎?您也可以將 HopToDesk 網路部署到 Cloudflare 或 AWS。

Cloudflare 上的 HopToDesk
- 登入您的 Cloudflare 帳戶,並前往要使用的網域區域。
- 建立一個檔名為 index.js 的新 Worker。
- 將 Worker 程式碼複製到 index.js,然後儲存並部署 Worker。 Worker 程式碼
- 您的 Cloudflare Worker 網址已就緒。請將其用作 "rendezvousssl" 的值。 api.json 自訂 API

AWS 上的 HopToDesk
- 如果您還沒有 AWS 帳戶,請先註冊一個。
- 在 AWS Marketplace 的 HopToDesk 頁面訂閱。 AWS Marketplace
- 在 Amazon 完成服務佈建後,視需要設定並啟動執行個體。
- 您的 HopToDesk 網路現已部署於 AWS。請將其 https 網址設為 "rendezvousssl" 的值。 api.json 自訂 API
注意: 此 Worker 需要每月 5 美元起的 Cloudflare 付費方案,因為它使用 Durable Objects。 Durable Objects 價格
AWS Marketplace 與 AWS Marketplace 標誌為 Amazon.com, Inc. 或其關係企業的商標。Cloudflare、Cloudflare 標誌與 Cloudflare Workers 為 Cloudflare, Inc. 在美國及其他司法管轄區的商標及/或註冊商標。