Moonlight+Sunshine远程串流:把平板当副屏的完整配置指南

发布时间:2026/9/19 11:13:15
Moonlight+Sunshine远程串流:把平板当副屏的完整配置指南 事情是这样的我手里有一台台式机放在书房里接显示器干活、打游戏但有时候想窝在沙发上继续用或者临时需要把平板当副屏看资料、盯监控数据。一开始想过再买一块便携屏后来算了一笔账觉得为这点需求花钱不划算就折腾起了软件串流。试了一圈下来最顺手的就是 Moonlight 配合 Sunshine 这套开源自组方案。这套组合有意思的地方在于它不仅能远程串流游戏画面还能把没有视频输入口的设备变成了扩展屏。也就是说你不需要买采集卡不需要拖一堆线只要主机和客户端在同一个网络里就能把平板、笔记本、甚至手机当成第二块屏幕。用了几个月从最初的摸黑配置到现在稳定复现整套流程我已经非常熟了。这篇文章就把我从版本选择、安装配对、扩展屏配置到画质延迟调优的全过程写下来希望能让第一次接触 Moonlight 和 Sunshine 的人少走弯路。1. 先看整体这套方案解决什么问题1.1 为什么是Moonlight和Sunshine这对组合很多年前NVIDIA显卡自带一个叫 GameStream 的功能原本是为了让Shield掌机串流PC游戏用的。后来社区把它破解到通用客户端就有了Moonlight。你只要在电脑端开启GameStream再用Moonlight去连接就能把主机桌面和游戏画面推送到其他设备。这套链路在当年确实是体验门槛最低的串流方案。但痛点也很明显GameStream只认NVIDIA显卡AMD和Intel用户根本用不上。而且NVIDIA后来在驱动里逐步收紧甚至移除了这个功能很多人某天更新驱动之后发现串流直接失效了。Sunshine 就是在这样的背景下出现的替代服务端。它是一个跨平台的开源串流服务端不绑定显卡品牌Windows、Linux、macOS都可以跑视频编码走的是各个平台上的硬件编码接口NVIDIA用NVENCAMD用AMFIntel用QSV整体体验和原来GameStream基本一致某些方面甚至更好。从实际测试来看Sunshine的兼容性、更新频率和配置灵活性都比老GameStream强很多。比如它可以单独给每个应用配置启动参数可以指定串流哪块显示器也支持虚拟显示器输出。再加上Moonlight客户端这边持续更新支持HDR、高刷新率、触控回传、手柄回传这对组合现在已经成了局域网串流的事实标准。如果你还停留在“串流必须买某品牌全家桶”的认知里那真的该重新认识一下这两个项目。1.2 串流与扩展屏的本质一句话讲清楚串流这件事本质上就是两台设备之间传视频和指令。服务端把显卡输出的画面用硬件编码器压成H.264或HEVC视频流通过网络发给客户端客户端解码显示同时把鼠标、键盘、手柄的输入发回服务端服务端再模拟本地输入操作。你把“客户端”看成一台无线显示器加无线键鼠就理解整个逻辑了。扩展屏就不太一样。正常情况下服务端只会编码主显示器上的画面你串流看到的就等于坐在电脑前的画面。要做扩展屏就得让服务端“凭空”多输出一路画面。这里有这么几条路一是加一块物理副屏但大多数人不会为了这个专门买显示器二是在目标设备上再接一个视频欺骗器三是用虚拟显示器驱动直接在系统里创建一个不存在的显示器然后让Sunshine去编码这个虚拟屏幕。第三种方案最省事软件模拟搞定成本为零。后面的操作里我会重点讲虚拟显示器这条路。它不仅是把平板变成副屏的关键也是远程桌面的进阶玩法。理解了这个思路你会发现Moonlight和Sunshine不再是单纯的“游戏串流工具”而是一个可以按需创造画面的远程接入层。2. 挑选版本的必修课客户端与服务端怎么选2.1 Moonlight客户端标准版、Qt版和奇怪的分支版本Moonlight客户端在官网和各大应用商店都能找到。Windows、macOS、Linux、Android、iOS、甚至Switch上都有对应版本。对于一般用户我建议先装官方正式版因为它最稳定更新也及时。不过在实际社区里你还会听到几个高频词moonlight qt、阿西西moonlight、某些第三方魔改版。这里我展开说说它们的区别。moonlight qt 是指基于Qt框架重构的客户端分支。Qt版的主要价值是跨平台界面统一在Linux桌面和Steam Deck这类设备上体验更好同时修复了一些老版本在高分屏下的界面缩放问题。如果你用的是Windows正式版和Qt版功能差异不大随便选但如果你的客户端设备是Linux或者掌机我建议优先尝试Qt版遇到兼容问题的概率低一些。至于“阿西西moonlight”这类叫法其实是社区用户对某些集成版或加速版客户端的俗称来源有点杂有的把解码器库更新了有的改了UI布局有的打包了更多编解码格式。我的看法是串流这种对稳定性要求高的场景尽量别碰来源不明的改版。解码环节一旦出问题画面撕裂、延迟忽高忽低排查起来特别费劲。官方版或者官方仓库的Qt分支足够应对绝大多数场景。除了版本选择客户端还有一个容易忽略的地方解码能力。手机或平板的硬件解码芯片决定你能跑多高的码率和分辨率。旧设备跑4K 60帧会吃力但跑1080P 60帧基本没问题。选配参数之前先搞清楚自己的设备支持什么硬解格式这也是后面调画质的基础。2.2 Sunshine服务端AMD、Intel、NVIDIA设备怎么选安装包Sunshine的服务端安装包其实不区分显卡型号区分的是操作系统和平台架构。很多人搜“amd处理器选择哪个sunshine安装包”其实是把服务端和显卡驱动混在一起了。Sunshine本身只是一个软件壳子它不包含视频编码器真正的编码工作由系统和显卡驱动提供。不管你用的是AMD显卡、Intel核显还是NVIDIA独显只要系统里装上对应驱动Sunshine就能调用硬件编码能力。具体到安装包选择Windows系统下载.exe安装程序即可注意选x64版本。Linux系统则要关注发行版Debian/Ubuntu系选.debFedora选.rpm如果你用的是Arch系可以直接走AUR。包名通常是sunshine版本号后面会标注linux-x64。顺手提一句如果你用软路由或者NAS上的Linux系统跑服务端还要确认内核和mesa驱动版本够新AMD GPU在Linux下依赖VAAPI老内核经常会遇到编码会话创建失败。NVIDIA用户需要注意一点新驱动默认会后台启动一个名为NVENC的编码服务这个不需要额外开启Sunshine调用时只需要给足显存和控制台权限即可。AMD用户在Windows下如果串流时画面绿屏或报错大多数情况是驱动版本的编码器接口回退问题解决办法是升级到Adrenalin新版驱动并把Sunshine升级到最新。Intel核显用户则要确认显卡驱动里的“Intel显卡控制中心”中允许使用硬件编码。简单总结选安装包看操作系统不要看CPU和显卡装好之后能不能编码看显卡驱动和Sunshine日志。把这两件事分开理解很多困惑就解决了。3. 从安装到配对第一次跑通串流全流程3.1 服务端安装Windows与Linux两套路径先讲Windows这是大多数人跑Sunshine的环境。从GitHub Releases页面下载最新的.exe安装包双击运行下一步下一步即可。安装完成后系统托盘会出现Sunshine图标第一次运行会自动打开浏览器进入管理后台默认地址是 https://localhost:47990 。注意这里有一道自签名证书的警告浏览器会提示“不安全”这个很正常选择继续访问即可。管理后台的默认用户名和密码会打印在安装结束时的提示窗口里但新版更推荐你直接用系统账户的登录验证来对接入端做授权。进入后台之后建议先干两件事一是修改管理后台的登录密码二是确认显卡编码状态正常。在后台的“系统信息”或“日志”页如果能看到类似“Video Encodernvenc/amf/qsv”的字样就说明硬件编码已经被识别。第一次千万别急着关页面多刷新几次看日志确认没有编码器相关报错这才是真正的准备完成。Linux下面安装稍复杂但也有固定套路。以Ubuntu为例先安装依赖再下载.deb包安装。装完后Sunshine会以系统服务的形式跑起来同样访问localhost:47990配置。Linux下最常遇到的坑是权限不足导致无法访问GPU节点解决办法是把运行Sunshine的用户加入video和render组。另外有些桌面环境默认没有开启Wayland下面的屏幕采集权限如果你用的是Wayland会话串流画面黑屏的概率很大建议先切回X11测试稳定后再考虑折腾Wayland下的pipewire采集。3.2 配对与关键参数让客户端找到主机服务端就绪后打开客户端。第一次使用Moonlight时它会提示“自动发现主机”或“手动添加主机”。局域网内多数情况能自动发现如果发现不了大概率是防火墙拦了mDNS广播这时候直接手动输入主机的局域网IP就行简单直接。添加主机后客户端会弹出一串4位PIN码。回到服务端管理后台在“配对”页面输入这串PIN等待几秒客户端那边就会显示连接成功。这个配对机制走的是端到端加密认证比早期版本拿IP白名单裸连要安全得多。配对完成后客户端会列出服务端可用的应用列表默认会有Desktop、Steam等选项。我建议第一次先用“Desktop”做连通性测试别一上来就串一个大型游戏。连接成功并看到桌面画面后再逐步调整参数。这里有一个很容易踩的坑串流“Desktop”时如果主机端没有登录桌面或锁屏了有些系统会直接黑屏或显示用户登录界面。解决方案是确认服务端机器处于已解锁状态同时可以在Sunshine后台把“黑屏”相关的显示器休眠策略关掉保持画面持续输出。配对阶段还有两个细节值得留意。一是客户端的“帧率”和“分辨率”下拉菜单里面显示的选项由服务端的当前输出能力决定如果你在主机上没接能输出144Hz的显示器客户端就选不到144帧。二是“码率”选项建议先保持默认20Mbps跑通流程后再去压极限。这些参数后面单独展开。4. 把平板当成第二块屏幕扩展屏的实战配置4.1 虚拟显示器没有物理副屏也能出扩展屏前面说过做扩展屏的关键是让服务端多一个画面输出。在Windows上最成熟的方案是用虚拟显示器驱动我常用的是IddSampleDriver这个开源项目。它的原理是实现了Windows的间接显示驱动接口IDD设备管理器里会多出一个显示器但它不接任何物理线系统会把它当成一个真实显示器来管理。装上之后你可以在显示设置里把虚拟显示器设为“扩展这些显示器”于是主机桌面上就出现了一块不存在的第二屏。为什么要多此一举因为Sunshine在应用配置里可以指定串流某个显示器而不是只能串主屏。你在后台为Moonlight客户端新建一个应用启动参数里加上显示器ID当你从平板上连接这个应用时看到的画面就是扩展屏上的内容。主机主屏继续显示你的原桌面平板则独立显示另一份内容互不干扰。具体安装过程并不复杂。从IddSampleDriver的Release页面下载文件解压到一个固定目录以管理员身份运行install.bat重启电脑再到设备管理器里就能看到“虚拟显示器”了。装好之后WinP打开多显示器设置选择“扩展”然后拖动两块屏幕的位置关系。如果你只有一块物理屏和一块虚拟屏把虚拟屏放在右边即可这个位置关系决定了平板左右滑动时的方向感建议按实际坐姿来排。Linux下实现虚拟显示器的思路也类似但路径不太一样。GNOME和KDE都支持headless HDMI模拟器部分驱动可以在没有物理显示器的情况下创建一个虚拟输出。如果你在Linux上跑Sunshine还要副屏建议先查一下自己的桌面环境是否支持虚拟输出。实在不行还可以用老办法接一个HDMI诱骗器成本几十块效果一样。4.2 触控与键鼠映射交互层的细节调教扩展屏连通后紧接着的问题是交互。平板如果支持触控Moonlight客户端默认会把触摸事件映射为鼠标左键单指点击等于点击双指滑动等于滚轮长按等于右键菜单。这套映射在浏览网页和翻看文档时足够用但如果你是想把副屏当画板或者做精细操作默认映射会显得笨拙。我的做法是结合两端一起调。客户端这边在Settings里找到“Touch/Mouse”相关的选项把“双指滑动为滚轮”的灵敏度调低一些同时开启“触觉反馈”至少能减少误触。服务端那边如果你希望平板触摸能直接模拟触控笔需要额外跑一个虚拟平板驱动的工具把Touch输入转换成数字化笔迹这属于进阶玩法压感设备玩家可以深入研究。键盘映射也值得说一句。Moonlight会把客户端设备上连接的外接键鼠直接回传到主机所以你在平板上插一套蓝牙键鼠就等于在远程操作主机。蓝牙键鼠的输入延迟在局域网内基本感知不到但要注意平板的蓝牙和Wi-Fi共用天线时高负载下可能会出现卡顿这时候优先插USB接收器。触控回传延迟感受不明显的另一个前提是网络稳定这个下一章专门讲。除了输入设备扩展屏上的窗口管理也是实操里容易忽略的。因为虚拟屏幕的存在你在主机上把窗口拖到虚拟屏时这个窗口从物理屏上会消失看起来像是“丢了”。第一次用的时候我经常慌以为程序崩了其实它只是被拖到了另一块看不见的屏上。所以建议台式机用户给主力浏览器或工具设置固定的打开位置或者在多屏管理工具里给虚拟屏一个醒目的壁纸这样一眼就能看出当前在哪块屏上操作。5. 画质和延迟串流体验的调优方案5.1 码率、分辨率、帧率三件套怎么定远程串流最影响体验的三样东西就是码率、分辨率、帧率。它们之间互相制约而且受网络带宽和客户端解码能力双重限制。我刚上手时贪心直接拉满4K 60帧100Mbps码率结果画面虽然清晰但延迟上升到无法接受的地步后来才慢慢摸清了三者的搭配逻辑。先说码率。在局域网千兆环境里码率设置从10Mbps到150Mbps都没有问题。数值越高画面细节保留越完整动态场景下的马赛克越少但代价是网络占用和延迟。我的建议是分场景来纯办公、看文档30Mbps足够普通游戏50Mbps到80Mbps赛车、FPS这类高动态画面才需要上到100Mbps以上。如果家里Wi-Fi环境一般先别追高稳定优先。然后是分辨率。客户端下拉菜单里能选的分辨率上限由主机当前输出分辨率决定。很多人以为选了4K就万事大吉其实如果主机显示器本身只有1080P客户端选4K也只是拉伸。做扩展屏时要注意虚拟显示器驱动的默认分辨率可能是1080P你如果想要2K或4K的副屏需要在主机的显示设置里手动把虚拟显示器改成对应分辨率甚至自定义刷新率。这一步不做好后续串流画质再好也是白搭。帧率相对简单。60帧是流畅的底线如果你主机和客户端都支持高刷那就直接跑120帧。高刷模式对网络要求翻倍所以建议只在网络干净的场景下开启。需要提醒的是部分安卓客户端的高刷新率并不是默认开启的要在客户端的帧率设置里主动勾选同时在Host端确认虚拟显示器的刷新率没有被系统限制到60Hz。5.2 无线网络、路由器选项与延迟排查网络是串流体验的胜负手没有之一。用Wi-Fi连接时5GHz频段是底线2.4GHz频段串流基本没法看。如果你家里有Wi-Fi 6路由器客户端的连接速度能跑到1200Mbps以上串流100Mbps码率的画面就很从容。但Wi-Fi干扰始终存在邻居家的无线网络、微波炉、蓝牙设备都可能造成瞬时丢包画面上表现为马赛克和卡顿。降低延迟的第一步是把服务端主机用网线直连路由器让无线带宽完全留给客户端。很多人不舍得给台式机拉网线总觉得Wi-Fi网卡看起来速度不低。实际测下来串流这种低延迟高码率的流量非常敏感Wi-Fi的不稳定直接反映为画面抖动有线连接能解决一半以上的延迟波动。路由器侧也有两个值得调整的项目。一是开启 QoS服务质量把主机和客户端的MAC地址设为高优先级避免其他设备抢占带宽二是关闭路由器的硬件加速NAT个别路由器开启硬件加速后会导致局域网设备间的转发延迟异常听起来很反直觉但我确实遇到过关了之后串流失色明显减少的情况。设置完成后用Moonlight自带的诊断看板查看延迟曲线目标是把“网络延迟”稳定在5毫秒以内低于10毫秒基本可玩超过20毫秒就要回头查无线干扰和路由器配置了。还有一类屏幕画面“发糊”的问题经常被误判成网络问题。串流时的视频编码默认采用“可变码率”为了在复杂画面下压缩体积部分帧会被削弱细节。如果你追求极致清晰度可以在Sunshine的编码设置里把码率控制改为CBR固定码率并调整GOP间隔牺牲一点码率波动换取稳定画质。这个方法在文字密集的界面上尤其明显看代码和表格时能感觉到字边锐利很多。6. 常见问题速查与避坑心得6.1 高频问题定位表折腾这套方案几个月把我在几个群和评论区看到的高频问题整理成了一张表按这个顺序排查能省下大把时间。问题现象常见原因快速解决方案客户端找不到主机防火墙拦截mDNS关闭Windows防火墙对Sunshine的拦截或手动添加IP配对的PIN码点完没反应服务端后台网页还没刷新出配对请求重启Sunshine服务重新打开配对页面连接后黑屏主机锁屏 / 显示器休眠解锁主机在Sunshine后台关闭显示器休眠画面卡顿、马赛克Wi-Fi信号弱 / 码率设置过高客户端改走5GHz频段降低码率再逐步升画面模糊、文字发虚可变码率劣化Sunshine编码设置改为CBR固定码率绿屏或花屏显卡驱动和编码器接口版本不匹配升级显卡驱动同时升级Sunshine到最新版没有声音客户端默认未开启音频回传在Moonlight设置里打开音频输出检查主机音量手柄连不上服务端未开启虚拟手柄驱动在Sunshine后台启用虚拟控制器和手柄支持这张表覆盖了我遇到过的绝大多数问题。其中有两点想特别拎出来强调一是打开Sunshine管理后台时一定别跳过日志页任何编码器异常都会在那里留下记录比肉眼猜原因快得多二是别忽略系统防火墙Windows更新有时候会静默重置防火墙规则导致原本好用的串流突然失配重新放行Sunshine和Moonlight的进程即可。6.2 几条少有人提的实战经验最后分享几个我踩过坑之后沉淀下来的独家心得属于那种文档里不会写、但实际特别影响体验的细节。第一Sunshine的“显示器编号”在Windows下并不是固定的。如果你插拔过物理显示器虚拟显示器的编号可能漂移导致串流应用启动时串到主屏。我的做法是给每一个串流应用设置固定的启动参数直接指定虚拟显示器的DevicePath而不是靠编号碰运气。虽然配置起来多一点工作量但一劳永逸换线、重启都不怕。第二AMD用户升级显卡驱动之后建议把Sunshine也顺手升级到最新版。两者之间的编码器接口适配是持续维护的老版Sunshine配新版Adrenalin偶发编码会话崩溃新版发版说明里经常写着“支持最新AMD驱动”这类更新直接跟收益明显。作为参考在AMD平台的Windows下选择Sunshine安装包时不用纠结特殊版本标准x64安装包加最新驱动就是最优解。第三扩展屏场景下客户端的Caffeine防止睡眠功能要配合主机端的电源计划一起用。如果主机在30分钟后休眠虚拟副屏的内容也会立刻中断。我专门为主机设了一个“高性能”电源计划并关闭了所有休眠和显示器关闭策略。串流这种场景画面常在但系统不能睡。写在最后用Moonlight加Sunshine的组合做扩展屏和远程串流本质上是在现有设备上压榨出更多使用场景花的成本几乎为零见效却非常直接。我个人的体会是这套方案真正降低门槛的地方不在于它多么高深而在于把“视频传输”和“输入回传”这两件小事做扎实了然后给了用户足够的配置自由度。如果你看完文章只想记住三句话那我会说服务端选Sunshine没错客户端选官方Moonlight更省心做扩展屏就用虚拟显示器别折腾物理副屏画质和延迟的优先顺序永远是网络稳定性第一、码率第二、分辨率第三。按这个思路去配少走弯路。最后再分享一个小技巧如果你经常在扩展屏上看网页和写文档可以给Moonlight单独创建一个名为“Docs”的串流应用启动参数直接指向浏览器的特定URL这样从平板连接时它打开的就是一个全屏的浏览器窗口配合触控加成体验非常接近一台原生平板电脑。这个玩法我一直在用强烈推荐试一下。