- Published on
Parsec 远程畅玩实战排坑
- Authors
- Name
- WoadZS
本文的目的在于记录实践过程中遇到的困难和解决方案,能够随手搜索到的基础操作和教程不再赘述。
另外本文异地组网均基于 Zerotier,如果有公网 IP,无论 IPv4 或是 IPv6,可尝试直连。
远程畅玩可用方案
主要有以下几种:
RDP(Remote Desktop Protocol)
微软出品的远程桌面协议,最佳的用途其实是画面刷新要求不太高的远程办公。由于该协议下相当一部分画面是客户端渲染,因此画面非常优秀,但也仅限于 Windows 的原生画面,第三方游戏画面会导致画面延迟,画质降低以及系统占用提高的问题。
对于 RDP 的评价是:
- 如果用于游戏,仅推荐用于画面变化相对较小,即时性要求较低的游戏,比如卡牌。
- RDP 可用于远程控制配置服务端机器,在需要远程修改或其他办公需求时,RDP 是首选。
Steam 远程畅玩
Steam 远程畅玩只需要在服务端和客户端登录同一个 Steam 账号即可,然后在客户机上点击服务端安装好的游戏远程畅玩就好了,简单粗暴。
但是就我个人而言,我个人想玩儿的战地 2042在 Steam 的远程畅玩中出现鼠标无法点击的 bug,遂放弃。
对于 Steam 远程畅玩的评价是:
- 开箱即用,简单粗暴,支持 P2P;
- 可能会有 bug,或遇到非 Steam 游戏,就需要寻找替代方案。
Moonlight
Moonlight 是利用老黄 Nvidia GameStream 的串流软件。好,我的 Vega 64 骂骂咧咧地退出了群聊。
Parsec
Parsec 是类似于 Moonlight 的串流软件,但是优点在于 A 卡和 N 卡都支持,操作也非常简便,同 Steam,在服务端和客户端登录同一 Parsec 账号即可实现串流。并且 Parsec 支持 P2P,这对降低延迟有着莫大的帮助。
基于以上的分析,自己串流方案就是:
Parsec 使用排障
连接上后卡 Windows 登录界面
这个问题和 Steam 远程畅玩遭遇的 "Would you like to accept secure desktop input from Steam?"
弹窗的原因是一样的,是因为服务端主机被远程锁定,这个锁定原因可能是链接之前刚好退出了 RDP,RDP 在退出时出于安全原因会将服务端主机锁定。
为了避免登出 RDP 自动锁定屏幕,可以参照《如何在不锁屏的情况下登出远程 Windows PC》这篇文章,在任一位置新建一个 .cmd
的脚本,内容为:
@ECHO OFF
NET SESSION 1>NUL 2>NUL
IF %ERRORLEVEL% NEQ 0 GOTO ELEVATE
GOTO ADMINTASKS
:ELEVATE
CD /d %~dp0
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();"
EXIT
:ADMINTASKS
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "$sessionid=((quser $env:USERNAME | select -Skip 1) -split '\s+')[2]; tscon $sessionid /dest:console"
这条命令是使用 powershell 查询当前用户的 sessionid,然后使用 tscon 断开当前连接, 这种方式断开连接后,系统不会自动锁定屏幕,而会把控制权交回本地。 以后需要断开 RDP 时,仅需要点击这个文件并允许在弹出的 UAC 确认框即可。在此之后再链接 Parsec 就不会遭遇卡登录界面的情况,Steam 远程畅玩也不会再遇到可怕的弹窗。
Parsec 黑屏
Parsec 连接后黑屏的原因在于没有一个可供抓取的显示器输出,显示器此时是关闭的(不在家关了省电)。
因此为了方便 Parsec 抓取屏幕,有两种常见办法:
- HDMI 诱骗器,出门右拐淘宝,原理是给显卡上假负载,诱骗显卡输出;
- Indirect Display 虚拟显示驱动。
这里我们用第二种方法,主要参考资料是《虚拟显示器终极解决方案 IndirectDisplay》这篇文章。
大致流程(非自编译)为:
- 在服务端机器上下载这个链接的所有内容(页面左上角
下载
可一次性下载全部内容)并解压到某处。
另外特别提示:
- 使用完成后,强烈建议按照提示使用
Ctrl + X
关闭虚拟显示器,否则在使用真正的物理显示器时,可能会遇到桌面丢失或光标丢失等问题。