命令列工具
Devolutions/IronRDP avatar
Devolutions/IronRDP

IronRDP:模組化的 Rust 遠端桌面協定實作

Microsoft 遠端桌面協定 (RDP) 的 Rust 實作。

3,176 個 Star273 個 ForkRustApache-2.0
GitHub

秒懂

它是什麼?
IronRDP 是一組可組合的 Rust crate,用於實作微軟遠端桌面協定,其核心是無 I/O 的,傳輸和執行時由你掌控。 聚焦本專案的實際功能、技術入口、部署條件、資料流、版本變化與授權邊界,並依官方 README 所列能力判斷適用工作情境和不適合的替代用途。
適合誰用?
IronRDP 是一個從頭開始的 Rust 實作的 RDP,它將協定邏輯與 I/O 分離,提供用戶端和伺服器骨架,並透過綁定支援 Web 和 .NET。 本專案核對項目1應依 README 的實際入口和版本標籤保存輸出,並以專案名稱、命令或檔案路徑標記,避免把未說明的行為當成保證。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 Rust(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

devolutions-ironrdp-deep-analysis|協定套件而非單一用戶端

devolutions-ironrdp-deep-analysis|協定套件而非單一用戶端 的專案脈絡:IronRDP 是一組 Rust crate 的集合,共同實作微軟遠端桌面協定。核心協定 crate 本身不執行任何 I/O;它們是狀態機,負責編解碼 PDU 和管理連線與會話狀態。這種無 I/O 設計意味著你可以從任何偏好的執行時驅動它們,無論是阻塞執行緒、tokio、futures 還是自訂事件迴圈。核心 crate 相容 no_std,並持續進行模糊測試,這是對解析遠端輸入這一安全敏感面的有意選擇。IronRDP 不強加特定的傳輸或執行緒模型,而是留給你:你提供 socket、計時器和排程,協定邏輯由 crate 套件處理。

devolutions-ironrdp-deep-analysis|協定套件而非單一用戶端:IronRDP 的 README 與這一節直接相關;核對時請保留 master 分支、Devolutions/IronRDP 路徑與實際輸出,避免把基線文章的概括當成當前版本承諾。

devolutions-ironrdp-deep-analysis|協定、圖形與虛擬通道

devolutions-ironrdp-deep-analysis|協定、圖形與虛擬通道 的專案脈絡:功能列表相當廣泛。在協定側,IronRDP 實作了 RDP 連線序列,包括 X.224 協商、MCS、能力交換、授權和重新啟動。安全性透過增強型 RDP 安全(TLS 1.2 和 1.3)、基於 CredSSP 的網路層級身分驗證(支援 NTLM 和 Kerberos)、KDC 代理和 RDCleanPath 支援以及終端服務閘道傳輸來提供。圖形方面,crate 套件包含未壓縮原始點陣圖、交錯 RLE、RDP 6.0 點陣圖壓縮和 RemoteFX 的解碼器。伺服器端編碼支援 RDP 6.0 壓縮、RemoteFX、可選 NSCodec 和可選 QOI/QOI+zstd。虛擬通道支援包括靜態和動態通道、剪貼簿重新導向、音訊輸出、裝置重新導向、顯示控製等。還有 Windows DVC COM 外掛程式載入器和用於橋接外部程序的具名管道代理。這不是單一功能;它是位於功能旗標之後的獨立 crate 的集合,因此你可以只包含應用程式所需的部分。

devolutions-ironrdp-deep-analysis|協定、圖形與虛擬通道:IronRDP 的 README 與這一節直接相關;核對時請保留 master 分支、Devolutions/IronRDP 路徑與實際輸出,避免把基線文章的概括當成當前版本承諾。

devolutions-ironrdp-deep-analysis|兩個開箱即用的二進位程式

devolutions-ironrdp-deep-analysis|兩個開箱即用的二進位程式 的專案脈絡:該倉庫提供兩個指令列二進位程式,它們作為預建置歸檔附加到 GitHub 發布中,也可以透過 Cargo 安裝。ironrdp-viewer 是一個使用非同步 I/O 和軟體渲染的視窗化 RDP 用戶端。你可以使用主機名稱和憑證啟動它,或者使用 --rdp-file 指向 .rdp 檔案。日誌由 IRONRDP_LOG 環境變數控製。ironrdp-agent 是一個基於守護程式的 CLI,專為指令碼和自動化設計。你使用 daemon-start 啟動守護程式,然後發出如 connect 和 screenshot 的短生命週期指令。守護程式可以從覆蓋檔案預載入憑證,以將機密資訊與 IPC 呼叫方隔離。兩個二進位程式都連結原生音訊,因此 Linux 建置需要 ALSA 開發標頭檔,Windows 建置需要 NASM。README 提到檢視器支援特定的 .rdp 屬性和 TLS 金鑰日誌,詳情請參閱檢視器自己的 README。

devolutions-ironrdp-deep-analysis|兩個開箱即用的二進位程式:IronRDP 的 README 與這一節直接相關;核對時請保留 master 分支、Devolutions/IronRDP 路徑與實際輸出,避免把基線文章的概括當成當前版本承諾。

devolutions-ironrdp-deep-analysis|作為函式庫使用這些 crate

devolutions-ironrdp-deep-analysis|作為函式庫使用這些 crate 的專案脈絡:對於函式庫使用,元 crate ironrdp 在功能旗標後面暴露子系統 crate。例如,新增帶 features = ["connector", "session", "graphics"] 的 ironrdp 可提供連線狀態機、工作階段管理和影像解碼。每個功能對應到一個單獨的 crate,因此你也可以直接依賴 ironrdp-pdu、ironrdp-connector、ironrdp-session。倉庫包含兩個可執行的範例:一個螢幕擷取工具,使用阻塞 I/O 連線、解碼桌面並寫入 PNG;以及一個基於 ironrdp-server 的最小 RDP 伺服器,綁定到本機位址。README 指向 docs.rs 取得 API 檔案。範例依賴片段中引用了 0.17 版本,但倉庫中繼資料並未確認這是目前版本。

devolutions-ironrdp-deep-analysis|作為函式庫使用這些 crate:IronRDP 的 README 與這一節直接相關;核對時請保留 master 分支、Devolutions/IronRDP 路徑與實際輸出,避免把基線文章的概括當成當前版本承諾。

devolutions-ironrdp-deep-analysis|安全性與正確性實務

devolutions-ironrdp-deep-analysis|安全性與正確性實務 的專案脈絡:README 明確將解析視為敵對輸入面。每個核心 crate 都進行模糊測試,unsafe 程式碼受到嚴格 lint,工作區強製執行嚴格的正確性 lint 策略。專案也遵循保守的最低 Rust 版本策略:MSRV 是至少六個月前發布的穩定版 Rust,以 Debian stable-backports 和 Fedora stable 中可用的版本為界。rust-toolchain.toml 中固定的工具鏈既是專案工具鏈,也是 CI 驗證的 MSRV。這些細節是作為策略呈現的,而不是安全性保證;README 除了描述這些實務外,沒有做出任何安全性宣告。

devolutions-ironrdp-deep-analysis|安全性與正確性實務:IronRDP 的 README 與這一節直接相關;核對時請保留 master 分支、Devolutions/IronRDP 路徑與實際輸出,避免把基線文章的概括當成當前版本承諾。

devolutions-ironrdp-deep-analysis|已知部署

devolutions-ironrdp-deep-analysis|已知部署 的專案脈絡:多個專案被列為 IronRDP 的使用者。Devolutions Gateway 將其用於基於瀏覽器和原生的 RDP 用戶端存取。Cloudflare Access 被列為用於基於瀏覽器的 RDP,並連結到 Cloudflare 部落格文章。Teleport 使用它進行遠端桌面 Web 存取。Lamco RDP Server 是適用於 Linux 的 Wayland 原生 RDP 伺服器。MacRDP 是適用於 macOS 的原生 RDP 伺服器。qemu-rdp 是用於 QEMU 顯示的 RDP 伺服器。README 還提到了一個不斷成長的社群專案集合。該列表是對已知整合的陳述,並非背書或生產就緒性的度量。

devolutions-ironrdp-deep-analysis|已知部署:IronRDP 的 README 與這一節直接相關;核對時請保留 master 分支、Devolutions/IronRDP 路徑與實際輸出,避免把基線文章的概括當成當前版本承諾。

devolutions-ironrdp-deep-analysis|開發工作流程與貢獻

devolutions-ironrdp-deep-analysis|開發工作流程與貢獻 的專案脈絡:貢獻指南指向 ARCHITECTURE.md 和 STYLE.md。專案使用 cargo xtask 約定進行自動化。執行 cargo xtask --help 列出可用任務,cargo xtask bootstrap 安裝開發要求,cargo xtask ci 執行除 FFI 和 .NET 檢查外的所有 CI 檢查,這些檢查有自己的 cargo xtask ffi 指令。建置工作區需要 Linux 上的 ALSA 開發標頭檔、Windows 上的 NASM;Web 用戶端還需要 Node.js >= 24 LTS,FFI 綁定需要 .NET SDK。README 還鼓勵在深思熟慮後使用 AI 輔助開發,並指向一個用於 Windows 協定(幫助 AI 代理導覽 Microsoft Open Specifications 語料庫)的技能。Bug 報告提交到問題追蹤器,討論在 Matrix 房間進行。

devolutions-ironrdp-deep-analysis|開發工作流程與貢獻:IronRDP 的 README 與這一節直接相關;核對時請保留 master 分支、Devolutions/IronRDP 路徑與實際輸出,避免把基線文章的概括當成當前版本承諾。

編輯結論

IronRDP 是一個從頭開始的 Rust 實作的 RDP,它將協定邏輯與 I/O 分離,提供用戶端和伺服器骨架,並透過綁定支援 Web 和 .NET。 本專案核對項目1應依 README 的實際入口和版本標籤保存輸出,並以專案名稱、命令或檔案路徑標記,避免把未說明的行為當成保證。

官方來源

  1. Official README
  2. Project repository
  3. Release notes
社群筆記

社群筆記