1.8 KiB
1.8 KiB
内网穿透调试
目标
先用调试模式验证 PWA 可以通过公网域名访问。
模式:
- VPS 运行
frps。 - 本机运行 Vite 开发服务。
- 本机运行
frpc和certsidecar。 cert使用 Let's Encrypt 正式证书。frpc通过 HTTPS 转发到本机6064。
前置条件
- 有一个域名,例如
cents.example.com。 - 域名 A/AAAA 记录指向 VPS。
- VPS 开放
80、443和7000。 - VPS 的
frps配置了 HTTP/HTTPS vhost 端口。
参考配置:
deploy/frp/frps.example.toml
本机配置
调试模式不读取 .env,配置直接写在 compose.dev.yaml:
DOMAIN=dev.cents.homemade.net.cnFRPC_SERVER_HOST=119.28.12.24FRPC_SERVER_PORT=7000APP_HOST=host.docker.internalAPP_PORT=6064APP_PROTOCOL=httpTEST_MODE=false
启动
先启动前端:
npm run dev --workspace @cents/web -- --port 6064
再启动内网穿透:
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.frp-prod.yml up -d
不要提交真实 .env。
常见问题
- 证书申请失败:检查域名 DNS、VPS 80 端口、frps vhost HTTP 配置。
- HTTPS 访问失败:检查 frps 443 端口和 frpc 日志。
- 后端连不上:确认本机 Vite 服务正在监听
6064。 - frps 有 token:需要同步配置 frps 和 frpc,不要把真实 token 提交到仓库。