RustDesk 自建伺服器部署和使用教程

米开朗基杨發表於2024-05-11

RustDesk 是一個強大的開源遠端桌面軟體,是中國開發者的作品,它使用 Rust 程式語言構建,提供安全、高效、跨平臺的遠端訪問體驗。可以說是目前全球最火的開源遠端桌面軟體了,GitHub 星星數量達到了驚人的 64k!

與 TeamViewer、ToDesk 等專有遠端訪問解決方案相比,RustDesk 作為一個開源軟體,提供了幾個顯著的優勢:

  1. RustDesk 完全免費使用,沒有任何隱藏費用或訂閱計劃。
  2. 由於其開源特性,RustDesk 的程式碼是透明的,可以由社群審計,從而提供更高的安全性和可信度。
  3. RustDesk 使用 Rust 語言開發,從根本上確保了程式的記憶體安全和高效能。

然而現在有一個壞訊息:由於被詐騙分子頻繁使用,該專案現已暫停國內服務。

作者原話:

為了進一步應對詐騙,我們暫時決定停止中國地區的服務,如果使用者現在透過公共伺服器訪問國內主機,將會收到被禁止的訊息。

官網首頁也掛出了警告資訊:

作者在開源中國上釋出了公告,主要是因為詐騙分子透過簡訊連結的方式讓老人下載 App,然後實施手機銀行的指揮操控,受害者被騙金額巨大,對家庭造成極大的損害。

為了進一步應對詐騙,他們暫時決定停止中國地區的服務,如果使用者現在透過公共伺服器訪問國內主機,將會收到被禁止的訊息

只能說很無奈。

好在 RustDesk 有一個很關鍵的特性就是它允許使用者自建伺服器,從而在使用 RustDesk 時獲得更多的控制權和隱私保護。所謂自建伺服器,也就是自建 ID Server 和 Relay Server,至於什麼是 ID Server 和 Relay Server,下面我們會給大家詳細介紹,並提供一步步的指南來幫助你設定自己的 ID Server 和 Relay Server。

RustDesk 架構概述

要理解自建伺服器的重要性,首先需要對 RustDesk 的架構有一個全面的瞭解。RustDesk 採用了經典的客戶端-伺服器模型,其中涉及三個主要元件:RustDesk 客戶端、RustDesk 伺服器和 ID Server。

  1. 客戶端-伺服器模型

    在 RustDesk 的架構中,客戶端是執行在使用者裝置 (如膝上型電腦、平板電腦或智慧手機) 上的應用程式。它提供了一個圖形介面,允許使用者發起遠端訪問請求並與遠端計算機進行互動。另一方面,伺服器元件執行在要遠端訪問的目標計算機上。它負責監聽來自客戶端的連線請求,並在建立連線後向客戶端傳送螢幕更新和接收輸入事件。

  2. ID Server 的角色

    ID Server 在 RustDesk 的生態系統中扮演著重要的角色。它的主要職責是促進客戶端和伺服器之間的初始連線建立。當 RustDesk 伺服器啟動時,它會連線到 ID Server 並註冊自己,提供如伺服器 ID 和公網 IP 地址等資訊。類似地,當客戶端想要連線到特定的 RustDesk 伺服器時,它會向 ID Server 查詢目標伺服器的連線資訊。

    ID Server 維護了一個已註冊的 RustDesk 伺服器目錄,並充當客戶端和伺服器之間的中介,幫助它們建立直接的點對點 (P2P) 連線。一旦客戶端從 ID Server 獲得了伺服器的連線資訊,它就可以嘗試直接連線到伺服器,而無需進一步透過 ID Server 中繼資料。

  3. Relay Server 的角色

    在某些網路環境下,RustDesk 客戶端和伺服器可能無法直接建立 P2P 連線,例如當它們位於 NAT (網路地址轉換) 或防火牆後時。為了克服這一挑戰,RustDesk 引入了 Relay Server。

    如果客戶端無法直接連線到伺服器,它會向 ID Server 請求一個 Relay Server。然後,客戶端和伺服器都連線到指定的 Relay Server,並透過它來中繼所有的網路通訊。Relay Server 在這種情況下充當客戶端和伺服器之間的橋樑,轉發來自一方的資料包到另一方。

    值得注意的是,即使透過 Relay Server 進行通訊,RustDesk 也會維護端到端加密,確保中繼伺服器無法訪問明文資料。Relay Server 只是盲目地轉發加密的資料包,而不能檢視或修改其內容。

