Devolutions/IronRDP

GitHub: Devolutions/IronRDP

一个安全导向的 Rust 语言 RDP 协议实现库,提供客户端功能并支持多种图形编解码器和异步 I/O。

Stars: 2902 | Forks: 174

# IronRDP [![](https://docs.rs/ironrdp/badge.svg)](https://docs.rs/ironrdp/) [![](https://img.shields.io/crates/v/ironrdp)](https://crates.io/crates/ironrdp) 一系列 Rust crate,提供了 Microsoft Remote Desktop Protocol 的实现,重点关注安全性。 ## 演示 ## 视频编解码器支持 支持的编解码器: - 未压缩的原始位图 - 交错行程编码 (RLE) 位图编解码器 - RDP 6.0 位图压缩 - Microsoft RemoteFX (RFX) ## 示例 ### [`ironrdp-client`](https://github.com/Devolutions/IronRDP/tree/master/crates/ironrdp-client) 一个基于 IronRDP crate 套件的全功能 RDP 客户端,使用非阻塞、异步 I/O 实现。 ``` cargo run --bin ironrdp-client -- --username --password ``` ### [`screenshot`](https://github.com/Devolutions/IronRDP/blob/master/crates/ironrdp/examples/screenshot.rs) 以阻塞、同步方式利用 IronRDP 的示例。 此示例展示了以阻塞方式使用 IronRDP。它演示了如何通过利用 IronRDP crate 套件,仅用几百行代码创建一个基本的 RDP 客户端。 在这个基本客户端实现中,客户端与目标服务器建立连接,解码传入的图形更新,并将结果输出作为 BMP 图像文件保存到磁盘上。 ``` cargo run --example=screenshot -- --host --username --password --output out.bmp ``` ### 如何在服务器上启用 RemoteFX 运行以下 PowerShell 命令,并重新启动。 ``` Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows NT\Terminal Services' -Name 'ColorDepth' -Type DWORD -Value 5 Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows NT\Terminal Services' -Name 'fEnableVirtualizedGraphics' -Type DWORD -Value 1 ``` 或者,您可以使用 `gpedit.msc` 更改一些组策略: 1. 运行 `gpedit.msc`。 2. 启用 `计算机配置/管理模板/Windows 组件/远程桌面服务/远程桌面会话主机/远程会话环境/Windows Server 2008 R2 的 RemoteFX/配置 RemoteFX` 3. 启用 `计算机配置/管理模板/Windows 组件/远程桌面服务/远程桌面会话主机/远程会话环境/为 Windows Server 2008 R2 SP1 设计的 RemoteFX 客户端启用 RemoteFX 编码` 4. 启用 `计算机配置/管理模板/Windows 组件/远程桌面服务/远程桌面会话主机/远程会话环境/限制最大颜色深度` 5. 重新启动。 ## Rust 版本 (MSRV) IronRDP 库遵循保守的最低支持 Rust 版本 (MSRV) 策略。 MSRV 是至少 6 个月前发布的最早稳定版 Rust,且受限于 [Debian stable-backports](https://packages.debian.org/search?suite=all&arch=any&searchon=names&keywords=rust) 和 [Fedora stable](https://packages.fedoraproject.org/pkgs/rust/rust/) 中可用的 Rust 版本。 `rust-toolchain.toml` 中指定的工具链既是项目工具链,也是 CI 验证的 MSRV。 有关完整策略,请参阅 [ARCHITECTURE.md](./ARCHITECTURE.md#msrv-policy)。 ## 架构 请参阅 [ARCHITECTURE.md](https://github.com/Devolutions/IronRDP/blob/master/ARCHITECTURE.md) 文档。 ## 获取帮助 - 在 [issue tracker](https://github.com/Devolutions/IronRDP/issues) 中报告错误 - 在 [matrix room](https://matrix.to/#/#IronRDP:matrix.org) 中讨论项目
标签:crates, IronRDP, RDP, RemoteFX, Rust, 协议实现, 可视化界面, 图形编解码, 开源库, 异步IO, 微软技术, 截图, 搜索引擎爬虫, 系统工具, 网络安全, 网络流量审计, 虚拟化, 远程桌面协议, 远程访问, 通知系统, 隐私保护