rev(东↑西↓)
rev(东↑西↓)
Published on 2025-02-18 / 5 Visits

实现局域网和广域网游戏串流的有效方案:基于Sunshine和Moonlight的远程桌面解决方案

一句话总结

在被控制电脑上下载Sunshine并启用后,控制端(可能是另一台电脑、平板或手机)则需下载Moonlight。局域网内可以直接通过被控电脑的IP地址进行串流,而在广域网下,则需要通过公网IP或异地组网来实现串流。

注:

  1. Sunshine官方地址:GitHub Sunshine
  2. Moonlight官方地址(安卓端推荐魔改版):GitHub Moonlight
  3. Moonlight魔改版(仅安卓端):GitHub Axixi2233

0. 平台介绍

被控制的电脑:操作系统为Windows 11,版本23H2,CPU为i7-13790F,GPU为Nvidia 4080。

串流设备:手机为小米12S Pro,MIUI 14.0.11;平板为小米平板6 Pro,HyperOS 1.0.5.0UMYCNXM。

请注意,其他平台尚未经过测试。同时,被控制的电脑需要具有稳定且高速的上行带宽。

1. 软件下载

请前往上述网站下载相应平台的版本。

对于GitHub项目,通常在“Releases”页面会有整理好的文件,您只需点击后在“Assets”中找到对应版本即可下载。

Image

在Windows上点击相应链接即可下载并安装。

Image

对于Moonlight,过程类似。我使用的是阿西西版,您只需在手机或平板上进行安装,其余平台可在官方仓库中选择对应版本下载即可。

2. 局域网串流

首先,启动Sunshine,它仅提供网页版UI(WebUI)。您可以在浏览器中输入localhost:47990进行访问,或通过右下角的“显示隐藏的图标”右键单击Sunshine图标来打开它。

Image

初次连接时,您可能会看到“不安全的网站”或“面临潜在的安全风险”的提示,您只需选择继续访问即可。

Image

首次登录需要设置用户名和密码,这些信息将用于以后访问控制界面。对于局域网串流来说,网络安全问题相对较小,您可以随意设置,但请务必记住这些信息。

登录后,您可以在设置(Configuration)中选择中文界面并保存,然后重启刷新页面以显示中文。

Image

一般情况下,其它设置无需修改。有关详细信息,您可以参考官方文档,链接如下:Sunshine官方文档

接下来,我们需要获取电脑的IP地址,这里介绍两种方法:

1)打开命令行(按Win + R,输入cmd,然后按确认;或者在空白处右键,选择在终端运行)。

ImageImage

输入ipconfig并回车,根据您的连接方式(WLAN或以太网)找到并复制IPv4地址,发送给串流设备以备使用。

Image

确保串流设备与电脑连接到同一网络。然后打开Moonlight,点击加号,将刚才复制的IP地址粘贴进去并确认。

Image

接着会弹出窗口提示输入PIN码,您可以再次点击图标以获取PIN码。

Image

在电脑的Sunshine WebUI中点击“发送PIN码”,即可完成串流设置。

Image

补充说明

  1. 在Moonlight的设置界面中,您可以更改分辨率、帧率等选项,根据网络状况自行选择。一般来说,局域网不会受到网络速度的限制。

  2. 如果串流失败,您可以尝试为电脑的某些端口设置防火墙例外,具体操作步骤如下:

    1)右键点击左下角的Windows图标,选择“Windows终端(管理员)”。

    Image

    2)输入以下两条命令:

    netsh advfirewall firewall add rule name="GameStream UDP" dir=in protocol=udp localport=5353,47998-48010 action=allow
    netsh advfirewall firewall add rule name="GameStream TCP" dir=in protocol=tcp localport=47984,47989,48010 action=allow
    
  3. 如果问题仍未解决,请访问该页面寻找解决方案:Moonlight Troubleshooting

  4. 对于某些校园网(如中大),只要电脑和串流设备都在同一校园网络中,就可以实现串流。这意味着如果电脑在东校区,我可以在南校区用平板远程控制我的电脑(其他校区尚未测试),并且延迟仅约10ms。

  5. 对于远程游戏,您可以使用Nvidia GeForce的SHIELD进行游戏远程串流,这样游戏会直接显示在Moonlight中。只需通过蓝牙将手柄连接到串流设备,即可实现远程操控(笔者使用的Nvidia APP没有此功能,因此无法进行演示)。

  6. 在使用蓝牙键盘和鼠标连接安卓平板进行远程办公时,可能会出现无法使用某些快捷键(如Win+D和Esc)的问题。使用阿西西的魔改版,开启无障碍模式即可解决此问题。

    Image

    此外,阿西西版的触控板模式能够将平板直接用作触控板。

    Image

5.1. 在Moonlight串流后的界面,使用三指下滑手势可以呼出虚拟键盘。您也可以在GitHub上下载Hacker's Keyboard并启用,以获得带有Esc键的虚拟键盘,这在一定程度上可以解决办公问题,下载链接:Hacker's Keyboard

3. 广域网串流

由于笔者暂时未能通过公网IP成功实现远程串流,因此只介绍异地组网的方法。关于公网串流的详细内容,请参考此视频:B站视频

(实际上,异地组网也可以参考这个视频,局域网串流同样可以参考该视频。)

异地组网的方法有多种,我所了解的包括服务器中转和P2P连接两种方式。前者需要一台具有公网IP的服务器,并且延迟较高,因此在此使用皎月连进行P2P异地组网。

皎月连官网:皎月连

在电脑和串流设备上下载相应平台的皎月连,运行后,您可以在端口33272或者右键隐藏图标打开WebUI。

Image

注册账号并登录,然后在服务端设置页面中设置访问密码,启用组网模式并启动服务。

Image

在串流端登录相同账号并选择在线主机,点击连接,即可实现异地组网。

Image

在Moonlight中直接添加“局域网IP”,例如上图中的10.6.22.1,即可完成串流设置。