IronRDP 项目介绍
IronRDP 是一系列使用 Rust 语言编写的库,旨在实现微软远程桌面协议(RDP)。它特别注重安全性,为开发者提供了一种使用 Rust 高效构建 RDP 客户端或服务器的工具。
视频演示
项目中提供了一个视频演示,展示了 IronRDP 的部分功能。这可以帮助开发者更直观地理解如何使用该项目。
视频编解码器支持
IronRDP 支持多种视频编解码器,确保适应不同的应用场景:
- 未压缩的原始位图
- 交错运行长度编码(RLE)位图编解码器
- RDP 6.0 位图压缩
- Microsoft RemoteFX(RFX)
示例
ironrdp-client
IronRDP 提供一个名为 ironrdp-client
的完整 RDP 客户端示例。这个客户端是基于 IronRDP 系列库实现的,采用非阻塞、异步 IO 技术。可以通过以下命令运行这个客户端:
cargo run --bin ironrdp-client -- <HOSTNAME> --username <USERNAME> --password <PASSWORD>
截图示例
IronRDP 也提供了一个同步阻塞方式使用的示例。该示例展示了如何使用 IronRDP 库仅用数百行代码创建一个基本的 RDP 客户端。这个客户端可以与目标服务器建立连接,解码接收到的图形更新,并将结果以 BMP 格式保存到磁盘。
cargo run --example=screenshot -- --host <HOSTNAME> --username <USERNAME> --password <PASSWORD> --output out.bmp
如何在服务器上启用 RemoteFX
可通过以下 PowerShell 命令在服务器上启用 RemoteFX,并在完成后重启计算机:
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
修改组策略:
- 执行
gpedit.msc
。 - 启用
计算机配置/管理模板/Windows 组件/远程桌面服务/远程桌面会话主机/远程会话环境/为 Windows Server 2008 R2 配置 RemoteFX
。 - 启用
计算机配置/管理模板/Windows 组件/远程桌面服务/远程桌面会话主机/远程会话环境/为 Windows Server 2008 R2 SP1 设计的 RemoteFX 客户端启用 RemoteFX 编码
。 - 启用
计算机配置/管理模板/Windows 组件/远程桌面服务/远程桌面会话主机/远程会话环境/限制最大颜色深度
。 - 重启计算机。
架构
关于项目的架构信息,可以参考项目中的 ARCHITECTURE.md
文件,这有助于开发者深入了解项目的设计和实现细节。
获取帮助
- 如果在使用过程中发现任何 bug,可以在项目的 issue 追踪页面上报告。
- 开发者也可以加入 IronRDP 的矩阵聊天室参与讨论和交流。