方案刚需

2c4g 200M 上下行的有公网ip的服务器,2g机器也可以,200M比较重要。

方案原理及部署体验

服务器部署 frp 服务端,开放对应端口

宿主机开启 sunshine,开放对应端口,配置 frp 客户端,实现内网穿透

串流设备通过服务器公网 ip 连接并转发数据,实现远程串流

iqoo neo9 在 wifi 环境下 720p 10码率的延迟表稳定在 50ms/9ms(网络延迟/解码延迟),游玩大表哥、黑猴等体验还不错,服务器流量跑的比较快,自己游玩时需要注意一下

部署教程

使用 1Panel 面板小白化部署,避免一些版本以及奇奇怪怪的问题,服务器使用的系统为 CentOS 7.9

安装 Docker

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce
yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken
# 设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast
yum install -y docker-ce

启动docker服务

systemctl start docker

测试docker是否安装成功

docker images

安装 1Panel 面板

bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"

可以全程默认,密码要记住

查看1Panel面板用户信息及安全入口

1pctl user-info

服务端部署 frp

通过面板安全入口进入 1Panel 面板

在应用商店找到 frp 服务端进行下载

如图填写,密码和密钥自己修改

在系统防火墙中开放如下端口

在浏览器地址栏输入 "你的ip:7500" 进入 frp 面板,正常显示即安装成功

宿主机配置 sunshine

sunshine 官网下载 sunshine 安装包

或者在这直接下载 sunshine-windows-installer.exe

注册并记住密码后在设置页面可以将语言设置为中文

如果首页有 ViGEmBus 报错,安装一下手柄驱动,否则串流设备将无法使用手柄

自行下载或在这直接下载 ViGEmBus_1.18.367_x64_x86.exe

点击 network 配置如下

宿主机防火墙设置

打开控制面板,依次点击系统和安全,Windows Defender 防火墙,左边的高级设置,点击入站规则,然后新建规则

选择端口

下一页,注意逗号是英文逗号

一直下一步,取一个名字即可

再新建一个规则用来开放 udp 协议,如图

宿主机配置 frp

去 github 下载 frp 客户端压缩包,版本要和 1Panel 面板一致

下载地址:Releases · fatedier/frp,找到对应版本,在 assets 找到 amd64.zip 结尾的文件进行下载

或在这直接下载 frp_0.64.0_windows_amd64.zip,需要注意的是,这个文件或被系统当作危险文件直接删除,记得在 windows 安全中心进行还原

解压后编辑里面的 frpc.toml,修改 IP 和 token

输入以下配置

serverAddr = "你的服务器 IP"
serverPort = 7000
auth.method = 'token'
auth.token = '你的token'
[[proxies]]
name = "moonlight-47984"
type = "tcp"
localIP = "127.0.0.1"
localPort = 47984
remotePort = 47984


[[proxies]]
name = "moonlight-47989"
type = "tcp"
localIP = "127.0.0.1"
localPort = 47989
remotePort = 47989

[[proxies]]
name = "moonlight-47990"
type = "tcp"
localIP = "127.0.0.1"
localPort = 47990
remotePort = 47990

[[proxies]]
name = "moonlight-48010"
type = "tcp"
localIP = "127.0.0.1"
localPort = 48010
remotePort = 48010


[[proxies]]
name = "moonlight-47998"
type = "udp"
localIP = "127.0.0.1"
localPort = 47998
remotePort = 47998

[[proxies]]
name = "moonlight-47999"
type = "udp"
localIP = "127.0.0.1"
localPort = 47999
remotePort = 47999

[[proxies]]
name = "moonlight-48000"
type = "udp"
localIP = "127.0.0.1"
localPort = 48000
remotePort = 48000

在当前文件夹下打开 cmd

执行命令

frpc.exe -c frpc.toml

如图所示即为打洞成功

再次打开 ip:7500,如图,可以看到端口数据可以正常转发

启动串流

下载 moonlight 客户端

可以自行下载官方版的,这里提供安装包 app-nonRoot-release.apk

也可以下载魔改版,这里推荐阿西西日常的魔改版,视频入口点 这里

进入串流界面

点击上面的十字加号

输入你的 ip 地址

然后就可以快乐地进行远程串流游戏力