如何将做的游戏不用服务器分享到公网给别人玩

AI提示词:"请用"本机 HTTP 服务 + 公网反向隧道"的方式,把这个网页项目临时开放到公网。没有服务器,优先 Cloudflare Tunnel,失败就用 localhost.run 的 SSH -R 隧道。必须验证公网链接可访问,并写好启动/停止脚本。"

电脑端访问公网:

内网:

用到的技术

当前公网访问使用的是"本机 HTTP 服务 + 公网反向隧道"。

游戏本身是纯静态网页,文件在当前目录:

  • index.html
  • styles.css
  • game.js

本机先用 Python 启动一个静态 HTTP 服务:

复制代码
conda run -n torch_py310 python -m http.server 8000 --bind 0.0.0.0

这样游戏会在本机 8000 端口提供访问:

复制代码
http://127.0.0.1:8000

然后再用公网反向隧道,把外部 HTTPS 地址转发到本机的 127.0.0.1:8000

为什么没有服务器也能公网访问

正常情况下,别人想访问你电脑上的网页,需要你的电脑有公网 IP、路由器做端口映射、防火墙放行端口。这些条件通常比较麻烦。

反向隧道的思路是反过来:

  1. 你的笔记本主动连到第三方隧道平台。
  2. 第三方平台给你一个公网 HTTPS 地址。
  3. 别人访问这个公网地址。
  4. 第三方平台通过已经建立好的连接,把请求转发回你的笔记本。
  5. 你的本机 Python 服务返回游戏页面。

因为连接是由你的笔记本主动发起的,所以不需要你有服务器,也不需要路由器端口映射。

当前实际使用的方案

当前可用公网链接来自 localhost.run

复制代码
https://feabdeefbf0a2a.lhr.life

它的底层是 SSH 反向端口转发,类似下面这个命令:

复制代码
ssh -R 80:127.0.0.1:8000 nokey@localhost.run

含义是:

  • -R 表示远程端口转发。
  • 80:127.0.0.1:8000 表示把隧道平台上的公网入口转发到本机 127.0.0.1:8000
  • nokey@localhost.run 是匿名使用 localhost.run 的 SSH 隧道服务。

脚本中实际还加了一些参数,用来避免首次连接时卡在确认主机指纹,并保持连接:ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=.runtime\known_hosts -o ServerAliveInterval=30 -R 80:127.0.0.1:8000 nokey@localhost.run