Mac/Windows局域网屏幕共享方案(Mac/Windows ➡️ Ubuntu)
【场景描述】:要将一台 MacBook 的屏幕内容投屏到局域网内的另一台电脑上(linux or windows),使之拥有一个副屏显示器。
有三种方案(Mac, Mac, Win11)。
方案1: UxPlay 运行在副屏电脑上,在局域网内启动一个AirPlay服务(Mac OS)
如题,在从机上安装uxplay, 可以启动一个AirPlay服务供 Mac 电脑发现后直接投屏。
经Ubuntu 25.10系统上验证,uxplay工作稳定免费。
可做首选方案~
方案2:macOS + simpleDisplay + Deskreen 局域网虚拟屏扩展:屏幕共享方案
为了实现跨设备副屏效果,将另一台电脑作为主电脑的副屏显示器,本方案基于simpleDisplay开源虚拟显示器工具与Deskreen屏幕共享工具组合,在 macOS 设备上快速创建虚拟显示屏。通过局域网将主屏、虚拟屏或指定应用窗口画面,实时共享至同一网络内其他终端。接收设备无需安装专用客户端,仅通过浏览器输入地址即可访问并使用扩展屏幕,实现跨设备副屏效果,整套工具开源免费、部署简便、运行稳定。
- simpleDisplay:开源轻量虚拟显示器软件,原生适配 macOS,可自主创建自定义分辨率虚拟屏幕,驱动纯净,无多余后台残留,不影响系统显示与光标正常使用。
- Deskreen:跨平台开源屏幕共享工具,依托 WebRTC 协议传输画面,支持整屏、虚拟屏、独立窗口三种共享模式,局域网内传输延迟低,兼容各类主流浏览器。
- 主控端:macOS 系统,接入局域网(有线 / 无线网络均可)。
- 接收端:任意 PC、Linux 设备、移动设备,搭载主流浏览器,与主控端处于同一局域网。
四、部署与使用步骤
(一)主控端软件安装
安装 simpleDisplay
访问官网 https://simpleDisplay.app 下载 macOS 版本,将软件移入应用程序目录。首次运行时,在系统安全性与隐私中完成开发者授权,并开启辅助功能权限。
安装 Deskreen
前往 Deskreen 官方网站下载对应 macOS 安装包,完成安装后,在系统安全性与隐私 - 屏幕录制中为软件授予录屏权限,保障画面正常采集。
(二)创建虚拟显示屏
- 启动 simpleDisplay,点击界面添加按钮,按需设置虚拟屏分辨率、刷新率等参数,点击创建生成虚拟显示器。
- 进入 macOS系统设置 - 显示器,在排列界面中将虚拟屏设置为扩展模式,按需调整屏幕相对位置。
(三)配置屏幕共享
- 运行 Deskreen,软件自动读取本机局域网 IP 与访问端口。
- 根据使用需求选择共享类型:整机主屏、已创建的虚拟显示屏、单个应用窗口。
- 确认配置后启动共享,软件生成对应的访问链接与二维码,保持程序后台运行。
(四)接收端接入使用
- 接收设备连接至同一局域网,打开任意浏览器。
- 在地址栏输入主控端 IP + 端口,或直接扫描二维码,发起连接请求。
- 主控端通过连接授权后,接收端浏览器即可加载画面,实现副屏扩展、窗口拖拽与内容查看。
常见问题处理
无法创建虚拟屏
检查软件权限是否完整授予,重启 simpleDisplay 后重新尝试。
接收端无法访问
关闭 macOS 系统防火墙,或在防火墙规则中放行对应访问端口;确认两端设备 IP 处于同一网段。
画面传输卡顿
优先使用有线网络或 5G 频段 WiFi,适当降低共享画面分辨率,关闭主控端高负载后台程序。
方案特点
- 开源免费:全部组件无付费项、无功能阉割,使用成本低。
- 稳定性强:虚拟屏驱动简洁,不会出现光标丢失、桌面异常等问题。
- 使用灵活:支持整屏、虚拟屏、独立窗口多种共享模式,适配不同使用场景。
- 跨平台兼容:接收端仅依赖浏览器,支持 Linux、Windows、移动设备等各类终端。
方案3:Win11局域网共享扩展屏幕到Ubuntu的方案
告别 AirPlay!用 Sunshine + Moonlight + 虚拟显示器,极低延迟,将 Windows 11 的扩展屏打到 Ubuntu 机器上!
前言
手里有一台 Ubuntu 系统的旧机器,想把它当作 Windows 11 主机的副屏,你可能会想到 UxPlay。但 UxPlay 基于苹果的 AirPlay 协议,一旦主系统换成 Windows,这条路就断了。
市面上常见的商业远程桌面(如 TeamViewer、ToDesk)无法原生支持“真·扩展屏”模式,且局域网内画面高频断续。
今天给大家分享一套完全开源、零成本、画质最高、延迟极低(压到 10ms 以内)的纯局域网无线扩展屏方案:Sunshine(服务端) + Moonlight(客户端) + IddSampleDriver(虚拟显示器驱动)。
其核心逻辑非常简单:在 Windows 11 中通过驱动虚拟出一块根本不存在的“空显示器”,将其设置为扩展模式,然后通过游戏级的串流技术,把这块虚拟屏幕的画面实时打到 Ubuntu 的浏览器或客户端上。
🛠️ 方案核心架构与组件简介
- IddSampleDriver:微软官方提供样板、社区开源维护的 Windows 虚拟显示器驱动。让 Win11 误以为你插了一根物理 HDMI 线,凭空多出一个可调节分辨率和刷新率的“第二屏幕”。
- Sunshine:目前开源界最强、超低延迟的视频串流服务端。支持 NVIDIA、AMD、Intel 三家显卡的硬件级编码(NVENC/AMF/QSV),效率远超常规远程桌面协议。
- Moonlight:基于 NVIDIA Shield 协议的开源串流客户端,全平台支持(包括 Linux),负责接收并解码画面。
🚀 实现步骤
第一步:Windows 11 端配置(发送端)
1. 安装虚拟显示器驱动 (IddSampleDriver)
我们需要先在 Win11 上制造出一块“虚拟扩展屏”。
- 前往 GitHub 下载开源驱动包:IddSampleDriver Releases。
- 解压下载的压缩包到一个固定路径(例如
C:\IddSampleDriver)。 - 复制文件夹内的
option.txt到C:\iddsampledriver\option.txt(这个文件可以用来配置虚拟屏幕支持的分辨率和刷新率,默认已带 1080p 60Hz )。 - 安装驱动:
- 右键点击 Windows 开始按钮,选择 设备管理器。
- 点击顶部菜单的 操作 -> 添加过时硬件。
- 选择 安装我手动从列表选择的硬件(高级) -> 点击 显示适配器 -> 点击 从磁盘安装。
- 浏览并选择你刚刚解压的文件夹中的
gandvidd.inf,一路点击确定完成安装。
- 验证:此时打开 Win11 的
设置 -> 系统 -> 屏幕,你会发现多出来一块显示器。将其多显示器设置改为 “扩展这些显示”。
2. 安装并配置 Sunshine 服务端
- 前往 GitHub 下载并安装:Sunshine Releases(选择 Windows 对应的
.exe安装包)。 - 安装完成后启动 Sunshine,并在浏览器中打开它的 Web 配置后台(通常是
https://localhost:47990)。 - 初次登录:设置你的用户名和密码。
- 绑定虚拟显示器:
- 在 Sunshine 后台点击 Configuration -> Audio/Video。
- 找到 Output Name(或者 Output index)选项。这里需要指定 Sunshine 捕获哪块屏幕。
- 小技巧:在 Windows 命令行(CMD)运行
dxdiag或在 Sunshine 日志中查看,找出你刚刚创建的虚拟显示器的名称(通常形如\\.\DISPLAY2),填入该项中。 - 点击 Save 并重启 Sunshine 服务。
第二步:Ubuntu 接收端配置
Ubuntu 端作为显示器,只需要安装轻量级的 Moonlight 客户端即可。
1. 安装 Moonlight
Moonlight 已经进入了绝大多数 Linux 的标准软件源。打开 Ubuntu 终端执行:
sudo snap install moonlight
# 或者使用 Flatpak 安装
flatpak install flathub com.limelight_stream.Moonlight
2. 配对连接
- 确保 Ubuntu 和 Win11 在同一个路由器(同一个局域网)下。
- 在 Ubuntu 中打开 Moonlight,软件会自动扫描局域网内的 Windows 主机。
- 点击扫出来的 Win11 主机图标,此时 Ubuntu 屏幕上会弹出一个 4位数的配对码。
- 回到 Windows 电脑,打开 Sunshine 的 Web 后台,点击顶部菜单的 PIN,将这 4 位数输入进去,点击 Send。
- 配对成功!
第三步:全屏畅享无线扩展屏
- 在 Ubuntu 的 Moonlight 界面中,点击已配对的 Windows 主机。
- 选择进入默认的 Desktop(桌面)应用。
- Moonlight 会自动切入全屏。因为我们在 Sunshine 端锁定了只捕获虚拟的第二屏幕,此时你的 Ubuntu 屏幕就会完美呈现 Windows 11 的扩展屏画面。
- 把 Windows 上的浏览器、代码编辑器往屏幕右侧一拉,顺畅地滑入 Ubuntu 屏幕,大功告成!
💡 进阶优化与调优
为了达到接近插线般的物理丝滑感,建议进行以下微调:
- 色彩与画质(针对写代码): 在 Ubuntu 的 Moonlight 设置(齿轮图标)中,将码率(Bitrate)调至 30Mbps - 50Mbps(局域网千兆/Wi-Fi 6 毫无压力),并将视频编码优先设置为 H.265 / HEVC 或 AV1,文字会变得极其锐利,完全没有糊的感觉。
- 鼠标平滑度: 在 Moonlight 设置中,勾选 “Optimize mouse for remote desktop instead of games”(针对远程桌面优化鼠标),这样可以防止鼠标在两台电脑间切换时产生漂移感。
- 音频重定向: 如果你希望副屏(Ubuntu)也能发出声音,可以在 Sunshine 的 Audio 设置中保持默认配置;如果不需要,可以在连接时在 Moonlight 客户端勾选“静音客户端音频”。
总结
相比于传统的 WebRTC(如 Deskreen)方案,Sunshine + Moonlight 直接走显卡硬件编解码通道,将局域网串流延迟降至10ms级别。无论是日常编写代码、看高清视频,甚至是偶尔把微信、网页挂在副屏上,都完全感受不到任何无线的撕裂和延迟。赶快把你手边吃灰的 Linux 设备利用起来吧!