Steam Headless: 一款远程游戏流媒体服务器,可用于搭建远程游戏串流服务 核心功能:
前言本项目部署有一定难度,且对硬件性能有一定要求,建议认真看本教程步骤来操作,后续有需要再进行其他调整。 项目 Docker Compose 部署的官方说明文档: https://github.com/Steam-Headless/docker-steam-headless/blob/master/docs/docker-compose.md 本教程参考了 B 站 UP 主 “紫玥爱吃狐萝卜” 的视频: https://www.bilibili.com/video/BV1UVefz7ErE 演示的硬件,系统与环境:
环境除了要有 Docker 运行环境外,如果想在 Docker 里调用独显使用,还需要安装 NVIDIA 驱动和 NVIDIA Container Toolkit 工具。 NVIDIA 驱动NVIDIA 驱动是连接 NVIDIA 显卡硬件与操作系统、应用程序的关键软件,它的核心作用是让操作系统和应用能够识别、控制并高效利用 NVIDIA 显卡的硬件功能。 TIP:目前我知道的绿联,飞牛和 Unriad 都是比较方便安装 NVIDIA 驱动的,至于其他 Linux 系统就不清楚了 绿联 飞牛 Unraid 输入下面命令测试,没问题的话会打印显卡信息
NVIDIA Container Toolkit 工具NVIDIA Container Toolkit 是一套用于在容器化环境中高效运行 GPU 加速应用的工具集,它解决了容器与 NVIDIA GPU 之间的兼容性问题,让开发者和用户能轻松地在 Docker 等容器平台中利用 GPU 算力。 TIP:下面代码适用于基于 Debian 系统的飞牛和绿联,至于其他系统可以参考下面官方文档: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html 依次执行下面代码
运行 Docker 容器测试,可以成功调用会显示显卡信息
安装先下载镜像(josh5/steam-headless:latest)到本地,避免还没开始就结束了 下载模板来到官方部署的说明文档,可以看到 GPU 支持 Intel,NVIDIA 和 AMD https://github.com/Steam-Headless/docker-steam-headless/blob/master/docs/docker-compose.md 打开左边 compose-files 文件夹,这里存放的就是配置模版 点击下载 .env 配置文件 TIP: 带 privileged 的模版,对设备有的完全访问权限,不需要手动指定具体设备路径;如果是多张显卡环境,想指定显卡,可以使用普通模版。但是不清楚是不是我硬件问题,实测使用 docker-compose.nvidia.privileged.yml 模版运行不正常,后来换成 docker-compose.nvidia.yml 就好了。 根据实际情况下载模版文件,这里我用的是 N 卡 NAS 里创建一个文件夹,将下载的两个文件放到里面 修改配置打开 .env(下载后可能自动改为 env.txt) 文件,需要修改几个地方 这里先标出需要修改的几个参数,下面也会进行详细说明
修改时区为 Asia/Shanghai,避免系统时间问题 修改容器共享内存大小,过小会影响图形渲染性能,也不要给过多占用 NAS 系统资源 TIP:有些系统可能不能使用相对路径,可以改为需要映射目录的绝对路径 修改 HOME_DIR 的值为 ./home ,主机上挂载到容器内 /home/default 的目录(持久化用户数据) 修改 SHARED_SOCKETS_DIR 的值为 ./sockets ,共享套接字目录(用于 X11、PulseAudio 等进程通信) TIP:这里是存储游戏目录,如果后面下载比较多游戏,担心固态太小可以改为机械硬盘的目录 修改 GAMES_DIR 的值为 ./games ,主机上挂载到容器内 /mnt/games 的目录(游戏库存储路径) TIP:如果后面映射文件有问题,可以修改这个,默认不需要修改(这里后来我改成root权限了) TIP:容器内默认用户的密码,默认不需要修改 TIP:Web UI 访问端口,注意是否会和其他容器端口冲突,默认不需要修改 修改 ENABLE_SUNSHINE 的值为 true ,设置为自动启用 Sunshine 串流服务 TIP:Sunshine 登录用户名和密码,如果服务映射到外网建议修改一下 更换软件源创建名称为 Dockerfile 的文件,粘贴下面的代码
打开 .yaml 模版文件 将原来 image: josh5/steam-headless:latest 这行删除,替换为下面代码(注意对齐的格式)
最后进行检查,注意 Dockerfile 文件是没有后缀格式的,将原来 .yml 模版文件重命名为 docker-compose.yaml ,原来 env.txt 配置文件重命名为 .env(有些系统可能会隐藏以.开头的文件,修改后就消失了) 项目部署创建名称为 steam-headless 项目,存放路径选择上面的目录,Compose 配置就可以导入了 点击“立即部署”,正常情况是不会有报错的 容器已经正常运行了(因为网络选择了 host,所以这里不能快捷跳转到页面) 查看日志,等待显卡驱动下载完成(速度还是很快的) 等看到这个信息,说明可以访问 VNC 界面 使用浏览器中输入 TIP:日志要显示这个才算启动完成,可以进行连接 点击连接按钮 进入到这个界面(如果不是这个界面,多刷新一下网页) 换源加速如果上面下载速度比较慢,就需要更换源(如果速度还可以就不需要了)。有人可能好奇为什么要换两次,因为上面换源可能有点问题,所以再弄一次。但如果不弄上面会一直卡着核显安装步骤,就不细究为什么了。 手动来到容器终端,执行下面代码
执行完成,重启一下容器 可以看到,现在下载速度就非常快了 注意旁边括号,是否正常打勾 查看硬件信息点击左上角,可以查看硬件信息 可以看到处理器的详细信息 核显和独显信息也可以看到 安装设置全部完成会切换到这个桌面(不行就多刷新网页),点击下载安装 Steam 等待 Steam 下载安装 TIP:点击左上角,可以找到 Steam 应用 登录 Steam 账号了 点击左上角,简单设置一下 Steam 界面,设置语言为中文 存储空间,建议设置一下存储游戏为 Game 目录 TIP:如果游戏运行崩溃,可以设置一下兼容性工具版本为 Proton 9.0-4 网络连接回到首页,发现内容还是没有显示 开了梯子立马见效,可以正常访问 也可以通过修改路由器 hosts 来解决(推荐),具体 IP 地址根据实际修改
畅玩游戏随便选择一个游戏作为测试 可以灵活的选择下载位置 下载安装都没遇到问题,点击就开始畅玩游戏 运行游戏都没问题 右上角游戏声音也没问题 NAS 系统可以看到显卡也是正常调用 游戏比较小,资源占用并不多 Sunshine + Moonlight 串流目前,Sunshine + Moonlight 串流是较为热门的低延迟远程游戏串流方案。其中,Sunshine 作为游戏串流服务端,Moonlight 作为客户端,二者需相互配合,才能实现游戏的远程串流功能。 浏览器中输入 点击“高级”,选择继续前往 输入用户名和密码,默认是 admin/admin 成功进入 Sunshine 控制面板 先设置一下语言为中文(保存应用之后会重新加载,需要等一下) 接下来根据自己系统,下载 Moonlight 客户端 https://moonlight-stream.org/ 安装好后,应用会自动搜索 Sunshine 服务端 如果一直搜索不出来,直接手动输入主机 IP 地址 添加成功后,点击进行连接(注意弹窗的 Pin 码) 切换到 Pin 码,输入配对信息(名称可以根据连接设备填写) TIP:Sunshine 点击“应用程序”,可以添加快捷打开应用 配对成功以后,就会进入应用界面 按道理这时候就能连接上了,但是我这边打开就会卡死(VNC 和 Sunshine 网页端都访问不了,有清楚解决办法的,可以留言交流) Steam Link 串流可将电脑上的 Steam 游戏画面串流至移动设备、电视机、VR 头戴式显示器或另一台 PC 上,让用户在不同设备上畅玩 Steam 游戏 Steam Link 下载链接: https://apps.apple.com/cn/app/steam-link/id1246969117 https://help.steampowered.com/zh-cn/faqs/view/7112-CD02-7B57-59F8 打开应用,不需要手动搜索,自动就能找到服务器(电脑和手机都是) 会自动切换到 Steam 大屏显示,手柄操作会更加方便 默认没有手动设置,画质感觉一般(有点糊) 简单玩一下游戏都没什么问题,操作延时能够感觉的出(Wi-Fi 无线连接) 资源占用不是很大,毕竟游戏只是 Demo 很小 独显可以正常调用工作 扩展这部分内容不一定都用得上,只是作为记录,有需要的可以看看 下载驱动卡住一般卡住不是下载慢,而是没变化看起来没运行 如果一直卡着不动,可以关闭容器,删除映射文件夹再重新启动 VNC 连接不上页面顶部显示 Failed to connect to server 查看日志,有可能只是单纯还没启动完成(正常是要显示二行 INF0 reaped unknown pid xxx,才算成功启动) 如果是使用带 privileged 的模版,可以试试换为普通模板 桌面加载不正常进入到桌面,一直加载不正常,顶部状态栏没有 查看日志是否有警告提示(比如这里就是 Sunshine 有异常) 可以重启容器试试 正常加载应该是这样的 桌面无法点击桌面顶部栏这些按钮点击都没反应,可以刷新网页多试几次 Steam 安装没反应点击安装按钮后,没有 Steam 下载的弹窗出现 关闭容器,删除 /home/.steam 目录,重新再启动容器 这样就会重新提示安装了 如果还是不行,可以试试修改一下配置文件,重新再构建项目 VNC 遇到错误提示 noVNC encountered an error,好像长时间打开没操作就会提示 刷新一下网页好像就没问题了 Moonlight 串流问题使用 Moonlight 连接,会导致 Sunshine 出现错误重启 Sunshine 的日志有报错,这里我就不会看了,目前我也没有解决方法 总结总的来说,Steam Headless 这工具挺适合想折腾的玩家 —— 用 Docker 把游戏串流服务搭在 NAS 这类设备上,不管是手机、电视还是电脑,都能远程玩游戏想法确实不错。尤其配上独显,体验会好不少,算是把闲置硬件利用起来的好办法~不过还是有挺多坑的,最起码要安装好驱动和工具,Docker 里面可以调用显卡;Steam 网络有问题,需要修改 hosts 或者搞个梯子解决;另外我自己是遇到 Moonlight 串流问题,目前没办法搞定。 综合推荐:⭐⭐⭐⭐(有独显一定要试试,榨干所有性能) 使用体验:⭐⭐⭐⭐(意外的还不错,除了遇到串流问题) 部署难易:⭐⭐⭐⭐(有一定难度) |
在NAS上部署 Steam Headless,打造游戏串流服务器3 回复372 查看打印 上一主题 下一主题
发布于 2 天前 1 次阅读
Comments NOTHING