刘文武 bc751d506b feat(fixed_query_eval): 新增多版本工具解构与公网分享功能 há 12 horas atrás
..
README.md bc751d506b feat(fixed_query_eval): 新增多版本工具解构与公网分享功能 há 12 horas atrás
share.sh bc751d506b feat(fixed_query_eval): 新增多版本工具解构与公网分享功能 há 12 horas atrás

README.md

search_eval 查看服务 + 公网分享 使用说明

把本地的搜索评估查看服务(server.py,默认 :8770)一键起好,并通过 Cloudflare 隧道生成一个公网链接,发给任何人就能看 —— 无需对方在同一局域网、无需对方改代理设置。

脚本:share.sh(本目录)


快速开始

cd /Users/max_liu/max_liu/company/Agent/examples/process_pipeline/script/search_eval/fixed_query_eval/shell

./share.sh start      # 起服务 + 隧道,打印公网链接

执行后会输出类似:

🌐 公网链接(发给同事即可,无需局域网/改代理):
    https://advanced-how-leasing-brief.trycloudflare.com

把这个链接发到群里即可。进程一直保留(已脱离终端),关掉终端窗口也不会断。


全部命令

命令 作用
./share.sh start server.py(后台)+ cloudflared 隧道(后台,http2),打印公网链接
./share.sh stop 停掉服务和隧道
./share.sh restart 重启两者(会换一个新链接,记得重新发)
./share.sh status 查看运行状态 + 当前链接 + 本地自检(HTTP 状态码)
./share.sh url 只打印当前公网链接(方便复制)

start 是幂等的:服务已在跑就跳过,不会重复起进程,可放心反复执行当作"确保它在跑"。


典型场景

第一次分享 / 重新分享:

./share.sh start          # 拿到链接,发群

链接突然打不开了(先别慌,一条命令查):

./share.sh status
  • server.py ❌ → 后端挂了,执行 ./share.sh start 拉起来。
  • cloudflared ❌ 或链接变了 → 隧道断了,执行 ./share.sh restart(换新链接)。
  • 两个都 ✅ 但对方打不开 → 多半是对方浏览器/系统代理拦截,见下方"常见问题"。

忘了链接是多少:

./share.sh url

用完关闭分享:

./share.sh stop

它替你规避的坑(为什么不直接用局域网 IP / 不直接 python server.py)

现象 脚本的处理
前台运行,关终端被 SIGHUP 杀掉 关窗口/休眠后链接 502 setsid/nohup 脱离终端守护
QUIC/UDP 被公司网或 VPN 封 隧道死循环重连,公网打不开 固定 --protocol http2,走 TCP 443
局域网共享要求同网段 WiFi 客户端隔离 → ping 不通 走公网隧道,完全绕开局域网
访客本地代理拦截内网 IP 同事打不开 192.168.x.x 公网 HTTPS,访客代理正常放行
重复启动起一堆进程 端口冲突/混乱 start 先检测端口,幂等

常见问题

Q:链接打开是 502 / Bad Gateway? 后端 server.py 没在跑(隧道只是转发器)。./share.sh status 确认,再 ./share.sh start

Q:对方打不开,但我本地和 status 都正常? 对方浏览器或系统开了代理(Clash/V2Ray 等),把公网域名也拦了。让对方临时关代理,或把 trycloudflare.com 加进代理白名单/直连规则。

Q:链接每次重启都变,能不能固定? trycloudflare 是临时地址,绑定在 cloudflared 进程生命周期上,进程停就失效、重启换新。要永久固定地址需要 Cloudflare 账号 + 自有域名做 named tunnel —— 需要时再单独配置。

Q:日志在哪?

  • 服务日志:../.server.log
  • 隧道日志:../.cloudflared.log (都在 fixed_query_eval/ 目录下,以 . 开头隐藏。)

Q:换个端口?

PORT=9000 ./share.sh start

Q:用指定的 python 解释器?

PYTHON=/path/to/python ./share.sh start

依赖

  • cloudflared(已安装;如缺失:brew install cloudflared)
  • python(项目当前用 conda base 环境的 python)
  • lsof / curl(macOS 自带)