cents/docs/内网穿透调试.md

1.8 KiB
Raw Permalink Blame History

内网穿透调试

目标

先用调试模式验证 PWA 可以通过公网域名访问。

模式:

  • VPS 运行 frps
  • 本机运行 Vite 开发服务。
  • 本机运行 frpccert sidecar。
  • cert 使用 Let's Encrypt 正式证书。
  • frpc 通过 HTTPS 转发到本机 6064

前置条件

  • 有一个域名,例如 cents.example.com
  • 域名 A/AAAA 记录指向 VPS。
  • VPS 开放 804437000
  • VPS 的 frps 配置了 HTTP/HTTPS vhost 端口。

参考配置:

  • deploy/frp/frps.example.toml

本机配置

调试模式不读取 .env,配置直接写在 compose.dev.yaml

  • DOMAIN=dev.cents.homemade.net.cn
  • FRPC_SERVER_HOST=119.28.12.24
  • FRPC_SERVER_PORT=7000
  • APP_HOST=host.docker.internal
  • APP_PORT=6064
  • APP_PROTOCOL=http
  • TEST_MODE=false

启动

启动 API 和前端:

npm run dev

再启动内网穿透:

docker compose -f compose.dev.yaml up -d

查看日志:

docker compose -f compose.dev.yaml logs -f frpc cert

验证

curl -I http://$DOMAIN/.well-known/
curl -vkI https://$DOMAIN

预期:

  • cert 能完成 HTTP-01 校验。
  • /etc/letsencrypt/live/dev.cents.homemade.net.cn/ 中生成正式证书。
  • 浏览器可以通过 https://$DOMAIN 访问本地 PWA。

生产模式

.env 留给生产模式使用:

cp .env.example .env
docker compose -f compose.pro.yaml up -d --build

不要提交真实 .env

常见问题

  • 证书申请失败:检查域名 DNS、VPS 80 端口、frps vhost HTTP 配置。
  • HTTPS 访问失败:检查 frps 443 端口和 frpc 日志。
  • 后端连不上:确认 npm run dev 已启动 API 和监听 6064 的 Vite 服务。
  • frps 有 token需要同步配置 frps 和 frpc不要把真实 token 提交到仓库。