玩机日记 6 远程开关PVE主机和虚拟机,远程监视性能,使用moonlight远程连接虚拟机Windows11桌面串流打游戏,配置sunshine的ssl

目录

1、手机远程开关虚拟机、远程管理pve、远程关闭pve(不含启动)

2、远程开机PVE(WOL)

开启PVE的wake on lan

使用ssh隧道远程访问路由器的管理页面,发送wol

配置从手机/平板桌面一键连接到路由器(可选)

3、使用sunshine+moonlight远程连接到Windows11虚拟机

配置sunshine

安装配置moonlight

串流游戏测试


1、手机远程开关虚拟机、远程管理pve、远程关闭pve(不含启动)

下载pve手机端

 输入你的域名进行登录。比如你在浏览器打开 pve 的链接是 https://www.baidu.com:8006 那这里就输入 www.baidu.com

如果浏览器里面是 https://baidu.com:8006 没有 www,那这里也输入 baidu.com 不带 www

如果浏览器里面是 https://www.baidu.com:8007 不是默认的 8006 端口,那就输入 www.baidu.com:8007

注意,这里拿 baidu 来举例子,应该输入的是你自己购买的域名,不是真的叫你把百度的网址输进去!

点击 continue,输入 root 账号和密码进行登录

这个客户端还是很好用的,可以远程遥控虚拟机开机重启关机,以及遥控 pve 关机,查看实时性能等等。可惜不能查看功耗,可以买个支持查看实时功率的米家智能插座(买之前看清楚,不是所有小米插座都能看功率!)

2、远程开机PVE(WOL)

开启PVE的wake on lan

首先要在bios里面设置开启网络唤醒

查看一下网络设备的名字

检查是否支持wol

ethtool enp2s0

#查看最后三行输出

#        Supports Wake-on: pumbg     #pumbg表示支持wol
#        Wake-on: d                  #d表示关闭了wol功能
#        Link detected: yes

启用wol

ethtool -s enp2s0 wol g

#这样就可以把d改成g,启用wol了
#再检查一下

ethtool enp2s0

#        Supports Wake-on: pumbg
#        Wake-on: g
#        Link detected: yes

#修改成功

每次重启都会自动关闭wol。所以需要把开启wol的命令添加到开机自动执行

vim /etc/rc.local

#按i输入以下内容


#!/bin/bash
/usr/sbin/ethtool -s enp2s0 wol g
exit 0


#按Esc :wq回车保存
#如果你的rc.local里面已经有东西了
#就把 /usr/sbin/ethtool -s enp2s0 wol g 这一行添加到 exit 0 上面就好了



#赋予可执行权限

chmod +x /etc/rc.local

然后重启pve,再次检查wol是否已开启。

reboot   #重启


cat /etc/rc.local


#        ……………
#        Supports Wake-on: pumbg
#        Wake-on: g                 检查是不是g已经开启了wol
#        Link detected: yes
使用ssh隧道远程访问路由器的管理页面,发送wol

如何发送wol,这个在网上有各种教程各种方法,我这里只介绍一种我自己使用的方法,仅仅适用于我自己的网络环境

我的主路由是openwrt所以可以这么操作。如果你的不是,那就搜索一下别的办法

直接把wol的端口转发到公网,这样不太安全。如果你把pve关机了,别的不怀好意的人恰好扫描到你的公网ip的wol端口是开启的,就可以往你的pve机器发送唤醒信号,不需要身份验证。因此我不建议把wol端口进行转发

那我想到两个办法。第一个办法是在路由器上面部署OpenVPN,配置好用户名和密码,在外时远程连接到自己家的VPN,这样就可以访问内网设备了。然后再给pve的内网ip发送wol

第二个办法是远程连接到路由器的ssh,然后使用路由器发送wol。感觉第二种方法比较简单,所以这里就用第二种方法了。

先配置openwrt的ssh

如果你觉得使用密码登录不安全的话,也可以关闭密码登录,然后在下面添加ssh公钥

打开手机/平板的termux

推荐使用zerotermux,可以一键换源

hanxinhao000/ZeroTermux

先点击一键换源

然后

pkg install openssh vim
#安装ssh和vim

新建remoteop.sh

vim ./remoteop.sh

#按i输入以下内容


#!/bin/bash
ssh -L 8080:localhost:80  root@你的.域名
#示例:ssh -L 8080:localhost:80  root@www.baidu.com


#按Esc :wq回车保存退出

#添加可执行权限
chmod +x ./remoteop.sh

这是什么意思呢?我们通过ssh隧道将路由器的80端口映射到了手机/平板的8080端口。路由器的80端口,也就是它的管理页面端口

运行remoteop,输入root密码(路由器的管理密码,不是你家WiFi的密码!)

./remoteop.sh

termux放在后台不要关掉,然后打开手机/平板的浏览器访问http://localhost:8080,就打开了路由器管理页面

使用op的网络唤醒插件,选择pve的内网ip,点击唤醒主机。

配置从手机/平板桌面一键连接到路由器(可选)
#先退出ssh
exit

#创建快捷方式文件夹
mkdir ./.shortcuts

#把remoteop.sh复制到快捷方式文件夹
cp ./remoteop.sh ./.shortcuts/
ls ./.shortcuts

安装termux widget

添加桌面小部件

点击右上角刷新,这时候我们的remoteop.sh应该就显示出来了

点击remoteop.sh,成功连接(可能要开启termux的后台弹出权限)

