15分钟搭建云端Steam服务器:随时用浏览器畅玩

8 次阅读 0 点赞 0 评论 7 分钟原创技术教程

使用 Docker Compose 在 Linux 服务器或 NAS 上部署无头 Steam 服务,通过 noVNC 浏览器直连或 Moonlight 远程串流游戏。掌握 GPU 透传、游戏库挂载与常见踩坑处理,把闲置主机变身为家庭游戏中心。

#Docker #Steam #游戏串流 #Moonlight #NAS #家庭实验室 #远程桌面
15分钟搭建云端Steam服务器:随时用浏览器畅玩

15分钟搭建云端Steam服务器:随时用浏览器畅玩

想在轻量办公本、平板甚至手机上玩 3A 大作?只要把游戏跑在服务器上,把画面传过来就行。本篇教程带你用 Docker 在一台 Linux 主机(NAS、VPS 或带核显的旧电脑)上部署无头 Steam 服务,完成后通过浏览器或串流客户端远程畅玩。

环境准备

部署前确认主机满足以下条件:

  • 系统:Ubuntu 20.04+ 或 Debian 11+
  • Docker & Docker Compose:已安装运行。未安装可执行 curl -fsSL https://get.docker.com | sh 一键脚本。
  • 显卡:NVIDIA 独显(推荐,需配置 NVIDIA Container Toolkit),AMD/Intel 核显或纯 CPU 模式也可运行,帧率会受限制。
  • 网络:客户端设备能访问服务器 IP 与端口。

核心部署步骤

1. 创建项目目录

bash 复制代码
mkdir ~/steam-headless && cd ~/steam-headless
mkdir -p ~/games  # 存放游戏文件的目录

2. 编写 Compose 配置

在同级目录创建 docker-compose.yml,填入以下内容:

yaml 复制代码
version: "3.8"
services:
  steam-headless:
    image: lscr.io/linuxserver/steam-headless:latest
    container_name: steam-headless
    restart: unless-stopped
    # 使用 NVIDIA 显卡时取消下方注释
    # deploy:
    #   resources:
    #     reservations:
    #       devices:
    #         - driver: nvidia
    #           count: all
    #           capabilities: [gpu]
    environment:
      - PUID=1000          # 替换为你的用户 UID(执行 id 命令查询)
      - PGID=1000          # 替换为你的用户 GID
      - TZ=Asia/Shanghai
      - WEBPAGE_TITLE=MyGameServer
    ports:
      - "8080:8080"        # noVNC Web UI
      - "8443:8443"        # noVNC HTTPS
      - "47984:47984/tcp"  # Moonlight 串流
      - "47989:47989/tcp"
      - "48010:48010/tcp"
      - "47998:47998/udp"
      - "47999:47999/udp"
      - "48000:48000/udp"
      - "48010:48010/udp"
    volumes:
      - ./config:/config            # 配置持久化
      - ./data:/home/default        # 用户数据持久化
      - ~/games:/mnt/games          # 游戏库路径
    shm_size: "1gb"                 # Web UI 渲染共享内存

配置关键点说明:

  • PUID/PGID 决定容器内文件权限,普通用户通常为 1000。
  • /mnt/games 是 Steam 自动识别的游戏库挂载点,切勿更改路径。
  • shm_size 必须设为 1GB 以上,否则 noVNC 会黑屏或卡顿。
  • Moonlight 相关端口仅在需要低延迟串流时开放,浏览器直玩只需 8080。

3. 启动服务

bash 复制代码
docker compose up -d

首次启动会拉取约 3~4GB 镜像。完成后访问 http://服务器IP:8080,即可看到 Xfce4 桌面与自动启动的 Steam。

实战:登录 Steam 并运行游戏

登录与配置游戏库

在 Web UI 桌面中打开 Steam,输入账号密码登录。建议提前在手机端生成 Steam Guard 验证码,方便输入。

登录成功后进入 Settings → Storage,将 /mnt/games 添加为默认安装路径。这样游戏文件会保存在宿主机映射目录中,容器重建不会丢失数据。

下载并启动游戏

在库中选择一款游戏(建议先用体积较小的独立游戏测试),下载路径选 /mnt/games。安装完成点击 Play,两种体验方式可供选择:

  1. 浏览器直玩:noVNC 界面直接传输画面与音频,适合轻量游戏或临时使用。
  2. Moonlight 串流:服务器有 NVIDIA 显卡时体验最佳。通过 Flatpak 安装 Sunshine 服务端,客户端设备连接 服务器IP,延迟与画质显著提升。

如果使用 Steam Remote Play 串流到另一台电脑,注意两台主机需处于同局域网或通过 Tailscale/ZeroTier 组网,否则 Steam 会走云端中转,延迟不可用。

常见问题排查

Web UI 黑屏 / 加载缓慢
检查 shm_size 是否 ≥ 1GB。添加后执行 docker compose down && docker compose up -d 重建。

NVIDIA 显卡未被识别
宿主机需安装 NVIDIA Container Toolkit:

bash 复制代码
sudo apt install nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

完成后取消 Compose 中 GPU 配置的注释并重启容器。

游戏存档丢失
仅 /config、/home/default 和 /mnt/games 会持久化。若存档在其他路径,容器重建后清空。可在桌面中将存档目录软链接至 /home/default。

安装 Lutris / Heroic 等其他启动器
在虚拟桌面打开 Applications → System → Software 搜索安装;或在容器内 /home/default/init.d/ 创建 .sh 脚本写入安装命令,容器启动时自动执行。

中文输入支持
noVNC 虚拟键盘对中文支持有限。需打字的游戏建议在容器内安装 fcitx 等输入法框架,桌面右下角切换使用。

总结

通过 Docker Compose 部署 Steam Headless,核心工作仅集中在 Compose 参数配置与路径挂载。闲置主机、NAS 或轻量 VPS 都能快速转型为云端游戏中心,搭配 Moonlight 或 Steam Remote Play,轻薄本与平板也能获得接近本地的串流体验。

本项目完整仓库:Steam-Headless/docker-steam-headless

最后更新:2026-10-07T10:02:27

评论 (0)

发表评论

blog.comments.form.loading
0/500

暂无评论,快来发表第一条评论吧!