frp + Nginx + Cloudflare 问题排查汇总
1. frpc启动失败,toml解析报错
现象
frpc启动直接退出,journalctl报错解析错误。
原因
type = "http"代理错误写了remotePort = xxxx。
remotePort仅type=tcp/udp使用;http虚拟主机代理依靠customDomains域名区分,不需要remotePort。
解决
删除http代理块内的remotePort字段。前台调试命令:
frpc -c /etc/frp/frpc.toml2. frps dashboard curl返回 Unauthorized
现象
curl http://127.0.0.1:7500 返回Unauthorized
原因
dashboard开启账号密码鉴权,需要携带账号密码访问;本机访问正常,代表面板服务正常。
测试
curl -u admin:你的面板密码 http://127.0.0.1:7500返回Moved Permanently301重定向到/static/属于正常现象。
3. frp dashboard子路径Nginx代理浏览器页面样式丢失、静态资源404
现象
访问域名/frp‑dashboard/,html返回,css/js全部404。
根因
frp官方dashboard不友好子路径部署,内部写死绝对路径/static/,proxy_redirect很难完全修复。
解决方案
- 不使用子路径;使用独立子域名代理dashboard;
- 或者临时直接暴露7500端口调试,用完立刻关闭;
生产环境不建议子路径部署frp dashboard。
4. 浏览器访问网站 ERR_TOO_MANY_REDIRECTS 重定向死循环
现象
CF Flexible模式下出现无限重定向。
原因
CF Flexible模式:CF对外HTTPS,回源HTTP 80;Nginx配置了return 301 https://$host$request_uri;强制跳转。
解决
Flexible模式Nginx删除80转https的301语句。
Full(strict)模式才允许配置80强制跳转443。
5. nslookup解析直接返回香港真实IP,源站IP暴露
现象
nslookup newapi.xxoo.team 直接返回43.xxx.xxx.xx香港IP。
原因
Cloudflare DNS记录是灰色云朵(仅DNS,不开启代理)。
解决
DNS记录切橙色云朵开启CF代理,解析返回CF节点IP。
遗留限制:frps 7000控制端口无法走CF,仍然会暴露香港服务器IP;防护:强token,安全组来源IP白名单。
6. Nginx代理frps 10080后访问域名全部404
原因
Nginx丢失Host请求头,frps无法识别customDomains域名。
解决
nginx location内必须携带:
proxy_set_header Host $host;7. frpc代理不生效,浏览器访问无响应
排查步骤:
- 查看frpc日志,确认输出
start proxy success;没有输出代表代理配置错误。 - 确认国内业务监听
127.0.0.1:port,业务正常本机curl可访问。 - 确认frpc可以正常连通香港7000端口。
- 确认Nginx透传Host头。
8. frps transport.tls.certFile配置了证书,浏览器访问网站依然没有HTTPS
误区
transport.tls.certFile/keyFile是frpc与frps隧道之间的TLS加密证书,和用户浏览器网站HTTPS无关。
说明
网站HTTPS由Nginx或者CF负责;frps该配置不处理浏览器TLS握手。
9. maxPoolCount/poolCount参数疑问
transport.maxPoolCount:frps服务端,限制单个代理预建立隧道连接池上限;transport.poolCount:frpc客户端,设置想要预建立连接数量;
web http业务默认tcpMux多路复用,不需要修改这两个参数,保持默认即可;主要用于高频TCP业务。
10. frp dashboard浏览器无法访问
- 检查frps配置
webServer.addr:127.0.0.1仅本机访问;需要公网访问改为0.0.0.0。 - 腾讯云安全组、firewalld放行7500端口。
- ss -tlnp | grep 7500确认监听网卡。
安全提醒:7500不要长期暴露公网,调试完切回127.0.0.1并关闭端口。
11. 多子域名部署疑问
多个子域名网站,Nginx只需要一份location / proxy_pass http://127.0.0.1:10080;
frps依靠Host头区分不同customDomains代理;新增网站只改DNS+frpc配置,Nginx无需改动。
12. 端口安全检查清单(香港机器)
- ✅80放行(CF回源)
- ✅7000放行(frpc连接)
- ❌10080:云安全组删除入站放行,仅本机回环访问
- ❌7500:默认关闭公网访问,调试临时打开