![[Bug] frp映射异常,如何卸载](https://www.chat-gpts.plus/wp-content/uploads/2026/06/6169-6e194471.jpg)
[Bug] frp映射异常,如何卸载
快速结论:在通过 frp 反向代理 NextChat 时,由于 frp 客户端配置了泛域名映射(*.pro.xxx.top),导致所有子域名都指向了 NextChat。容器删除后依然可访问,是因为浏览器 DNS 缓存或 frp 缓存未清除,优先排查 frp 客户端配置与浏览器缓存。
问题场景
用户通过 Docker Compose 部署了 yidadaa/chatgpt-next-web:v2.15.8,并使用 frp 客户端将域名 chat.pro.xxx.top 映射到本地 127.0.0.1:3030。但 frp 配置中的类型为 http,且未限制域名范围,导致所有 *.pro.xxx.top 泛域名都指向了同一个 NextChat 服务。即使删除了 Docker 容器并重启 Docker,仍能通过浏览器访问 NextChat 页面。
报错原文
会影响frp的其他域名配置,所有的泛域名都会被映射到 这个 next-chat. *.pro.xxx.top 都会去访问这个nextchat
容器已经删除了,并且重启了docker,它还是会访问 nextchat
原因分析
可能原因有两个:
- frp 客户端配置问题: frp 类型为
http且未设置subdomain或customDomains限制,导致该代理覆盖了所有未匹配其他规则的泛域名请求。 - 浏览器缓存与 frp 缓存: 浏览器端有 HTTP 缓存或 DNS 缓存,即使后端服务停止,浏览器仍可能短暂显示旧页面。同时 frp 客户端可能存在连接池或会话保持,导致旧连接仍在持续。
环境排查
- Docker 版本(可通过
docker version查看) - frp 客户端版本(可通过
frpc --version查看) - frp 配置文件路径(通常为
/etc/frp/frpc.toml或frpc.ini) - 浏览器:建议使用隐私模式或清除缓存测试
解决步骤
- 确认 frp 客户端仍在运行: 运行
ps aux | grep frpc或systemctl status frpc检查 frp 客户端是否仍处于活跃状态。如果仍在运行,它可能仍在处理该域名下的连接。 - 停止并重启 frp 客户端: 运行
systemctl stop frpc或killall frpc完全停止 frp 客户端,然后清理连接。 - 修改 frp 配置: 编辑 frp 客户端的配置文件,为该代理添加
subdomain = "chat"或更精确的customDomains,例如:[[proxies]] name = "chat" type = "http" localPort = 3030 customDomains = ["chat.pro.xxx.top"] # 可尝试添加 subdomain = "chat"然后重启 frp 客户端。
- 清理浏览器缓存与 DNS 缓存: 在浏览器中清除该域名下的缓存与 Cookie,或使用无痕模式访问。在命令行执行
ipconfig /flushdns(Windows)或systemd-resolve --flush-caches(Linux)清理系统 DNS 缓存。 - 验证 frp 其他代理是否正常: 确认 frp 配置中的其他代理(如有)不受影响,且 NextChat 的页面不再响应。
- 如果问题仍存在: 建议检查 frp 服务端(frps)的 dashboard,确认是否有残留绑定或会话。
验证方法
在浏览器中访问 https://chat.pro.xxx.top 以及其他 *.pro.xxx.top 子域名,应确认 NextChat 页面不再显示。可以使用 curl -I https://chat.pro.xxx.top 检查返回的 HTTP 状态码,预期应为 502 或 404 等非正确响应,而非 200。同时确认 frp 客户端日志不再输出该代理的连接记录。



