客户端和主机两端都要安装 xpra,只有用 HTML5 客户端时才只需在主机端安装;seamless 模式启动的程序(如 xterm)必须已安装在远程主机上;从源码构建前需自行准备依赖,README 未列出具体依赖版本。
xpra
Xpra-orgGPL-2.0活跃维护把 X11 应用变成可断线重连的远程应用,支持屏幕共享和远程桌面,兼容 macOS 与 Windows 客户端。
Persistent remote applications for X11; screen sharing for X11, MacOS and MSWindows.
git clone https://github.com/Xpra-org/xpra; cd xpra
python3 ./setup.py installREADME 未说明具体硬件或显存要求;客户端支持 Windows、MacOS(x86_64/arm64)与 Linux,服务端需运行在 X11 主机上。
把远程 X11 图形程序无缝转发到本地,断线重连不丢状态的屏幕共享工具
把 X11 应用变成可断线重连的远程应用,支持屏幕共享和远程桌面,兼容 macOS 与 Windows 客户端。
核心能力
- 以 seamless 模式单独转发远程 X11 应用窗口
- 断开后可从本机或另一台机器重连并保留会话状态
- 同步音频、剪贴板、打印机、托盘、通知、摄像头等桌面特性
- 服务端内置 HTML5 客户端,单 TCP 端口支持 SSL/SSH/WebSocket 等多种连接
- 支持 shadow 模式查看已有桌面会话,也可启动远程桌面会话
容易踩的坑
- v5.1.7最新正式版2026-11-08 · 2026-11-08 17:45 UTC
- 🔧 Platforms, build and packaging:
- honour
--root ROOTwhen installing - better install prefix detection
- fix OpenBSD dependency and CUPS paths, and omit systemd files on BSD
- recognize OpenBSD in operating system names and platform icons
- RPM packages could lack the cairo typelib required by Gtk and Rsvg
- X11 window tests failed to import on Python 3.6
- verify deb packages before copying to the repo
- stop building DEBs on any failure
- Fedora 45 package list
- almalinux build failures and rockylinux
- missing default build list - unused arm64 list
- RHEL builds need our private openh264 and CentOS
- Python 3.6 syntax compatibility
- no
pyopenglto build here - Ubuntu Stonking packaging
- googlesource downloads are not reliable
- macOS: always enable logging to file when spawned from the GUI
- macOS menu fixes
- restore Python 3.6+ compatibility
xserver-xorg-video-dummyfailed on Debianarm64- ignore cython generated shared objects in source tree
- recognize
OpenBSDplatform names OpenBSDbuild pathsis_armshould match all 64-bitarm- enable speaker forwarding on
arm - oudated
raspbianworkaround - don't start Xorg if its config file is missing
- failure to build due to missing
libfakeXineramadependency in some RPM builds - [RHEL 10 and clones must
- honour
- 🔧 Platforms, build and packaging:
- v6.5.62026-11-06 · 2026-11-06 16:37 UTC
查看更新说明
- 🔧 Platforms, build and packaging:
- RPM updates:
libyuv 0.0.1974,nasm 3.02,xpra-openh264 2.7.0,pygobject 3.44.2(RHEL 8 only),aioquic 1.7.0,pycairo 1.29.2,Cython 3.3.1,dbus-python 1.5.0,python3-gobject 3.58.1,packaging 26.3,pillow 13.0.0,pip 26.2.1,pybind11 3.1.0,pylsqpack 1.0.0,pynvml 13.615.71,setuptools 84.0.0,pytorch vision 0.29.1,pytorch-cuda 2.14.1,wheel 0.48.0 - MS Windows printing helper commands crash when choosing a printer automatically
- macOS: use the bundled GIO module directory
- macOS 27: window title bar ends up transparent
- RPM updates:
- Major:
- programmatic X11 window moves can use incorrect coordinates
- recording a session can alter its keyboard layout and repeat settings
- NVENC cleanup can abort the server when a client disconnects
- launcher connections and dialogs can stall with the GLib idle workaround
- grayscale video encoding fails to load the libyuv converter
- existing windows miss video codecs advertised after the client handshake
- cleaning can remove session files for a live X11 server using only an abstract socket
- desktop and monitor capabilities are read from the wrong namespace, including RandR support
- some client properties are wrongly reset, ie: render-size
- mf decoder: terminate HEVC
- decoder selftest must decode at least one frame
- CUDA context device lock never released
- 🖧 Network:
- 📋 Clipboard:
- Minor:
- [numeric list values can fail to parse](https://github.com/Xpra-org/xpra/commit/b9d8f90022dbcfc0094b4cd7
- 🔧 Platforms, build and packaging:
- v6.5.52026-10-12 · 2026-10-12 16:05 UTC
查看更新说明
- 🔧 Platforms, build and packaging:
- macOS notarization and build fixes:
- Major:
- drag-and-drop can get wedged and stop working
- scroll event regression introduced in 6.5.4
- don't let the child reaper turn a failed exec auth into a success
- don't crash if
dbus-deamoncannot be started - don't load X11 bindings under Wayland
- session sharing can cause threading issues
- acknowledge pending window damage correctly on connection cleanup
- workaround window managers that don't deiconify windows
- desktop scaling misplaces relative windows
- XSETTINGS / DPI fix
- Keyboard:
- SSL:
- ssl upgrade must override defaults
- ssl upgrade failed
- ssl retry needs a brand new socket
- download ssl certificate using the same connection path, same configuration options
- warn when the certificate no longer matches the one accepted previously
- don't wait forever for the client's TLS handshake to complete
- [don't let SSL conne
- v6.5.42026-09-27 · 2026-09-27 15:30 UTC
查看更新说明
- 🔧 Platforms, build and packaging:
libyuvnot detected without pkgconfig file + fixup- wayland: link to wayland-server
xkb: link tolibX11- some qemu build environments lack
openat2+ workarounds - stop building DEBs on any failure
- Fedora 45 package list
- workaround Cython 3.3.0 bug
- MS Windows builds find the version-stamping tool reliably
- Debian packages retain the Wireshark dissector when the normal packaging path is unavailable
- Adwaita theme layout changes + remove unused references
- remove outdated dependencies
- macOS hardened runtime fix
- MSYS2 renamed
libyuv - locate global Python interpreter for MS Windows SBOM
- don't bother building the unused Windows service component
- locate VisualStudio commands more reliably
- ⚠️ Major:
- X11 Pixmap leak + regression tests
- warn rather than leaking memory with buggy Debian libraries and show the problematic GI version
- GStreamer initialization with newer PyGObject
- OpenGL windows can remain blank until they receive a configure event
- crash: don't assume Gdk displays are X11 displays
- Wayland clients don't need a X11 display
- stale X11 timestamps cause focus issues
- method wrongly returned failure code
- error when running without window forwarding
- don't reject clients without encodings if they don't need any
- 🔧 Platforms, build and packaging:
- v6.5.32026-08-18 · 2026-08-18 15:14 UTC
查看更新说明
- 🔧 Platforms, build and packaging:
- 🍎 macOS:
- MS Windows:
- Mmap issues:
- Encodings:
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
About
Xpra is known as "screen for X" : its seamless mode allows you to run X11 programs, usually on a remote host, direct their display to your local machine, and then to disconnect from these programs and reconnect from the same or another machine(s), without losing any state. Effectively giving you remote access to individual graphical applications. It can also be used to access existing desktop sessions and start remote desktop sessions.
Xpra is open-source (GPLv2+) with clients available for many supported platforms, and the server includes a built-in HTML5 client. Xpra is usable over a wide variety of network protocols and does its best to adapt to any network conditions.
Xpra forwards and synchronizes many extra desktop features, which allows remote applications to integrate transparently into the client's desktop environment: audio input and output, printers, clipboard, system trays, notifications, webcams, etc.
It can also open documents and URLs remotely, display high bit depth content, and it will try to honor the display's DPI.
Here's what a seamless session with two windows (an xterm and glxspheres)
looks like when attached from an MS Windows 11 desktop client:
(the windows may look like native windows, but they are running on a remote Linux server)
Installation
Official stable downloads
All the packages are signed. There are also LTS and beta builds available.
For more information and more build architecture options, see xpra downloads.
Build from source
git clone https://github.com/Xpra-org/xpra; cd xpra
python3 ./setup.py install
For more details, see building from source.
To contribute to the project, please try to use pull-requests and follow our code of conduct.
Unit test status:
Usage
Initial requirements
xpra must be installed on the client and the host.
You can use the html5 client in which case xpra is only required on the host.
Seamless Mode
Run xterm on a remote host, display and interact with it locally (from the client machine):
xpra seamless ssh://USER@HOST/ --start=xterm
# hint: xterm must be installed on the HOST.
For more examples, see usage.
Shadow
View an existing desktop session running on a remote host:
xpra shadow ssh://USER@HOST/
Network Access
Xpra servers can support many different types of connections using a single TCP port:
SSL, SSH, (secure) http / websockets, RFB, etc..
Connections can be secured using encryption and many authentication modules.
Sessions can be automatically announced on LANs using multicast DNS
so that clients can connect more easily using a GUI (ie: xpra mdns-gui).
Its flexible proxy server can be used as a relay or front end for multiple server sessions.
Documentation
There is extensive documentation right here for the current development version. This documentation is also included with each release.
For more generic version-agnostic information, checkout the wiki.
Help
Make sure to check the FAQ, your question may already be answered there.
You can ask your questions on the GitHub discussions, or on the IRC channel #xpra on libera.chat
or using discord.
If you have hit a bug (sorry about that!), please see reporting bugs.