想在 NAS 上玩推箱子?用 Docker 部署 Sokoban,手机也能远程打开
前言
推箱子这种游戏有个很奇怪的地方:规则简单到几句话就能讲完,可真玩起来又很容易卡在某一关半天。小时候在文曲星、小霸王学习机上见过它的人,大概都对那种“差一步就通关”的感觉不陌生。现在再玩,我反而觉得它很适合放到 NAS 上:不用专门装客户端,也不用准备复杂运行环境,浏览器打开就能来一局,电脑、平板、手机都能用同一个入口。对一台本来就长期在线的 NAS 来说,这种小服务没必要搞得太重,能稳定跑、入口好记、想玩时随手打开,比“部署得多高级”更重要。
这次我直接在极空间上通过 SSH 和 Docker Compose 部署 Sokoban,使用 wbsu2003/sokoban 镜像,把容器 80 端口映射到宿主机 7180,先确认 http://极空间IP:7180 能正常打开游戏。局域网里玩通以后,再安装 cpolar,把 7180 页面提供到公网,先验证随机地址,最后配置固定二级子域名 sokoban。这样在家里用电脑打开,在外面用手机或平板访问,走的都是同一套 Web 页面。整条链我更关心的是部署够不够简单、浏览器能不能直接玩、远程访问是不是清楚,而不是把一个轻量小游戏包装成“摸鱼神器”。

1. 先在极空间上准备 SSH 和 Docker
这次用 Docker 跑网页版推箱子,所以先确认极空间已经开启 SSH,同时 Docker 环境可用。
1.1 SSH 连接极空间
在极空间里开启 SSH 服务后,通过 Windows PowerShell 或 Mac Terminal 登录。
当前命令是:
ssh root@IP
如果还没有配置 SSH,可以先把极空间的 SSH 功能开启好。

1.2 检查 Docker
登录以后执行:
docker -v
systemctl status -v
当前记录里同时使用了 docker -v 和 systemctl status -v。

这里先确认 Docker 可以正常使用,再继续创建 Sokoban 目录。
2. 创建 Sokoban 安装目录
执行:
sudo mkdir -p /docker/sokoban
cd /docker/sokoban

当前目录使用:
/docker/sokoban
后面的 Compose 文件就在这里创建。
3. 创建 docker-compose.yml
在当前目录新建 docker-compose.yml,配置内容如下:
version: '3'
services:
sokoban:
image: wbsu2003/sokoban
container_name: sokoban
restart: unless-stopped
ports:
– 7180:80
这份配置很简单,核心只有几项:
- 镜像:wbsu2003/sokoban
- 容器名:sokoban
- 端口:7180:80
- 重启策略:unless-stopped
也就是说,后面浏览器访问的是宿主机上的:
7180
端口。
4. 启动 Sokoban
执行:
docker-compose up -d

部署完成以后,在浏览器访问:
http://极空间IP:7180

页面能够正常打开以后,Sokoban 的本地服务就已经跑起来。
这一步真正验证的是:
极空间 Docker → Sokoban 容器 → 7180:80 → 浏览器打开游戏页面。
到这里,如果只是想在家里电脑、平板上玩,其实已经够用了。
5. 为什么还要做公网访问?
局域网里的 http://极空间IP:7180 只能在当前家庭网络中使用。
如果想从手机流量、公司电脑或者外部网络打开这个页面,就需要再增加一个公网入口。
这里 cpolar 的职责很明确:
只把极空间上 Sokoban 的 7180 Web 页面提供到公网。
游戏本身仍然由 Sokoban 容器运行,cpolar 不参与游戏逻辑,也不负责关卡内容。
6. 安装 cpolar
执行当前安装命令:
sudo curl https://get.cpolar.sh | sh

安装完成以后检查服务状态:
sudo systemctl status cpolar

服务正常以后,通过主机 IP + 9200 打开 cpolar Web 管理页面。
当前页面同时写到:
http://ip:9200
以及链接目标:
http://localhost:9200/
实际访问时,以当前环境真正能够打开的管理地址为准。

7. 给 Sokoban 创建随机公网地址
进入【隧道管理 → 创建隧道】。
当前配置为:
- 隧道名称:sokoban
- 协议:http
- 本地地址:7180
- 域名类型:随机域名
- 地区:China Top

创建成功以后,进入在线隧道列表查看生成的公网地址。

从其他电脑或移动设备打开。

页面能够正常访问。
这一层验证的是:
Sokoban 7180 → cpolar 随机公网地址 → 外部浏览器。
8. 长期使用再配置固定二级子域名
随机地址适合先验证公网访问。
如果希望以后一直用同一个地址打开游戏,再继续配置固定二级子域名。
进入预留页面。

选择保留二级子域名。
当前记录为:
- 地区:china Top
- 二级子域名:sokoban

然后回到【隧道管理 → 隧道列表】,找到对应隧道并点击编辑。

修改为:
- 域名类型:二级子域名
- Sub Domain:填写已经保留的二级子域名
- 地区:China Top
点击更新。

更新以后,在线隧道列表中的随机地址会切换成固定二级子域名形式。

最后再从其他设备访问。

页面能够正常打开。
总结
这套 Sokoban 部署对我来说,最大的优点不是“几分钟做出一个摸鱼神器”,而是它足够简单:一个 Docker 容器、一个 7180 端口,打开浏览器就能玩。
这次实际跑通的主线是:
极空间 SSH → Docker → /docker/sokoban → wbsu2003/sokoban → 7180:80 → 本地浏览器访问 → cpolar → 随机公网 → 固定二级子域名 sokoban。
几个边界也很清楚:
- Sokoban 负责游戏本身;
- Docker 负责运行容器;
- cpolar 只负责把 7180 Web 页面提供到公网;
- 随机公网地址适合先测试,固定二级子域名适合长期使用;
- 这篇实际验证的是网页能打开、游戏能玩以及外部访问链路,不需要再给一个简单小游戏堆太多“极客神器”的包装。
如果 NAS 本来就长期在线,这类小游戏很适合顺手部署几个。不是为了把服务器变成游戏平台,而是偶尔想玩的时候,知道打开哪个地址就行。
网硕互联帮助中心



评论前必须登录!
注册