尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Sunshine游戏串流服务Docker部署避坑指南:新手一次跑通的完整教程

Sunshine游戏串流服务Docker部署避坑指南:新手一次跑通的完整教程 Sunshine游戏串流服务Docker部署避坑指南新手一次跑通的完整教程【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/SunshineSunshine 是一个开源的 Moonlight 游戏串流服务端装好后可以把电脑上的游戏画面实时推到手机、平板甚至另一台电脑上。但对新手来说手动装依赖、配显卡、开端口每一步都可能劝退。这篇教程带你用 Docker 把 Sunshine 跑起来从镜像选择、GPU 挂载到端口冲突排查一次讲清楚照着做就能完成你的第一次串流。动手前先备齐这三样东西Docker 部署最大的好处是把 Sunshine 和它的一堆运行依赖像打包好的行李一样塞进镜像你不用自己逐个安装编译环境。但有三样东西还是得你亲自准备一台装了 Docker 的机器主流 Linux 发行版都行如果你在 Windows 上装了 Docker Desktop建议配 WSL2 后端再跑。一块能用的显卡核显、N 卡、A 卡都可以前提是宿主机驱动装好。没有 GPU 也能启动但编码会走 CPU延迟和画质都明显变差。一台装 Moonlight 的设备手机、平板、另一台电脑都行它就是你的遥控器。如果你打算用 Podman 替代 Docker本文的命令同样适用差异点会在后面单独说明。第一条命令10 分钟把串流服务拉起来先别纠结参数含义把下面命令里的/home/you/sunshine-config换成你自己的目录直接执行docker run -d \ --namesunshine \ --restartunless-stopped \ -e TZAsia/Shanghai \ -v /home/you/sunshine-config:/config \ -p 47984-47990:47984-47990/tcp \ -p 48010:48010 \ -p 47998-48000:47998-48000/udp \ lizardbyte/sunshine:latest-ubuntu-24.04这条命令会拉取镜像并在后台启动容器配置目录、时区和三组串流端口一次性全部配好。想确认它有没有起来执行docker logs sunshine看输出想确认端口在监听执行docker ps。然后打开浏览器访问http://你的宿主机IP:47990看到欢迎页就说明服务已经活了。首次登录会让你设置用户名和密码务必记好——这是以后进入管理界面的唯一凭证到这里其实已经能用 Moonlight 配对串流了。不过先别急着开玩下面两个问题不搞清楚之后很容易在奇怪的地方卡住。选镜像别踩坑最新版的标签规则变了网上不少教程还在写lizardbyte/sunshine:latest或v0.18.0这种简单标签直接复制会报镜像不存在。原因是自 v0.18.0 起官方收紧了镜像标签规则不再提供独立的 latest、master、vX.X.X 标签必须使用版本-系统的组合标签。标签格式为版本-系统例如latest-ubuntu-24.04、v0.18.0-debian-bookworm。版本部分可选具体版本号如v0.18.0、latest最新稳定版、master开发分支甚至某个 commit 的 hash。系统部分目前可选debian-bookworm、ubuntu-22.04、ubuntu-24.04对应不同的基础镜像。系统后缀主要影响底层的 glibc 版本和可用软件源日常使用选ubuntu-24.04基本不会出错。如果你是 ARM 架构的机器开发板、ARM 云主机等这三个后缀目前都同时提供 x86_64 和 arm64 两种架构的镜像拉取时 Docker 会自动匹配不用手动指定。正式一点把命令整理成 docker-composedocker run 适合临时验证想长期稳定运行还是写一份 docker-compose 配置更省心——改参数、升级、换机器都能直接复用。下面这份保存成docker-compose.yml即可services: sunshine: image: lizardbyte/sunshine:latest-ubuntu-24.04 container_name: sunshine restart: unless-stopped devices: - /dev/dri:/dev/dri ipc: host volumes: - /home/you/sunshine-config:/config environment: - PUID1000 - PGID1000 - TZAsia/Shanghai ports: - 47984-47990:47984-47990/tcp - 48010:48010 - 47998-48000:47998-48000/udp这份配置和前面的 docker run 命令一一对应devices把显卡设备传进容器ipc: host让容器共享宿主机内存串流传输要用volumes把配置持久化到宿主机ports暴露三组端口。保存后在同目录执行docker compose up -d即可启动。Podman 用户注意这里需要把ipc: host去掉改用--usernskeep-id来处理用户权限其余照抄。登录管理界面后在Applications里能看到 Desktop、Steam 等预设应用也可以自己添加——串流时 Moonlight 里选择哪个应用就对应启动哪个程序部署中三件最容易出错的事新手在 Docker 部署 Sunshine 时九成的问题都出在下面三个地方提前了解能少走很多弯路。GPU 设备如何挂载进容器默认情况下容器里看不见你的显卡串流会退化成 CPU 软编码画面糊、延迟高。把显卡交给容器核心就是一行--device /dev/dri/Intel、AMD 的核显和独显都走这个路径。NVIDIA 用户还需要装好 nvidia-container-toolkit并在启动命令里加--gpus all。挂载之后怎么确认生效进入 Web 管理界面的配置页找到编码器选项看能不能选到你的显卡型号或者翻日志看编码器初始化是否成功。正常情况下日志会打印显卡型号和编码格式信息配置文件挂载与用户权限Sunshine 把配置存在容器内的/config目录所以必须挂载出来否则容器一删配置全没。挂载后最常见的报错是权限不足或无法写入配置原因是容器内进程的用户和宿主机目录属主不一致。解决方式是指定宿主机上已有的用户 IDid 你的用户名拿到输出里的uid和gid后填入环境变量例如输出是uid1000、gid1000就设置PUID1000、PGID1000同时确保宿主机上的配置目录属主也是这个 IDsudo chown -R 1000:1000 /home/you/sunshine-config出现权限问题先检查这两处是否一致基本都能解决。端口冲突怎么解决Sunshine 串流用到三组端口TCP 的 47984-47990其中 47990 是 Web 管理界面、TCP 的 48010、UDP 的 47998-48000承载视频、音频和控制数据。如果宿主机上已有服务占用最简单的办法是只改宿主机一侧的映射比如把管理界面映射成8080:47990之后访问http://IP:8080即可。映射规则是左边宿主机、右边容器右边不能动左边随便改。跑不起来的时候先从日志找答案排查串流问题第一站永远是管理界面右下角的 Logs 页面而不是反复重启容器碰运气。日志会直接告诉你编码器有没有初始化成功、客户端有没有连上来、哪一步报了错结合新手最常见的几个现象对号入座Moonlight 搜不到主机多半是端口没映射全或宿主机防火墙挡了 UDP 47998-48000。先docker ps确认端口都列出来了再检查防火墙规则。能连上但画面卡成幻灯片编码器没走 GPU回到设备挂载那部分确认显卡真的进了容器。Web 管理界面打不开确认映射的是 47990且访问地址是宿主机 IP 而不是容器 IP。日志时间对不上在环境变量里设置TZ例如Asia/Shanghai日志和配对时间就都准了。让它长期稳定运行的小建议跑通只是开始想让服务一直安稳待命最后这几条可以顺手做掉固定镜像版本把latest换成具体版本号如v0.18.0-ubuntu-24.04避免某天升级带来不兼容。定期备份配置/config目录里就是全部家当复制一份到别处即可几秒钟的事。限制资源占用在 compose 里加cpus和mem_limit防止串流时把机器资源吃满影响同一台机器上的其他服务。配合 Steam 使用想串流 Steam 游戏的话可以把 Steam 集成进同一镜像——Sunshine 官方镜像本来就是按基础镜像设计的适合在自己项目里二次构建。到这里一条完整的拉取镜像 → 启动容器 → 配置应用 → 远程串流路径就通了。剩下的就是选个舒服的姿势开玩。【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表