Linux 投屏到 Windows 局域网低延迟方案全面对比
调研时间:2026-06-13 适用场景:Linux(Ubuntu 22.04/24.04)→ Windows,局域网,追求低延迟 调研来源:多路 Agent 并行搜索最新资料汇总
一、快速选型建议
| 需求 | 推荐方案 |
|---|---|
| 最低延迟,支持鼠标键盘回传 | Sunshine + Moonlight |
| 纯显示投屏,有命令行能力 | FFmpeg + VAAPI/NVENC + mpv |
| 传统远程桌面,需要剪贴板/音频/文件传输 | xrdp + mstsc 或 GNOME Remote Desktop |
| 已有 OBS 工作流 | OBS + DistroAV(NDI) |
| 接收端零安装,最简单 | Deskreen |
| 3D 应用/GPU 密集型 | TurboVNC + VirtualGL |
二、各方案详细对比
1. Sunshine + Moonlight(强烈推荐)
定位:开源游戏串流,延迟最低的局域网投屏方案
Sunshine 是开源的 GameStream 兼容服务端,运行在 Linux 端;Moonlight 是客户端,运行在 Windows 端接收画面。完全替代 NVIDIA GameStream,支持 AMD/Intel/NVIDIA 显卡。
安装步骤
Linux 端(安装 Sunshine):
# Ubuntu/Debian deb 包
wget https://github.com/LizardByte/Sunshine/releases/latest/download/sunshine-ubuntu-22.04-amd64.deb
sudo dpkg -i sunshine-*.deb
# 或 Flatpak
flatpak install dev.lizardbyte.sunshine
# 启动后访问 Web UI 进行配置
# https://localhost:47990Windows 端(安装 Moonlight):
从 moonlight-stream.org 下载安装 Moonlight,输入 Linux 主机 IP,配对后直接连接。
关键配置
X11 环境(开箱即用),Wayland 需额外配置:
# ~/.config/sunshine/sunshine.conf
# Wayland + KMS 捕屏(v0.22.0+ 支持 Wayland + NVIDIA)
capture = kms
# 编码器选择
encoder = nvenc # NVIDIA
# encoder = vaapi # Intel/AMD
# 或保持 auto 让 Sunshine 自动选择
encoder = auto防火墙端口(必须开放):
- TCP:47984、47989、47990
- UDP:47998、47999、48000
推荐编码设置(Web UI 中):
- 分辨率:1920x1080
- 帧率:60 FPS
- 码率:20–50 Mbps(局域网千兆带宽充裕)
- 编码:H.264 / H.265(HEVC)/ AV1
延迟表现
- 局域网有线:< 15ms(包含编码 + 传输 + 解码全链路)
- Wi-Fi 5GHz:约 20–40ms
- 使用硬件编码(NVENC/VAAPI),CPU 负担极低
优缺点
| 优点 | 缺点 |
|---|---|
| 延迟最低,< 15ms | 配置稍复杂,需要开放防火墙端口 |
| 完全开源,自托管,无账号 | Wayland 下配置相对繁琐 |
| 支持鼠标、键盘、手柄完整回传 | 需要 Web UI 初始配置 |
| 支持 H.264/H.265/AV1 | — |
| 支持 HDR(VAAPI + KMS capture) | — |
| 活跃开发,社区完善 | — |
2. FFmpeg + 局域网推流
定位:技术用户首选,延迟可控,纯命令行,完全离线
方案 A:NVIDIA GPU(x11grab + NVENC + UDP)
# Linux 发送端
ffmpeg \
-f x11grab -s 1920x1080 -framerate 60 -i :0.0 \
-c:v h264_nvenc -preset:v llhq -rc:v vbr_minqp \
-qmin:v 19 -bf 0 -g 30 \
-f mpegts udp://192.168.1.100:9000?pkt_size=1316
# Windows 接收端(mpv,最低延迟)
mpv udp://0.0.0.0:9000 --no-cache --untimed --vd-lavc-threads=1方案 B:Intel/AMD GPU(x11grab + VAAPI + TCP)
# Linux 发送端
ffmpeg \
-f x11grab -s 1920x1080 -framerate 60 -i :0.0 \
-vaapi_device /dev/dri/renderD128 \
-vf 'format=nv12,hwupload,scale_vaapi=w=1920:h=1080' \
-c:v h264_vaapi -qp:v 23 -bf 0 \
-f mpegts tcp://0.0.0.0:9000?listen
# Windows 接收端
mpv tcp://192.168.1.50:9000 --no-cache --untimed方案 C:软编码 + SRT(最稳定,无需特定 GPU)
# Linux 发送端
ffmpeg \
-f x11grab -s 1920x1080 -framerate 30 -i :0.0 \
-c:v libx264 -preset ultrafast -tune zerolatency \
-b:v 4000k -maxrate 4000k -bufsize 500k \
-f mpegts srt://0.0.0.0:9000?mode=listener
# Windows 接收端(mpv)
mpv srt://192.168.1.50:9000 --no-cache --untimed方案 D:Wayland 环境(wf-recorder 管道)
# 先安装 wf-recorder(wlroots Wayland 捕屏工具)
# 捕屏并通过管道传给 FFmpeg 推流
wf-recorder -c rawvideo -f - | ffmpeg \
-re -i pipe:0 \
-c:v h264_nvenc -preset:v ll -bf 0 \
-f mpegts udp://192.168.1.100:9000延迟参考数据
| 方案 | 典型延迟 |
|---|---|
| VAAPI + mpv(局域网有线) | ~40ms |
| NVENC + mpv(局域网有线) | ~80–120ms |
| libx264 ultrafast + mpv | ~120–200ms |
| VLC 接收(任何方案) | ~300ms–2s(内置缓冲过大) |
注意:接收端必须用 mpv 的
--untimed模式,VLC 延迟过高不推荐。
验证硬件编码可用性
# 验证 VAAPI(Intel/AMD)
vainfo
# 验证 NVENC(NVIDIA)
ffmpeg -encoders | grep nvenc优缺点
| 优点 | 缺点 |
|---|---|
| 延迟可低至 40ms | 需要命令行,配置有门槛 |
| 完全离线,无账号,无云服务 | Wayland 需额外工具 |
| 支持所有主流硬件编码器 | Wi-Fi 下 UDP 可能丢包 |
| 可封装成脚本,高度可定制 | VLC 接收延迟高,必须用 mpv |
3. xrdp(RDP 协议)
定位:传统远程桌面,功能最完整,但性能有明显短板
xrdp 是开源的 RDP 服务端实现,允许 Linux 通过微软 RDP 协议提供远程桌面。最新稳定版为 0.10.4.1(2025 年 7 月)。
安装步骤
# Linux 端安装 xrdp
sudo apt update
sudo apt install xrdp xorgxrdp -y
sudo systemctl enable xrdp
sudo systemctl start xrdp
# 推荐配合轻量桌面(XFCE)
sudo apt install xfce4 xfce4-goodiesWindows 端:直接使用系统自带 mstsc(远程桌面连接),在「体验」选项卡选择「LAN (10 Mbps 或更高)」。
性能数据(实测)
| 指标 | xorgxrdp 后端 | Xvnc 后端 |
|---|---|---|
| 帧率 | ~25 FPS | ~60 FPS(不稳定) |
| 延迟 | ~100ms | ~50ms |
| 服务端 CPU 占用 | 60–120% | 10–20% |
| 画质 | 较好,支持 RemoteFX | 一般 |
RDP 协议本身限制帧率为 30 FPS,这是微软协议的设计上限。
GPU 硬件加速
- Linux 端 xrdp 的 GPU 加速不成熟,2025 年出现了实验性 xrdp-egfx 包,但仅限 Hyper-V 虚拟机场景。
- 原生 Linux 物理机上 xrdp 无实用的 GPU 加速支持。
GNOME Remote Desktop(更好的 RDP 替代)
GNOME 42+ 内置 RDP 服务端(gnome-remote-desktop),性能好于 xrdp,推荐 GNOME 用户优先使用:
# 在 GNOME 设置 → 共享 → 远程桌面 中直接启用
# 或命令行
sudo apt install gnome-remote-desktop
grdctl rdp enable
grdctl rdp set-credentials <用户名> <密码>优缺点
| 优点 | 缺点 |
|---|---|
| 原生支持音频、剪贴板、文件传输、打印重定向 | 帧率上限 30 FPS |
| 带宽效率高,WAN 环境也能用 | Linux 端 CPU 占用高(60–120%) |
| 多用户独立会话 | 3D 图形支持差 |
| Windows 客户端零安装(mstsc 自带) | GPU 硬件加速不成熟 |
| 安全性好(TLS + NLA 认证) | 延迟比 VNC 和 Sunshine 高 |
4. VNC 方案
定位:轻量、低 CPU 占用,局域网延迟低于 RDP
主流 VNC 实现对比
| 特性 | TigerVNC | TurboVNC | TightVNC | RealVNC |
|---|---|---|---|---|
| 许可证 | GPL 开源 | GPL 开源 | GPL 开源 | 商业(有免费版) |
| 局域网延迟 | ~50ms | ~30–50ms | ~60ms | ~50ms |
| 帧率 | 30–60 FPS | 60+ FPS | 30 FPS | 30–60 FPS |
| 多线程编码 | 有限 | 完整支持 | 无 | 专有优化 |
| VirtualGL 集成 | 可以但非原生 | 原生深度集成 | 不支持 | 不支持 |
| GPU 加速 3D | 否 | 是(VirtualGL) | 否 | 否 |
| 维护状态 | 活跃 | 活跃 | 较少更新 | 商业持续维护 |
TigerVNC 安装(通用推荐)
# 安装桌面环境
sudo apt install xfce4 xfce4-goodies -y
# 安装 TigerVNC
sudo apt install tigervnc-standalone-server tigervnc-common -y
# 设置 VNC 密码
vncpasswd
# 创建启动脚本
cat > ~/.vnc/xstartup << 'EOF'
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
EOF
chmod +x ~/.vnc/xstartup
# 创建配置文件
cat > ~/.vnc/config << 'EOF'
session=xfce4
geometry=1920x1080
depth=24
localhost=no
alwaysshared
EOF
# 启动 VNC 服务(:1 表示第 5901 端口)
vncserver :1Windows 端:安装 TigerVNC Viewer 或 RealVNC Viewer。
TurboVNC + VirtualGL(3D 应用专用)
# 安装 VirtualGL
wget https://github.com/VirtualGL/virtualgl/releases/download/3.1.2/virtualgl_3.1.2_amd64.deb
sudo dpkg -i virtualgl_3.1.2_amd64.deb
# 安装 TurboVNC
wget https://github.com/TurboVNC/turbovnc/releases/download/3.1.3/turbovnc_3.1.3_amd64.deb
sudo dpkg -i turbovnc_3.1.3_amd64.deb
# 配置 VirtualGL(交互式)
sudo vglserver_config
# 启动 TurboVNC 服务
/opt/TurboVNC/bin/vncserver :1 -geometry 1920x1080
# 运行 3D 应用(使用 GPU)
vglrun <应用程序>优缺点
| 优点 | 缺点 |
|---|---|
| 局域网延迟低(~50ms,低于 xrdp) | 带宽消耗大(像素级传输) |
| 服务端 CPU 占用低(10–20%) | 缺少原生音频、剪贴板、文件传输 |
| 帧率可达 60 FPS | 广域网体验差 |
| TurboVNC + VirtualGL 支持 3D 渲染 | 安全性依赖 SSH 隧道 |
| 可直接共享物理桌面(x11vnc) | 默认共享会话,不支持多用户 |
5. OBS + DistroAV(NDI)
定位:已有 OBS 工作流的用户,画质优秀,带宽需求大
DistroAV 是 OBS-NDI 插件的继任者(2024 年 6 月更名)。
安装步骤
# OBS Studio(推荐 Flatpak 安装)
flatpak install flathub com.obsproject.Studio
# DistroAV 插件(Flatpak 方式)
flatpak install com.obsproject.Studio.Plugin.DistroAV
# 允许 Flatpak 访问 Avahi(NDI 服务发现依赖)
sudo flatpak override com.obsproject.Studio --system-talk-name=org.freedesktop.AvahiOBS 中配置:工具 → NDI Output Settings → 启用主输出
Windows 接收端:
- 安装 Windows 版 OBS + DistroAV 插件,Sources 中添加 NDI Source
- 或安装 NDI 官方工具包中的 NDI Monitor
延迟和带宽
- 千兆有线局域网:约 16–50ms(1–3 帧 @ 60fps)
- 带宽消耗:1080p60 约 128 Mbps,需千兆网络
- Wi-Fi 可能抖动,建议有线连接
优缺点
| 优点 | 缺点 |
|---|---|
| 画质优秀,支持 4K/60fps | 带宽需求大(必须千兆有线) |
| 可叠加字幕/场景切换 | OBS 本身资源消耗较高 |
| 与 OBS 深度集成 | 接收端也需要安装软件 |
| 延迟较低 | NDI SDK 闭源 |
6. Deskreen(最简单方案)
定位:接收端零安装,适合展示和副屏场景
基于 Electron + WebRTC,Linux 主机运行 Deskreen,Windows 端打开浏览器即可接收。最新版本 v3.1.3(2026 年)。
# Linux 端(AppImage)
wget https://github.com/pavlobu/deskreen/releases/latest/download/Deskreen-*.AppImage
chmod +x Deskreen-*.AppImage
./Deskreen-*.AppImageWindows 端:打开浏览器访问 Deskreen 显示的局域网地址,无需安装任何软件。
延迟和优缺点
- 5GHz Wi-Fi 局域网:视觉上基本无延迟,适合文档/视频展示
- 不适合游戏或需要 < 100ms 延迟的场景
| 优点 | 缺点 |
|---|---|
| 接收端零安装 | 延迟偏高(>100ms),不适合交互操作 |
| 端对端加密 | 免费社区版功能受限 |
| 支持同时投到多个设备 | 每次只能共享一个窗口(CE 版) |
| 跨平台 | Wayland 支持有额外复杂性 |
7. RustDesk(远程维护场景)
定位:TeamViewer 开源替代,适合远程运维,不适合低延迟投屏
wget https://github.com/rustdesk/rustdesk/releases/latest/download/rustdesk-*.deb
sudo dpkg -i rustdesk-*.deb- 公共中继服务器:延迟 1–2 秒
- 局域网直连(Settings → Security → Direct IP Access):可改善,但仍不如 Sunshine
- 更适合远程运维/支持,而非低延迟投屏
8. Parsec(不适用)
重要说明:Parsec 不支持 Linux 作为 Host(发送端),因此无法用于”Linux 投屏到 Windows”场景。
Parsec 在 Linux 上只能作为 Client(接收端),即只能从 Linux 连接到 Windows/macOS 主机,方向相反。
三、综合延迟对比表
| 方案 | 局域网延迟 | 帧率上限 | 硬件加速 | 配置难度 | Linux Host 支持 |
|---|---|---|---|---|---|
| Sunshine + Moonlight | < 15ms | 120+ FPS | 完整(NVENC/VAAPI/AV1) | 中 | 完整 |
| FFmpeg + VAAPI + mpv | ~40ms | 60 FPS | 完整 | 高 | 完整 |
| FFmpeg + NVENC + mpv | ~80–120ms | 60 FPS | 完整 | 高 | 完整 |
| TigerVNC | ~50ms | 60 FPS | 无 | 低 | 完整 |
| TurboVNC + VirtualGL | ~30–50ms | 60+ FPS | GPU 3D 渲染 | 中 | 完整 |
| OBS + NDI | ~20–50ms | 60 FPS | 部分 | 中 | 完整 |
| xrdp + mstsc | ~100ms | 30 FPS | 无(不成熟) | 低 | 完整 |
| GNOME Remote Desktop | ~80ms | 30 FPS | 有限 | 低 | 完整 |
| Deskreen | >100ms | 30 FPS | 无 | 极低 | 完整 |
| RustDesk | ~200ms+ | 30 FPS | 无 | 极低 | 完整 |
| Parsec | — | — | — | — | 不支持 |
四、场景推荐
场景 A:追求最低延迟,需要交互(鼠标/键盘回传)
推荐:Sunshine + Moonlight
延迟 < 15ms,完全开源,支持硬件编码,支持游戏手柄。局域网投屏的最优方案。
场景 B:纯单向投屏(只显示,不操控)
推荐:FFmpeg + VAAPI/NVENC + mpv
有命令行能力时,这是延迟最可控、最轻量的方案。建议封装成一个启动脚本。
场景 C:需要完整远程桌面功能(音频/剪贴板/文件传输)
推荐:xrdp + mstsc 或 GNOME Remote Desktop(GNOME 用户)
虽然帧率受限(30 FPS),但功能最完整,Windows 端无需额外安装软件。
场景 D:3D 应用 / GPU 密集型渲染
推荐:TurboVNC + VirtualGL
HPC/CAD/科学可视化场景的标准方案,可将 OpenGL 渲染重定向到服务器 GPU 后传输。
场景 E:接收端不想安装任何软件
推荐:Deskreen
浏览器即可接收,适合展示文档、偶尔投屏,对延迟不敏感的场景。
五、Wayland 环境注意事项
Wayland 的权限模型禁止”全局截屏”,必须通过 xdg-desktop-portal + PipeWire。
# 安装必需组件
sudo apt install pipewire wireplumber xdg-desktop-portal
# wlroots 合成器(Sway/Hyprland)需要额外安装
sudo apt install xdg-desktop-portal-wlr
# 或 Hyprland 专用
sudo apt install xdg-desktop-portal-hyprland
# 确保服务运行
systemctl --user enable --now pipewire wireplumber xdg-desktop-portal各方案在 Wayland 下的状态:
| 方案 | Wayland 支持 | 说明 |
|---|---|---|
| Sunshine | 支持(v0.22.0+) | 需设置 capture = kms |
| FFmpeg | 需变通 | 用 wf-recorder 管道或 kmsgrab |
| xrdp | 不支持 | 需在 XWayland 下运行 |
| GNOME Remote Desktop | 原生支持 | GNOME 42+ 内置 |
| TigerVNC | 不支持 | 需 X11 会话 |
| Deskreen | 部分支持 | 依赖 PipeWire |
六、参考资料
- Sunshine LizardByte 官方文档
- Moonlight Setup Guide
- Sunshine v0.22.0 - GamingOnLinux
- xrdp GitHub - 性能讨论
- xrdp GitHub - fps 问题
- TurboVNC vs TigerVNC 对比
- VNC 服务端软件对比
- DistroAV GitHub(OBS-NDI 继任者)
- FFmpeg VAAPI 局域网推流 Gist
- Deskreen GitHub
- Parsec Linux 支持说明
- Wayland Screen Sharing 2025 - Stackademic
- RDP vs VNC 对比 2026 - PIA