用 Cloudflare WARP 与 3X-UI 修正 Google 和 X 的 IP 地区识别

1528 字
8 分钟
用 Cloudflare WARP 与 3X-UI 修正 Google 和 X 的 IP 地区识别

有些 VPS 的出口 IP 会被 Google、Gemini 或 X 识别为不符合预期的地区。例如,VPS 实际位于美国,Google 却把它识别为中国,或者 X 把西雅图 IP 识别成印度。本文采用一个比较轻量的方案:让 Cloudflare WARP 只提供本机 SOCKS5 代理,再由 3X-UI / Xray 按域名把指定请求转发到这个代理。

这套方案不需要额外安装 redsocks 或修改全局 iptables,也不会让 WARP 接管 VPS 上的全部流量。

使用前须知

WARP 的出口地区和 IP 由 Cloudflare 分配,不能保证固定为某个国家或城市。本文的目标是改变特定服务看到的出口网络,不是提供固定地区 IP。请确认你的使用场景符合 Cloudflare、目标服务和 VPS 服务商的条款。

一、工作原理#

整个请求链路如下:

客户端请求
|
v
3X-UI / Xray 路由规则
| geosite:google, geosite:twitter
v
本机 SOCKS5 出站(127.0.0.1:40000)
|
v
Cloudflare WARP
|
v
Google、Gemini 或 X

只有匹配路由规则的域名会使用 warp 出站,其他流量仍然按照原来的 directDNS 或其他出站处理。

二、安装 Cloudflare WARP#

以下命令适用于 Debian / Ubuntu 系统,并且默认使用 root 权限。若当前用户不是 root,请在命令前加 sudo

1. 更新软件包并安装依赖#

Terminal window
apt update
apt install -y curl gnupg lsb-release ca-certificates

2. 下载并保存 Cloudflare GPG 公钥#

Terminal window
curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | gpg --yes --dearmor -o /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg

3. 添加 Cloudflare APT 软件源#

Terminal window
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/cloudflare-client.list

4. 安装 WARP 客户端#

Terminal window
apt update
apt install -y cloudflare-warp

5. 创建状态目录并接受服务条款#

Terminal window
mkdir -p /var/lib/cloudflare-warp
echo '{"accepted":true}' > /var/lib/cloudflare-warp/accepted-tos.json

6. 启用 WARP 服务#

Terminal window
systemctl enable --now warp-svc

可以先确认服务已经启动:

Terminal window
systemctl status warp-svc --no-pager

三、注册设备并启用本地 SOCKS5 代理#

1. 注册 WARP 设备#

不同版本的 warp-cli 命令名称可能略有差异,下面的写法优先使用新命令,旧版本则回退到 register

Terminal window
warp-cli --accept-tos registration new || warp-cli --accept-tos register

2. 切换到代理模式#

代理模式只启动本地代理,不接管系统的全部流量:

Terminal window
warp-cli --accept-tos mode proxy

3. 设置 SOCKS5 监听端口#

这里使用 40000 作为示例端口,可以替换成其他未占用端口。后续 3X-UI 出站中的端口必须保持一致。

Terminal window
warp-cli --accept-tos proxy port 40000

4. 连接 WARP#

Terminal window
warp-cli --accept-tos connect

检查连接状态:

Terminal window
warp-cli --accept-tos status

四、先单独测试 WARP 出口#

在接入 3X-UI 之前,先确认 SOCKS5 代理本身可以工作:

Terminal window
curl -x socks5://127.0.0.1:40000 https://ifconfig.co

如果命令返回的 IP 与 VPS 原来的公网 IP 不同,说明 WARP 代理已经建立。可以同时执行下面两条命令进行对比:

Terminal window
# VPS 直连出口
curl https://ifconfig.co
# 经过 WARP 的出口
curl -x socks5://127.0.0.1:40000 https://ifconfig.co
测试失败时先不要配置 3X-UI

如果 curl 无法连接 127.0.0.1:40000,先检查 warp-svc 状态、代理模式和端口配置。3X-UI 只能使用已经正常工作的本地 SOCKS5 代理。

