FreeRDP

FreeRDPApache-2.0活跃维护 有专家点评

FreeRDP 是免费开源的远程桌面协议(RDP)库,附带多平台客户端,让你在 Linux、Android 等系统上连接 Windows 远程桌面。

FreeRDP is a free remote desktop protocol library and clients

3.33.1发布于 2026-11-10 08:35 UTC14,004star +15 / 7 天15,582fork同步于 2026-11-11 05:25 UTC

专家点评

上手难度:进阶更新于 2026-11-11

跨平台 RDP 协议栈,用来替换 Windows 自带的 mstsc,或作为库嵌入自有客户端

适用场景

  • 在 Linux/macOS 上连接 Windows 主机:xfreerdp 是原生客户端,不用装 Wine 或虚拟机,比 rdesktop 维护活跃得多
  • 把 RDP 能力嵌进自己的产品:Apache 许可 + 库形态,直接链 libfreerdp 做远程运维面板或云桌面客户端,不用自己啃协议文档
  • 把笔记本当第二屏(Linux 侧):社区讨论里出现过这个用法,本质是拿 FreeRDP 当被控端/桥接,比专用投屏工具更可控
  • 多架构/嵌入式目标:README 明确列了 ARM、PPC、RISC-V 构建,在非 x86 设备上跑 RDP 客户端时可选面很窄

踩坑

  • 没有开箱即用的安装路径:README 只指向 wiki 编译说明,预编译包要去 pub.freerdp.com 单独找,发行版仓库里的版本往往落后不少,想用新特性就得自己编
  • 认证与传输的边角需求反复被提:issue 里 Kerberos 支持、UDP 传输、FIDO2/WebAuthn 虚拟通道这几类都拿到较高反应数,说明这些不是配置一下就能解决的,撞上就得改代码或等上游
  • 输入与显示适配不是默认就对:本地键盘布局、SDL 下的 rails(多显示器拼接)都有长期 open 的 issue,跨布局键盘或多屏非标准排列的环境要预留调试时间

同类对比

纯客户端场景且只要连 Windows,Remmina(Linux)或系统自带 mstsc(Windows)省事得多;要做协议层集成又不想碰 C,可以看 Go/Rust 生态的 RDP 绑定,但成熟度和虚拟通道覆盖不如 FreeRDP。

怎么上手

由 README 提炼,执行前请确认
编译步骤见 wiki:https://github.com/FreeRDP/FreeRDP/wiki/Compilation
硬件要求按 README 说明

README 未说明

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

自由开源的 RDP 协议实现,提供库和客户端,让你跨平台连接 Windows 远程桌面

FreeRDP 是免费开源的远程桌面协议(RDP)库,附带多平台客户端,让你在 Linux、Android 等系统上连接 Windows 远程桌面。

核心能力

  • 实现远程桌面协议 RDP 的完整库与客户端
  • 采用 Apache 许可证,可自由使用和修改
  • 提供 API 文档,可作为库集成到自有程序
  • 支持 Windows、macOS、FreeBSD 及 ARM、PPC、RISC-V 等多架构构建

容易踩的坑