自建伺服器

RustDesk ID Server 與 Relay Server 目前支援多種方式部署,可以在 Linux 和 Windows 中使用二進位制直接部署,也可以使用 Docker 部署,具體可參考 RustDesk 的官方文件

如果您不想折騰,或者不懂什麼 Docker 之類的,那也沒關係,Sealos 應用商店提供了一鍵部署的應用模板,點一下滑鼠即可完成部署,非常絲滑。

由於 RustDesk 是使用 Rust 編寫的,所以非常高效,併發也很強,實際測試下來,1C1G 的配置就可以給一整個小型團隊使用了。Sealos 的應用模板預設給了最小配置 0.2C128M,個人使用完全足夠了。如果您需要給多個人使用,可以隨時調整配置,因為 Sealos 是按量付費的,你想怎麼調就怎麼調,想什麼時候調就什麼時候調,非常酸爽。

我們再來看看大家比較關心的價格:

預設最小配置每天只需要 0.12 元,根據按量付費的機制我們還可以更省錢。所謂按量付費,就是用多少付多少,這裡的 “用多少” 指的是你用了多少 CPU、記憶體、儲存等資源,那麼如果我不用的時候把它暫停,用的時候再啟動,每天只需要 0.01 元 (因為暫停狀態下不佔用 CPU 和記憶體,只佔用儲存)。

如果你是整個團隊在使用,不想頻繁的暫停和啟動,也可以透過別的辦法來省錢,比如設定一個定時任務,白天開啟,夜裡暫停,也可以省一半的錢。

再加上外網埠的費用,每天預計花費在 0.1~0.2 元之間

好,說完了價格,如果你心動了,或者覺得可以一試,那麼接著往下看教程。

直接開啟 RustDesk 應用模板,然後點選右上角的 “去 Sealos 部署”。

如果您是第一次使用 Sealos,則需要註冊登入 Sealos 公有云賬號,登入之後會立即跳轉到模板的部署頁面。

跳轉進來之後,你會看到有一個變數 ENCRYPTED_ONLY,你可以選擇 1 或者 0。為了隱私和安全,強烈建議選擇 1,這樣就開啟了強制加密,只允許建立加密連線,不容易被別人白嫖

設定完成後,點選右上角的 “部署應用” 開始部署,部署完成後,直接點選應用的 “詳情” 進入該應用的詳情頁面。

點選 “日誌” 按鈕檢視日誌:

日誌中可以找到兩個關鍵資訊:外網域名公鑰。後面需要用到。

在 “應用商店”-> “我的應用” 中找到 RustDesk,點進去:

在 Others 中分別找到 21116 埠和 21117 埠對映的外網埠,21116 是 ID Server 的埠,21117 是 Relay Server 的埠。例如我這裡的 ID Server 外網埠就是 30032,Relay Server 外網埠是 30325。

客戶端設定

分別在控制端和被控制端的電腦安裝 RustDesk,下載地址:https://rustdesk.com/zh/

安裝完成後,開啟 RustDesk,點選上面的三個點,進入配置:

找到網路配置:

先解鎖網路設定,然後在 ID 伺服器中輸入你的 <外網域名>:<ID Server 外網埠>,在中繼伺服器中輸入你的 <外網域名>:<Relay Server 外網埠>,在 Key 中輸入你的公鑰。

例如我這裡的 ID 伺服器就是 brffleiu.bja.sealos.run:30032,中繼伺服器是 brffleiu.bja.sealos.run:30325,Key 是 LNS+q8OA02k7CH+TbzO1EzikNYsFS52YiMNi3pmz56k=

最後點選 “應用” 就可以了。

⚠️ 注意:控制端和被控制端都設定使用相同的 ID 伺服器、中繼伺服器和 Key,才能正常進行遠端控制。

總結

本文深入探討了 RustDesk 的架構、自建 RustDesk 伺服器(ID Server 和 Relay Server)的好處以及具體的自建步驟,雖然需要一點額外的工作,但收穫了很多好處,比如安全性和隱私性。

隨著遠端工作和協作變得越來越普遍,擁有一個安全、高效、靈活的遠端訪問解決方案變得至關重要。透過自建 RustDesk ID Server 和 Relay Server,你可以獲得一個量身定製的解決方案,以滿足您獨特的需求。

相關文章