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

内网:

用到的技术
当前公网访问使用的是"本机 HTTP 服务 + 公网反向隧道"。
游戏本身是纯静态网页,文件在当前目录:
index.htmlstyles.cssgame.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、路由器做端口映射、防火墙放行端口。这些条件通常比较麻烦。
反向隧道的思路是反过来:
- 你的笔记本主动连到第三方隧道平台。
- 第三方平台给你一个公网 HTTPS 地址。
- 别人访问这个公网地址。
- 第三方平台通过已经建立好的连接,把请求转发回你的笔记本。
- 你的本机 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