解决 Cloudflare Tunnel 无法通过 Passwall2 连接的问题

最近发现家里 NAS 上部署的 cloudflared 很容易掉线,切换节点也不好使。

找了一圈互联网资料后,最后根据这篇文章的描述,成功修复了 passwall2 的配置。

简单来说, Cloudflare Tunnel 客户端(Cloudflared)会先解析 region1.v2.argotunnel.com/region2.v2.argotunnel.com 的地址,再用 quic.cftunnel.com/h2.cftunnel.com 作为 SNI 去请求。

当开启 Passwall2 上的覆盖连接目标地址功能时,Xray 就会在转发流量时用 *.cftunnel.com 替换掉 Cloudflared 客户端获取的真实地址,当流量达到远程 Xray 时,由于 *.cftunnel.com 并没有 A/AAAA DNS 记录,就会导致流量转发失败,从而出现这样的错误:

2025-05-09T14:07:05Z ERR Serve tunnel error error="TLS handshake with edge error: EOF" connIndex=0 event=0 ip=198.41.192.57

要解决这个问题,需要禁用掉 Passwall2 上对 Cloudflare tunnel 相关域名的嗅探功能。

或者,如果你能保证客户端 DNS 解析没有问题的话,可以干脆禁用掉「覆盖连接目标地址」功能,这也是 Xray 文档中推荐的做法:

在能保证 被代理连接能得到正确的 DNS 解析 时,使用 routeOnly 且开启 destOverride 的同时,将路由匹配策略 domainStrategy 设置为 AsIs 即可实现全程无 DNS 解析进行域名及 IP 分流。此时遇到 IP 规则匹配时使用的 IP 为域名原始 IP。

https://xtls.github.io/config/inbound.html#sniffingobject
Series Navigation<< 网上冲浪指南 – 002

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注