Files
doc.rustdesk.com/content/self-host/rustdesk-server-pro/relay/_index.zh-tw.md
rustdesk 56cfd26e35 seo/geo
2026-03-20 18:42:55 +08:00

7.2 KiB
Raw Blame History

title, weight, description, keywords
title weight description keywords
配置中繼伺服器 17 RustDesk 的配置中繼伺服器文檔,提供安裝、設定、部署與疑難排解指南。
rustdesk relay server
rustdesk hbbr
rustdesk geolocation relay
rustdesk additional relay
rustdesk server pro relay

快速回答

當單一機房或單一 Relay 無法滿足延遲、地域覆蓋或流量分擔需求時,您就需要額外的 Relay 伺服器。應在主控台與基礎部署穩定後再設定它們。

關鍵重點

  • 把額外 Relay 部署在關鍵地區或使用者附近
  • 在 Web 主控台中註冊並驗證 Relay 設定
  • 在切換正式流量前先測試路由效果

RustDesk Pro - 使用docker安裝具有地理位置的附加中繼伺服器

{{% notice note %}} 簡單安裝會在同一台機器上隱式創建一個中繼伺服器(hbbr進程),您無需顯式指定中繼伺服器。

如果您想在另一台機器上顯式創建附加中繼伺服器,請按照OSS安裝運行hbbr。您可以在rustdesk-server-linux-amd64.tar.gzrustdesk-server-hbbr_<version>-<arch>.debrustdesk-server-windows-x86_64.tar.gzdockersudo docker run ... rustdesk/rustdesk-server-pro hbbr)中找到hbbr

hbbr不需要許可證,與開源版本相同。 {{% /notice %}}

您可以在全球運行多個中繼伺服器,並利用地理位置自動使用最近的中繼伺服器,從而在連接遠程計算機時獲得更快的體驗。hbbs每隔幾秒鐘自動檢查這些中繼伺服器是否在線,它只選擇在線的中繼伺服器。

{{% notice note %}} 已知問題:https://github.com/rustdesk/rustdesk/discussions/7934 {{% /notice %}}

您需要私鑰對id_ed25519id_ed25519.pub

安裝步驟

1 - 如果已安裝docker通過SSH連接到您的伺服器並為hbbr創建卷

# docker volume create hbbr

卷hbbr應該位於/var/lib/docker/volumes/hbbr/_data

2 - 將私鑰對複製到卷位置在本例中我們將使用SCP複製文件。

命令語法為scp <路徑/文件名> 用戶名@伺服器:</目標/路徑>

# scp id_ed25519 root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data
# scp id_ed25519.pub root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data

3 - 使用先前創建的卷部署hbbr容器。該卷包含運行私有中繼伺服器所需的私鑰對。

# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server hbbr -k _

4 - 檢查運行日誌以驗證hbbr正在使用您的密鑰對運行

# docker logs hbbr

INFO [src/common.rs:121] **Private key comes from id_ed25519**
NFO [src/relay_server.rs:581] Key: XXXXXXXXXXXXXXXXXXXXX
INFO [src/relay_server.rs:60] #blacklist(blacklist.txt): 0
INFO [src/relay_server.rs:75] #blocklist(blocklist.txt): 0
INFO [src/relay_server.rs:81] Listening on tcp :21117

根據您的作業系統,您可能希望使用防火牆阻止/允許IP。

在我們的例子中運行Ubuntu時我們希望允許任何TCP連接到端口21117和21119。

# sudo ufw allow proto tcp from any to any port 21117,21119

啟用防火牆

# sudo ufw enable

檢查狀態

# ufw status

Status: active

To                         Action      From
--                         ------      ----
21117,21119/tcp            ALLOW       Anywhere
21117,21119/tcp (v6)       ALLOW       Anywhere (v6)

使用Web控制台為地理位置配置RustDesk Pro

註冊並下載GeoLite2 City資料庫檔案

要使用地理位置hbbs需要訪問MaxMind GeoLite2 City資料庫。該資料庫是免費的您可以註冊下載檔案並獲取API密鑰。

首先通過訪問網站創建賬戶(如果您還沒有)。 轉到Download Databases並下載GeoLite2 City選擇gzip檔案解壓縮後應該有mmdb檔案。

image

如果您使用安裝腳本在Linux機器上安裝了RustDesk Prommdb檔案需要移動到/var/lib/rustdesk-server/

對於Docker安裝檔案應該在部署容器時映射到/root的卷中。

獲取API密鑰以自動化流程 - Linux伺服器

您需要定期更新此檔案我們可以使用cronjob來執行。您需要一個API密鑰來訪問下載鏈接這是免費的。

轉到Manage License Keys並生成新的許可證密鑰。
image
image

您可以通過幾種方式自動化下載過程但您可以將以下命令添加到您的crontab中將{您的訪問密鑰}替換為您從上一步獲得的API密鑰。

/usr/bin/curl -L --silent 'https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key={您的訪問密鑰}&suffix=tar.gz' | /bin/tar -C '/var/lib/rustdesk-server/' -xvz --keep-newer-files --strip-components=1 --wildcards '*GeoLite2-City.mmdb'

在RustDesk Pro Web控制台中更改設置

將您的中繼伺服器IP地址或DNS名稱從版本1.1.11開始支持DNS添加到Relay Servers不需要端口,顯式使用21117端口。
image

通過添加伺服器IP地址和伺服器所在位置的坐標來添加地理覆蓋。
image

點擊Reload Geo,您的列表應該類似於此。
image

要確認結果,在點擊Reload Geo時檢查您的hbbs日誌您應該看到顯示中繼伺服器IP地址及其坐標的訊息。

如果您在Linux機器上運行RustDesk Pro請使用命令RUST_LOG=debug ./hbbs查看日誌。如果您在Docker容器上運行請使用docker logs hbbs

RUST_LOG=debug ./hbbs

INFO [src/common.rs:130] GEOIP_FILE: ./GeoLite2-City.mmdb
INFO [src/common.rs:159] override 1xx.xxx.xxx.x7: -1.xx 5x.xxx
[src/common.rs:159] override 1xx.xxx.xxx.xx8: -3.xxx 5x.xxxx
[src/common.rs:159] override 7xx.xxx.xxxx.xx1: 6.xxx 5x.xxxx
GEOIP_FILE loaded, #overrides 3
INFO [src/common.rs:119] relay-servers=["1xx.xxx.xxx.x7", "1xx.xxx.xxx.xx8", "7xx.xxx.xxx.xx1"]
NFO [src/rendezvous_server.rs:1467] parsed relay servers: [("1xx.xxxx.xxx.xx7", Some((-1x, xxx))), ("1xx.xxx.xxx.xx8", Some((-3x, xxx))), ("7xx.xxx.xxx.xx1", Some((6x, xxx)))]

您還可以直接在hbbr實例上確認中繼請求只需檢查容器日誌即可。

# docker logs hbbr

INFO [src/relay_server.rs:436] Relayrequest 0593e64e-4fe8-4a59-a94f-b3420ab043eb from [::ffff:100.100.123.233]:52038 got paired
INFO [src/relay_server.rs:442] Both are raw