五、在 3X-UI 中添加 WARP 出站#

进入 3X-UI 的 出站 页面,添加一个新的出站,填写以下内容:

字段
协议socks
标签warp
地址127.0.0.1
端口40000
用户名留空
密码留空
Sockopt保持默认关闭
Mux保持默认关闭

在 3X-UI 中添加 SOCKS 出站
在 3X-UI 中添加 SOCKS 出站

保存出站后,确认列表中出现 warp 标签,并且地址显示为 127.0.0.1:40000

确认 WARP 出站已保存
确认 WARP 出站已保存

监听地址

WARP 只监听 127.0.0.1,因此这个代理不会直接暴露到公网。3X-UI 和 Xray 运行在同一台 VPS 上时,使用回环地址即可访问。

六、添加 Google 和 X 的路由规则#

进入 3X-UI 的 路由 页面,切换到 路由规则,新增一条规则。

1. 规则字段#

最关键的字段如下:

字段
域名geosite:google,geosite:twitter
出站标签warp
IP、端口、协议留空,除非你有额外分流要求

如果只需要解决 Google / Gemini,就填写:

geosite:google

如果还需要解决 X,再使用英文逗号追加:

geosite:google,geosite:twitter

添加 Google 和 X 的路由规则
添加 Google 和 X 的路由规则

确认出站标签选择的是上一节创建的 warp,不要误选 direct 或其他出站。

2. 保存并重启 Xray#

保存路由规则后,回到系统状态页面,重启 Xray,使新路由配置生效。

在 3X-UI 中重启 Xray
在 3X-UI 中重启 Xray

七、验证实际效果#

重启 Xray 后,可以在客户端重新打开目标服务。如果路由规则匹配成功,Google / Gemini 或 X 的出口就会经过 WARP。

Google / Gemini#

下面是路由调整前后的示例对比:

Google / Gemini 调整前的地区提示
Google / Gemini 调整前的地区提示

Google / Gemini 调整后的页面
Google / Gemini 调整后的页面

X#

X 的趋势和内容地区也可以用同样方式对比:

X 调整前的趋势地区
X 调整前的趋势地区

X 调整后的趋势地区
X 调整后的趋势地区

八、排错顺序#

WARP 端口无法连接#

Terminal window
systemctl status warp-svc --no-pager
warp-cli --accept-tos status
ss -lntp | grep 40000

确认 WARP 处于连接状态,并且本机确实有程序监听 127.0.0.1:40000

直连测试成功,但 3X-UI 不生效#

按下面顺序检查:

  1. 3X-UI 出站协议是否为 socks
  2. 地址是否为 127.0.0.1,端口是否与 WARP 代理端口一致。
  3. 路由规则的域名是否写成 geosite:googlegeosite:twitter
  4. 路由规则的出站标签是否选择 warp
  5. 保存路由后是否重启了 Xray。
  6. Xray 使用的 geodata 是否包含对应的 googletwitter 条目。

只想让 Google 走 WARP#

不要添加 geosite:twitter,只保留:

geosite:google

这样 X 和其他域名仍会按照原有规则处理。

九、停止或恢复 WARP#

暂时停止 WARP 连接:

Terminal window
warp-cli --accept-tos disconnect

重新连接:

Terminal window
warp-cli --accept-tos connect

如果不再需要 WARP 服务,可以停止并取消开机启动:

Terminal window
systemctl disable --now warp-svc

不要在没有删除 3X-UI warp 出站和相关路由的情况下直接卸载 WARP,否则 Xray 可能继续尝试连接一个不存在的本地代理。

参考资料#

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

用 Cloudflare WARP 与 3X-UI 修正 Google 和 X 的 IP 地区识别
https://linux.do/t/topic/2591258
作者
Erythritol
发布于
2026-07-15
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Erythritol
Hello, I'm Erythritol.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
7
分类
3
标签
21
总字数
8,380
运行时长
0
最后活动
0 天前