3、使用sunshine+moonlight远程连接到Windows11虚拟机

配置sunshine

下载sunshine基地版

qiin2333/Sunshine-Foundation: Sunshine is a Gamestream host for Moonlight.

一路点下一步安装好,期间会弹一个虚拟显示器驱动也安装一下

安装完之后右键任务栏sunshine图标open sunshine

先把语言改成简中

拉到最下面点保存

然后再点应用

sunshine会自动重启。之后关闭窗口并重新打开,就显示中文了

这里报错说没有安装vigembus,那现在安装一下

nefarius/ViGEmBus: Windows kernel-mode driver emulating well-known USB game controllers.

一路点下一步进行安装

任务栏restart一下sunshine

这样就没有报错了

配置串流时自动黑屏,先选择一下显卡

选择就是要用虚拟显示器

在下面找到 串流时显示器组合状态设定 禁用其它显示器

添加一个你手机/平板的屏幕分辨率

输入分辨率并点击加号

拉到最下面,保存,应用

开启upnp

开启公网访问,保存并应用

到路由器上面看一眼upnp添加成功了没有,如果没有的话也可以手动添加端口转发

建议先把网络改成静态ip

按照sunshine要求的tcp或者udp协议,像这样进行添加转发

添加好之后

配置一下ssl证书。还记得我们之前下载的pem文件吗?

玩机日记 1 前期准备工作:申请公网ipv4、购买域名、申请SSL证书-CSDN博客

保存并应用

配置好之后就可以在浏览器中访问:https://你的.域名:47990来打开webui了。左上角也是带锁的,意思是我们添加的ssl证书匹配了域名

不过这样登录不需要账号密码,比较危险

设置一下账号密码。第一次设置,两侧输入相同的用户名,密码左边不用输,只输右边就行了

然后用数据流量再次访问https://你的.域名:47990试试看

这样就必须要登录才能访问了

开启多内容编码器以提高性能

保存并应用

然后我们需要记忆一下屏幕组合

设备管理器启用虚拟显示器

修改系统设置,仅在大的屏幕(也就是物理屏幕)上显示

然后再禁用它

至此,sunshine设置完毕

安装配置moonlight

Release v12威力加强版 · qiin2333/moonlight-android

直接切换另一个网络或者开数据流量测试一下公网连接

点左边的加号

输入你的域名,前面不需要加https//,比如www.baidu.com

这里会要求输入pin码。我们模拟一下出门在外的情况,不要退出moonlight,不要切后台,moonlight切小窗或者小窗打开浏览器,打开webui(就是https://你的.域名:47990),点击顶上的pin码,输入pin码,点击发送。

这样就配对成功了。先不要连接,返回,点击左上角齿轮进入设置

调整分辨率

调整帧率

调整编解码器为hevc

勾选hdr

调整完设置重新连接电脑,选择desktop

连接成功,电脑屏幕熄灭。

返回选择退出并断开串流,电脑屏幕重新亮起

串流游戏测试

最后,玩个地平线5看看实力

我家有两个宽带,一个移动一个电信。pve Windows11在电信局域网下,我的平板使用移动宽带“远程”串流Windows11

原以为延迟会蛮高的,所以把ai难度降到了老手。跑了三圈环道,延迟居然还不错

串流编解码可能会稍微消耗一点gpu性能,不过画面帧率仍然在60以上。目前还是4k游戏分辨率,如果降低到平板分辨率的话,相信帧率还能更高。

2025/02/16更新:

如果出现打开hdr后,提示端口失效的问题。这种情况请更换原版moonlight或者别的第三方moonlight解决

基地版sunshine推荐到其他版本moonlight:

3.改版moonlight版本介绍以及相关设置

### 解决Moonlight串流过程中的高延迟问题 #### 一、调整Moonlight设置 为了减少鼠标的延迟,可以通过正确配置Moonlight的设置来实现。具体来说,在Moonlight客户端中找到并启用特定选项,使得本地鼠标能够被利用起来而不是依赖于远程服务器传输的鼠标位置数据[^1]。 #### 二、优化网络环境 确保连接稳定且带宽充足对于降低整体延迟至关重要。使用有线网络而非Wi-Fi能有效提高稳定性;如果只能使用无线,则应尽量靠近路由器以获取最佳信号强度。此外,关闭其他占用大量带宽的应用程序服务也有助于改善情况[^2]。 #### 三、修改显示模式与分辨率 适当调整显示器刷新率以及所选分辨率也会影响最终效果。通常情况下,默认设定已经过良好调校,但在某些特殊场景下手动更改这些参数可能会带来意想不到的好处——比如选择较低但足以满足需求的画面质量可换取更低延时的表现[^3]。 #### 四、软件层面改进措施 针对鼠标特别明显的延迟现象,有一种更为激进的方法是通过对Moonlight应用程序本身进行一定程度上的改造。这涉及到反编译源码,并做出如下改动:阻止其默认行为即隐藏用户的实际光标,转而在远端计算机上全局性地屏蔽掉屏幕上的指针图像。如此这般便可以让用户直接操控自己设备上的真实硬件,进而极大程度缓解甚至消除所谓的“拖拽重物感”。不过需要注意的是,此法适用于办公用途时较为理想,而当切换至娱乐活动如游戏时则需恢复原有状态以免影响沉浸式体验。 ```bash # 如果您熟悉Linux命令行操作,还可以尝试以下方法进一步优化性能: sudo apt-get update && sudo apt-get install -y moonlight-qt ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值