README 未给出直接安装命令,需按 wiki 的编译说明自行构建;预编译包需到 https://pub.freerdp.com/releases/ 下载

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本3.33.1
  1. 3.33.1最新正式版2026-11-10 · 2026-11-10 08:35 UTC

    FreeRDP version 3.33.1 is released:

    As usual, the archive can be downloaded from:

    https://pub.freerdp.com/releases/

    Bugfix and papercut release

    • Improved shadow server:
      • faster encoding by avoiding unchanged areas
      • back pressure from client: if it can not keep up with in flight frames reduce quality and do not send new frames
      • windows backend improvements
      • mac os backend improvements
    • hashless certificate support (Ed25519, Ed448, ML-DSA, SLH-DSA)
    • apple videotoolbox h264 encoder/decoder support
    • various RAILS fixes (x11 and sdl)

    CVE

    What's Changed

    • [channels,cliprdr] send empty format list (#13987)
    • [server,shadow] ignore the alpha byte when comparing X11 captures (#13973)
    • [client, ios] Add text clipboard, several fixes for ios clients. (#13981)
    • [client,x11] cliprdr: do not re-request TARGETS after the owner refused them (#13992)
    • [shadow,win] inclusive monitor bounds, no copy past the screen (#13956)
    • [core,update] accept a bitmap wider than its rectangle (#13946)
    • [server,shadow] Win DXGI capture: survive ACCESS_DENIED during mode transitions and secure desktop (#13949)
    • [server,shadow] rdpsnd: a format list per client, no samples before a format is agreed (#13943)
    • [client,x11] keep RemoteApp windows created hidden unmapped until shown (#13962)
    • [winpr,input] map the Apple right Control key to VK_RCONTROL (#13971)
    • [shadow] server side dirty tile skipping for the GFX/RFX path (#13908)
    • [primitives,yuv] NEON RGBToYUV420_8u_P3AC4R and RGBToAVC444YUV/v2 (#13983)
    • [codec,h264] Media Foundation H.264 encoder (#13970)
    • [channels,rdpsnd] server: no zero padding after an Opus packet (#13952)
    • [shadow,win] freerdp-shadow-service: the shadow server on the console session (#13934)
    • [shadow,mac] a ScreenCaptureKit backend for the macOS shadow server (#13948)
    • [codec,av1] faster AV1 encoding for the shadow server (#13974)
    • [client,sdl] map the menu and Japanese keys (#13945)
    • [locale] fix keyboard layout ids (#13947)
    • [client,x11] drop unreachable connect error block (#13976)
    • [shadow,win] send the sound the computer plays (#13954)
    • [client,server] add missing [[nodiscard]] (#13993)
    • [channels,rdpsnd] skip playback when decoder produces no PCM data (#13997)
    • Warn fixes (#14001)
    • [winpr,clipboard] fix big-endian BMP test (#14007)
    • [server,shadow] clear errno before reading the /monitors index (#14005)
    • Coverity fixes (#14009)
    • [winpr,timezone] detect the browser time zone on Emscripten (#13980)
    • [client,sdl] setBordered: no SDL_SyncWindow on every window event (#13979)
    • [server,shadow] improve keyboard injection diagnostics (#13951)
    • [client,sdl] rail: leave the windows lock before re-locking calls (#13972)
    • [core,test] fix log message arguments (#14011)
    • [ci,abi] disable WITH_DSP_FFMPEG (#14012)
    • [ci,macos] fix script argument parser (#14013)
    • [ci,abi] disable WITH_FFMPEG (#14014)
    • [ci,abi] disable rdpecam (#14017)
    • [channels,rdpsnd] reset the device on disconnect under the play lock (#14015)
    • Oss scanner (#14019)
    • [core,input] drop input during deactivate/reactivat
  2. 3.33.02026-11-02 · 2026-11-02 10:57 UTC
    查看更新说明

    FreeRDP version 3.33.0 is released:

    As usual, the archive can be downloaded from:

    https://pub.freerdp.com/releases/

    Major feature release, accompanied by the usual bugfix and CVE fixes. So, what is new:

    • webassembly support, now can run from within your browser
    • improved SDL client RAILS
    • experimental UDP support for direct (without gateway) RDP connections
    • unicode keyboard input pipe now supported by all clients (on systems that support mkfifo unix style pipes)
    • experimental windows shadow server support. It is back from the dead!
    • mac OS file clipboard support without FUSE (all clients)
    • Initial support for translation of messages

    The influx of pull requests and feedback for bugs/regressions/... was huge, so we will do a patch release with all the papercuts and bug still in the backlog soon.

    CVE

    What's Changed

    • Proxy cert (#13648)
    • [core,nla] report NTLM rejected (#13634)
    • [client, ios] Improve keyboard for ios clients. (#13676)
    • [codec,av1] fix colours of decoded YUV444 frames (#13561)
    • Config json (#13578)
    • [core,peer] skip disconnect sequence when MCS not established (#13687)
    • [client,sdl] send one wheel axis per event (#13689)
    • [ci,mac] disable deprecated symbols (#13690)
    • Gcc warning fixes (#13693)
    • winpr: avoid self-triggered SSPI deprecation warnings (#13692)
    • Channels rdpdr irp (#13694)
    • rail: initialize client status before deferred RemoteApp execution (#13696)
    • fix stale signature pointer in v1 cert writer (#13697)
    • [crypto,test] do not name variables small and large (#13701)
    • [cmake] restrict clang-format globbing to the source folders (#13708)
    • [client,sdl] strip the terminating \0 from text for local applications (#13705)
    • [codec,dsp] only create an Opus coder for Opus formats (#13711)
    • [uwac] detect linux-dmabuf availability (#13473)
    • Misc fixes and improvements of aad helper (#13709)
    • [client,x11] Send Backspace and Delete as scancodes in Unicode mode (#13715)
    • [winpr,clipboard] fix FileGroupDescriptorW to file list conversions (#13714)
    • [codec,channels] guard new Android MediaCodec/AAudio APIs behind their introduced-in level (#13706)
    • Must have feature: pretend that a movie or gstreamer pipeline is your camera (#13703)
    • [winpr] add optional translation helpers (#13367)
    • [channels,rdpdr] add 64-bit, file information and volume drive APIs to the server (#13593)
    • [winpr,client,sdl] Windows clipboard: image conversion, BMP layout, UTF-8 text (#13633)
    • fix various warnings and missing function fallback (#13718)
    • [codec,h264] add Apple VideoToolbox decoder (#13716)
    • [core,autodetect] count the header of bandwidth measure payloads (#13720)
    • [client,sdl] resend the window layout to a new display channel (#13726)
    • [channels,rdpsnd] allow some slack before dropping samples as overrun (#13723)
    • [winpr,thread] fix GetCurrentThreadId on 32-bit platforms (#13725)
    • [channels,rdpsnd,winmm] keep a little audio queued
  3. 3.32.22026-10-12 · 2026-10-12 12:08 UTC
    查看更新说明

    FreeRDP version 3.32.2 is released:

    As usual, the archive can be downloaded from:

    https://pub.freerdp.com/releases/

    Regression, bugfix and security release. We've been under close scrutiny by various security researchers. Addressing their findings we've hardened the code base considerably against malicious client and/or server messages

    CVE

    What's Changed

    • [channels,urbdrc] fix missing input range check (#13541)
    • [channel,urbdrc] revert device reset and cance
  4. 3.32.12026-09-28 · 2026-09-28 07:59 UTC
    查看更新说明

    FreeRDP version 3.32.1 is released:

    As usual, the archive can be downloaded from:

    https://pub.freerdp.com/releases/

    Regression and bugfix release. After the latest hardening a few corner cases were not covered by regression tests and needed adjustment. Most notably fragmented static channel PDU were rejected breaking copy & paste for larger data.

    • AAudio backend for android
    • iOS client updates

    CVE

    What's Changed

    • unit test return check and parameter check fixes (#13479)
    • [channels,rdpecam] compare start request against announced media types (#13481)
    • [warnings] fix return value checks (#13485)
    • [core,gateway] fix http timeout checks (#13484)
    • [channels,totalLength] correct and tighthen length checks (#13487)
    • [codec] fall back when hardware decoder size is unsupported (#13394)
    • [codec,h264] fix ffmpeg hardware acceleration (#13489)
    • [winpr,tools] fix makecert -n parsing (#13492)
    • [channels,android] add AAudio backends for rdpsnd and audin (#13483)
    • [client,common] install aad helpers in libexec (#13490)
    • [channels,cliprdr] notify client about empty formats from server (#13496)
    • X11 reconnect dialog (#13497)
    • [channels,rdpecam] release idle capture devices after a timeout (#13498)
    • Gfx checks (#13502, #13511)
    • Proxy refine (#13508)
    • [ci,deb] add libexec to packaged files (#13510)
    • [codec,h264] fix avc444 no-picture handling and decode validation (#13499)
    • [client,sdl] fix multimon layout on wlroots compositors (#13507)
    • [winpr,clipboard] include null terminator in CF_TEXT size (#13503)
    • [client, ios] replace deprecated api to modern api, fix some bugs (#13515, #13512)
    • [codec,h264] fix Media Foundation stream change handling and chroma plane offsets (#13520, #13522)
    • [channels,urbdrc] fix status mapping and descriptor write (#13523)
    • [utils,cliprdr] fix regression in contains_dotdot (#13527)
    • [winpr,crt] fix ConvertLineEndingToCRLF for leading and trailing line breaks (#13530)
    • [codec,dsp] fix opus encode output length (#13531)
    • [winpr,cmake] replace check_symbol_exists (#13529)
    • Winpr utils image (#13532)
    • [winpr,utils] check the bitmap size in 64 bit (#13535)
    • [channels,rdpsnd] close the channel when stopping without an own thread (#13536)
    • [channels,rdpei] don't close the channel twice after a failed init (#13534)
    • Fix software/emulated smartcard logon (WITH_SMARTCARD_EMULATE) on Windows (#13528)
    • Final cleanups (#13538)

    New Contributors

    • @xerrni made their first contribution in (#13498)
    • @derekroper made their first contribution in (#13507)
    • @DCaioP made their first contribution in (#13503)
    • @4RH1T3CT0R7 made their first contribution in (#13520)
    • @djuarez500 made their first contribution in (#13528)

    For a complete and detailed change log since the last release run: git log 3.32.1...3.32.0

  5. 3.32.02026-09-23 · 2026-09-23 07:51 UTC
    查看更新说明

    FreeRDP version 3.32.0 is released:

    As usual, the archive can be downloaded from:

    https://pub.freerdp.com/releases/

    New release with many user visible goodies for all of you. There have also been lots of issues addressed to harden against protocol violations/exploits, thanks to all the people doing in depth code reviews and security reports.

    • [proxy] add configuration options for /sec:ext or PROTOCOL_HYBRID_EX
    • [proxy] add configuration options for target certificate policy. NOTE: This changes default behavior from accept unless denied to deny unless accepted! Requires an update of your proxy configuration file if you rely on this.
    • [SDL,xfreerdp] seamless Entra/Azure integration on linux (with helper binaries)
    • [beta] Basic SDL client RAILS support for X11/wayland (other platforms currently lack some features / platform integration code, as we still need some native hooks)
    • [RDPECAM] stops camera streams now when the remote no longer requests frames. (no more camera LED after closing the windows application accessing it)
    • [RDPEWA] support user verification in addition to / instead of pin
    • [RDPEUSB] properly map interface index to interface numbers (more devices should work now)
    • [android] updated touch pointer
    • [wlfreerdp] shortcut inhibit release on mouse leave window
    • [xfreerdp] rails improvements, hopefully no longer shrinking windows
    • Full support for [MS-RDPBCGR] 2.2.10.2 Early User Authorization Result PDU, so now you get a error message if a user is not allowed to log in instead of a network failed message. (Authentication /sec:ext or PROTOCOL_HYBRID_EX)
    • [shadow] add configuration options for /sec:ext or PROTOCOL_HYBRID_EX
    • [gateway] split HTTP timeout from TCP connect timeout
    • [ffmpeg] support generic hardware accelerated encoding/decoding, replacing the old VAAPI only implementation. (still experimental as there are often driver issues)

    CVE

    Note: Advisories will be published days/weeks after the release, so links are 404 until then.

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    FreeRDP: A Remote Desktop Protocol Implementation

    FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Enjoy the freedom of using your software wherever you want, the way you want it, in a world where interoperability can finally liberate your computing experience.

    Code Quality Status

    abi-checker clang-tidy-review CodeQL mingw-builder macos-builder [arm,ppc,ricsv] architecture builds [freebsd] architecture builds coverity

    Resources

    Project website: https://www.freerdp.com/

    Issue tracker: https://github.com/FreeRDP/FreeRDP/issues

    Sources: https://github.com/FreeRDP/FreeRDP/

    Downloads: https://pub.freerdp.com/releases/

    Wiki: https://github.com/FreeRDP/FreeRDP/wiki

    API documentation: https://pub.freerdp.com/api/

    Security policy: https://github.com/FreeRDP/FreeRDP/security/policy

    FAQ: https://github.com/FreeRDP/FreeRDP/wiki/FAQ

    Contact

    Microsoft Open Specifications

    Information regarding the Microsoft Open Specifications can be found at: https://www.microsoft.com/openspecifications/

    A list of reference documentation is maintained here: https://github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation

    Compilation

    Instructions on how to get started compiling FreeRDP can be found on the wiki: https://github.com/FreeRDP/FreeRDP/wiki/Compilation