doc.rustdesk.com/content/self-host/install/_index.zh-tw.md
2022-05-18 12:06:22 +08:00

5.7 KiB
Raw Blame History

title weight
安裝 10

如何自建中繼


步驟1: 下載服務器端軟件程序

下載或者使用dockerrustdesk/rustdesk-server

提供版本:

  • Linux
  • Windows

以下針對Linux版本做使用說明。

有兩個可執行文件和一個文件夾:

  • hbbs - RustDesk ID註冊服務器
  • hbbr - RustDesk 中繼服務器

Linux版本在Centos7構建在 Centos7/8Ubuntu 18/20上測試過Debian系列的發行版本應該都沒有問題。如果有其他發行版本需求請聯繫我。

服務器要求

硬件要求很低最低配置的雲服務器就可以了CPU和內存要求都是最小的。關於網絡大小如果TCP打洞直連失敗就要耗費中繼流量一個中繼連接的流量在30k-3M每秒之間1920x1080屏幕取決於清晰度設置和畫面變化如果只是辦公需求平均在100K。

步驟2: 在服務器上運行 hbbs 和 hbbr

在服務器上運行 hbbs/hbbr (Centos 或 Ubuntu)。建議使用pm2 管理服務。

./hbbs -r <hbbr運行所在主機的地址[:port]> 
./hbbr 

或者使用 pm2 運行 hbbs/hbbr

pm2 start hbbs -- -r <relay-server-ip[:port]> 
pm2 start hbbr

{{% notice note %}}

pm2 需要 nodejs v16+,如果你運行 pm2 失敗(例如在 pm2 list 中看不到 hbbs/hbbr請從 https://nodejs.org 下載並安裝 LTS 版本的 nodejs。如果你想讓 hbbs/hbbr 在重啟後自動運行,請查看 pm2 savepm2 startup。更多關於 pm2。另一個不錯的日誌工具是 pm2-logrotate

hhbs的-r參數不是必須的,他只是方便你不用在客戶端指定中繼服務器。客戶端指定的中繼服務器優先級高於這個。如果RustDesk被控客戶端版本>=1.1.9, 客戶端也不需要製定終極服務器地址,如果中繼服務器沒有跑在不同的服務器或者端口上。

{{% /notice %}}

默認情況下hbbs 監聽21115(tcp), 21116(tcp/udp), 21118(tcp)hbbr 監聽21117(tcp), 21119(tcp)。務必在防火牆開啟這幾個端口, 請注意21116同時要開啟TCP和UDP。其中21115是hbbs用作NAT類型測試21116/UDP是hbbs用作ID註冊與心跳服務21116/TCP是hbbs用作TCP打洞與連接服務21117是hbbr用作中繼服務, 21118和21119是為了支持網頁客戶端。如果您不需要網頁客戶端2111821119支持對應端口可以不開。

  • TCP(21115, 21116, 21117, 21118, 21119)
  • UDP(21116)

如果你想選擇自己的端口,使用 “-h” 選項查看幫助。

Docker示範

Linux/amd64
sudo docker image pull rustdesk/rustdesk-server
sudo docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server hbbs -r <relay-server-ip[:port]> 
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server hbbr 
Linux/arm64v8
sudo docker image pull rustdesk/rustdesk-server:latest-arm64v8
sudo docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server:latest-arm64v8 hbbs -r <relay-server-ip[:port]> 
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server:latest-arm64v8 hbbr 

{{% notice note %}} 據我所知,--net=host 僅適用於 Linux它讓 hbbs/hbbr 可以看到對方真實的ip, 而不是固定的容器ip (172.17.0.1)。 如果--net=host運行正常-p選項就不起作用了, 可以去掉。

**請去掉 --net=host如果您在非Linux系統上遇到無法連接的問題 {{% /notice %}}

步驟3: 在客戶端設置 hbbs/hbbr 地址

點擊 ID 右側的菜單按鈕如下,選擇“ ID/中繼服務器”。

在 ID 服務器輸入框中(被控端+主控端)輸入 hbbs 主機或 ip 地址另外兩個地址可以不填RustDesk會自動推導如果沒有特別設定中繼服務器指的是hbbr21116端口。

例如:

hbbs.yourhost.com

或者

hbbs.yourhost.com:21116

把配置放在可執行文件名里 (Windows only)

rustdesk.exe 修改為 rustdesk-host=<host-ip-or-name>,key=<public-key-string>.exe, 例如: rustdesk-host=192.168.1.137,key=xfdsfsd32=32.exe你可以在About窗口看到配置結果如下圖所示。

{{% notice note %}} hostkey 都需要添加,缺少一個就不好使。 {{% /notice %}}

Menu About Page

Key


同上個版本不同本版本中的key是強制的但是不用你自己設置。hbbs在第一次運行時會自動產生一對加密私鑰和公鑰分別位於運行目錄下的id_ed25519id_ed25519.pub文件中),其主要用途是為了通訊加密。

如果您在上一步驟中沒有填寫Key:(公鑰文件id_ed25519.pub中的內容),不影響連接,但是連接無法加密。

cat ./id_ed25519.pub

如果您禁止沒有key的用戶建立非加密連接請在運行hbbs和hbbr的時候添加-k _ 參數,例如:

./hbbs -r <relay-server-ip[:port]> -k _
./hbbr -k _

如果要更改key請刪除 id_ed25519id_ed25519.pub 文件並重新啟動 hbbs/hbbrhbbs將會產生新的密鑰對。