1. 项目概述
作为一名长期折腾家庭网络和私有云的玩家,最近发现极空间NAS除了存储数据外,还能变身游戏服务器。今天要分享的是如何在极空间上部署经典马里奥游戏,并通过内网穿透实现外网访问的全过程。
这个方案最大的价值在于:
- 完全利用现有硬件资源(极空间NAS)
- 无需额外购买游戏主机或云服务器
- 突破局域网限制,随时随地都能玩
- 部署过程简单,零基础也能搞定
2. 核心组件解析
2.1 极空间NAS的优势
极空间作为国产私有云设备,相比传统NAS有几个突出特点:
- 内置Docker支持,扩展性强
- 图形化管理界面友好
- 24小时低功耗运行
- 硬件性能足够运行轻量级游戏
实测Z4S型号(N5105处理器)运行马里奥这类2D游戏毫无压力,CPU占用长期低于15%
2.2 Docker容器技术
为什么选择Docker部署游戏?
- 环境隔离:游戏运行在独立容器中,不影响NAS主系统
- 一键部署:镜像包含所有依赖,无需手动配置
- 资源可控:可以限制CPU/内存使用量
- 便于迁移:容器可以快速备份/恢复
2.3 内网穿透方案选型
对比了几种方案后选择cpolar的原因:
- 无需公网IP
- 不需要配置路由器
- 支持固定子域名
- 国内服务器延迟低
3. 详细部署步骤
3.1 基础环境准备
3.1.1 开启SSH服务
- 登录极空间管理界面
- 进入「系统设置」-「高级设置」
- 开启SSH服务并设置访问密码
3.1.2 连接SSH
bash复制ssh admin@你的极空间IP
首次连接会提示保存指纹,输入yes继续
3.1.3 验证Docker状态
bash复制docker version
systemctl status docker
正常应该看到Docker版本信息和"active (running)"状态
3.2 游戏容器部署
3.2.1 拉取游戏镜像
bash复制docker pull registry.cn-guangzhou.aliyuncs.com/os_cmty/os_cmty:mario
这个镜像已经配置好Web版马里奥游戏
3.2.2 运行容器
bash复制docker run -d \
-p 5000:8080 \
--name mario \
--restart=always \
registry.cn-guangzhou.aliyuncs.com/os_cmty/os_cmty:mario
参数说明:
-p 5000:8080:将容器内8080端口映射到主机5000端口--restart=always:设备重启后自动启动容器
3.2.3 验证部署
bash复制docker ps -a
看到mario容器状态为"Up"表示运行成功
3.3 内网穿透配置
3.3.1 安装cpolar
bash复制sudo curl https://get.cpolar.sh | sh
sudo systemctl enable cpolar
sudo systemctl start cpolar
3.3.2 创建隧道
- 访问http://localhost:9200
- 登录cpolar管理界面
- 创建HTTP隧道:
- 本地地址:5000
- 域名类型:随机域名
- 地区:China
3.3.3 获取访问地址
在隧道列表中可以找到生成的公网地址,形如:
code复制https://a1b2c3d4.cpolar.cn
4. 高级配置技巧
4.1 固定域名设置
- 在cpolar控制台「预留」页面
- 保留二级子域名(如mario.cpolar.cn)
- 更新隧道配置使用该域名
4.2 性能优化建议
- 限制容器资源:
bash复制
docker update --cpus 1 --memory 512M mario - 设置访问密码:
在cpolar隧道配置中添加Basic Auth认证
4.3 其他游戏部署
同样的方法可以部署:
- 红白机模拟器
- 开源游戏如SuperTux
- Web版街机游戏
5. 常见问题排查
5.1 容器启动失败
可能原因:
- 端口冲突:检查5000端口是否被占用
- 镜像损坏:尝试删除后重新拉取
- 权限问题:使用
docker logs mario查看日志
5.2 外网无法访问
检查步骤:
- 确认cpolar服务运行状态
- 测试本地通过IP:5000能否访问
- 检查防火墙是否放行9200端口
5.3 游戏卡顿
优化方案:
- 降低游戏画质设置
- 选择离你最近的服务器区域
- 避开网络高峰期使用
6. 安全注意事项
- 定期修改SSH密码
- 不要使用默认的admin账户运行容器
- 为cpolar隧道设置访问密码
- 监控NAS资源使用情况
- 及时更新Docker镜像和安全补丁
这个方案我已经稳定运行了3个月,通勤路上用手机玩马里奥完全没问题。相比云游戏方案,自己搭建的成本更低,隐私性更好,还能随时添加新的游戏。如果遇到任何部署问题,欢迎在评论区交流讨论。