Sunshine + Moonlight 局域网低延迟投屏实践
实践时间:2026-06-14
方案:Sunshine(Linux 服务端)+ Moonlight(Windows 客户端)
目标:将 Linux 桌面画面低延迟投屏到 Windows 电脑
本方案特点
| 项目 | 值 |
|---|
| 局域网延迟 | < 15ms(VAAPI 硬件编码) |
| 编码器 | Intel VAAPI h264_vaapi |
| 是否开源 | 是(MIT/GPL) |
| 是否需要账号 | 否,完全自托管 |
| 是否支持鼠标/键盘回传 | 是 |
| 音频支持 | 是 |
本机环境
| 项目 | 值 |
|---|
| Linux 系统 | Ubuntu 24.04.2 LTS |
| 桌面环境 | GNOME + X11(Xorg) |
| Display | :1(通过 ls /tmp/.X11-unix/ 确认) |
| 显示器分辨率 | 2560×1440(DP-1) |
| GPU | Intel UHD Graphics 630 |
| VAAPI 驱动 | intel-media-va-driver 24.1.0 |
| Sunshine 版本 | v2026.516.143833 |
| Linux IP | 192.168.3.104 |
文档列表
快速上手(已完成安装后)
Linux 端
# 启动服务(已设为开机自启,通常无需手动操作)
XDG_RUNTIME_DIR=/run/user/1000 systemctl --user start sunshine.service
# 查看状态
XDG_RUNTIME_DIR=/run/user/1000 systemctl --user status sunshine.service
# 查看实时日志
XDG_RUNTIME_DIR=/run/user/1000 journalctl --user -u sunshine.service -f
首次使用:在 Linux 浏览器打开 https://localhost:47990 设置账号密码。
Windows 端
- 安装 Moonlight:
https://github.com/moonlight-stream/moonlight-qt/releases
- 启动 Moonlight,点击
+ 输入 192.168.3.104
- 点击主机图标,记下 PIN 码
- 去 Linux 的
https://localhost:47990 → PIN 页面输入
- 配对成功后点击 Desktop 开始投屏
常用快捷键
| 快捷键 | 功能 |
|---|
Ctrl + Alt + Shift + Q | 退出投屏 |
Ctrl + Alt + Shift + X | 全屏/窗口切换 |
Ctrl + Alt + Shift + S | 查看延迟统计 |
架构示意
┌─────────────────────────────────┐ 局域网 ┌──────────────────────┐
│ Linux 主机 │ ◄────────────► │ Windows 电脑 │
│ │ │ │
│ Sunshine(服务端) │ │ Moonlight(客户端) │
│ ┌─────────────┐ │ │ ┌────────────────┐ │
│ │ X11 捕屏 │ │ │ │ 接收视频流 │ │
│ │ VAAPI 编码 │ ──H.264流──► │ │ │ 硬件解码显示 │ │
│ │ 音频捕获 │ │ │ │ 回传键盘鼠标 │ │
│ └─────────────┘ │ │ └────────────────┘ │
│ Web UI: https://localhost:47990│ │ │
└─────────────────────────────────┘ └──────────────────────┘
IP: 192.168.3.104 Moonlight 输入 IP 连接
相关链接