DMIT 搭配 Cloudflare WARP 实现 Grok 精准分流教程:原生 Client Proxy Mode + sing-box/Xray

很多人手里的 DMIT 线路本身没问题,平时跑 SSHGitHub、下载、面板都很稳,但一到 grok.com 这类站点,就可能遇到打不开、访问慢、或者区域判断异常。

这时候最容易想到的办法,是把整台 VPS 全局切进 WARP。但这样做往往副作用也很明显:

  • 你原本已经很顺的主线路会被整体绕远
  • 日常代理、面板和脚本任务都会一起受影响
  • 一不小心还会把现有网络环境和 SSH 使用习惯弄乱

更稳妥的思路通常是:

只让 grok.com 相关流量走 WARP,其他流量继续走原来的出口。

本文就按这个思路来做,而且依旧用对新手比较友好的 fscarmen/warp 脚本作为入口。

这篇教程适合什么场景

下面这套写法比较适合:

  1. 你已经有一台能正常 SSH 登录的 DMIT VPS
  2. 你已经跑着 sing-boxXray/V2Ray3x-uiX-ui
  3. 你不想让整台机器全局走 WARP
  4. 你只想把 grok.com 单独分流出去

如果你现在连基础节点都还没搭好,建议先把主线路跑通,再来做这一步。

为什么这里选原生 Client 的 Proxy Mode

这次不走“全局网卡模式”,也不直接改系统默认路由,而是使用 Cloudflare WARP 原生客户端的 Proxy Mode

这么做的好处是:

  • WARP 只在本机监听一个本地代理端口
  • 只有命中路由规则的流量才会送进这个端口
  • 现有 SSH、面板和大部分正常流量都不会被改写

根据 Cloudflare 官方文档,Local proxy mode 默认监听在 127.0.0.1:40000,并且只处理明确送进本地代理的流量。这也是它适合做“精准分流”的原因。

不过这里也要提前说清楚一个限制:

  • Cloudflare 官方文档同时提到,Local proxy mode 对单个请求存在 10 秒 超时限制

这意味着如果你后面实际使用 Grok 时,遇到长回复流式输出被中断,优先怀疑这一层限制。那种场景下,更适合换成 WireProxy socks5 或完整 WARP interface 方案,而不是死磕 Proxy Mode

第一步:在 DMIT 终端安装 WARP

先在你的 DMIT 终端执行:

1
wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh

这个脚本会弹出交互菜单。这里建议你按下面思路选择:

  • 选择安装 WARP 原生客户端
  • 模式选择 代理模式 (Proxy Mode)
  • 端口保持默认 40000

如果你只是想快速进入 Client 安装分支,也可以用脚本里提供的快捷方式:

1
bash menu.sh c

这样做的核心目的不是“让 VPS 全局翻过去”,而是让本机多出来一个可被 sing-boxXray 调用的本地代理入口。

第二步:确认本地代理已经起来

安装完成后,先在 VPS 上确认 40000 端口真的在监听:

1
ss -nltp | grep 40000

如果有输出,再继续用 curl 测试一下。这里建议显式使用 socks5h,让域名解析也走代理:

1
2
curl --proxy socks5h://127.0.0.1:40000 https://ifconfig.me
curl --proxy socks5h://127.0.0.1:40000 -I -L https://grok.com

这一步主要看两件事:

  • ifconfig.me 返回的出口 IP 不再是你原来的 DMIT 原生 IP
  • grok.com 最终能返回 HTTP 200

如果这一步都不通,先不要急着改 sing-boxXray,先把 WARP 本地代理本身排通。

第三步:在 sing-box 里添加精准分流

如果你用的是 sing-box,思路很简单:

  1. 先增加一个指向 127.0.0.1:40000socks 出站
  2. 再增加一条只匹配 grok.com 的路由规则

下面是一个最小可用示例,直接把对应片段合并进你现有配置即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"outbounds": [
{
"type": "socks",
"tag": "warp",
"server": "127.0.0.1",
"server_port": 40000,
"version": "5"
}
],
"route": {
"rules": [
{
"domain": [
"grok.com"
],
"domain_suffix": [
".grok.com"
],
"action": "route",
"outbound": "warp"
}
]
}
}

这条规则的意思是:

  • grok.com 根域名命中 warp
  • *.grok.com 这类子域名也命中 warp
  • 其他没有匹配到的流量,继续走你原来的默认出站

如果你使用的是较新的 sing-box,建议保留上面这种官方新写法,也就是:

  • action: "route"
  • outbound: "warp"

第四步:在 Xray / V2Ray 里添加精准分流

如果你用的是 XrayV2Ray,同样是两部分:

  1. 添加一个 socks 出站
  2. 添加一条只匹配 grok.com 的路由规则

Outbounds

1
2
3
4
5
6
7
8
9
10
11
12
{
"tag": "warp",
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 40000
}
]
}
}

Routing Rules

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"domain": [
"domain:grok.com"
],
"outboundTag": "warp"
}
]
}
}

这里有个很容易踩坑的小细节:

  • Xray 里,domain:grok.com 会匹配根域名和子域名
  • 不建议直接写裸字符串 grok.com

因为按官方文档,裸字符串更接近 keyword 行为,不够“精准分流”。

如果你用的是 3x-ui / X-ui

如果你平时主要通过面板操作,其实也很好套:

出站设置

  • 协议 (Protocol)SOCKS
  • 标签 (Tag)warp
  • 地址 (Address)127.0.0.1
  • 端口 (Port)40000

路由规则

  • Domaindomain:grok.com
  • Outbound Tagwarp

如果你更习惯图形界面表单,可以先参考我前一篇 DMIT + WARP + Disney+ 的文章,界面层面的操作逻辑是一样的,只是域名规则从 Disney+ 换成了 Grok

第五步:重启代理服务

改完配置后,记得重启你实际使用的核心:

1
systemctl restart sing-box

或者:

1
systemctl restart xray

如果你使用的是 3x-ui / X-ui,就在面板里保存并重启内核。

第六步:验证“精准分流”有没有生效

重启之后,先做最小验证:

1
curl --proxy socks5h://127.0.0.1:40000 -I -L https://grok.com

如果最终响应里能看到 HTTP 200,至少说明:

  • WARP 本地代理工作正常
  • grok.com 通过这个出口可以访问

接下来再用你的真实客户端去打开 Grok。如果页面仍然不通,重点排查这几项:

  1. sing-box / Xray 的规则有没有真的命中 warp
  2. 你的实际请求里是否还有其他官方域名没有被包含
  3. 本地是否存在 IPv6 直连、缓存或 DNS 分流干扰

建议先从最小规则开始,也就是只放 grok.com
如果你后续在浏览器网络面板里看到还有其他官方域名确实需要补,再按同样方式逐步加进去,不要一上来就把整套流量全局化。

常见误区

误区一:把整台 VPS 都切到 WARP 才算“生效”

不是。
你这次的目标是让 GrokWARP,不是把所有业务都重做一遍。

误区二:Xray 里写 grok.com 就等于精准匹配

也不是。
按官方文档,Xray 推荐使用 domain:grok.com 这种写法来匹配根域名和子域名。

误区三:只要能打开首页,就一定适合长期聊天

不一定。
Cloudflare 官方文档明确写了 Local proxy mode10 秒 请求超时限制。如果你发现长回复、流式输出、上传附件这些操作不稳定,要优先考虑模式本身的限制,而不是只盯着路由规则找问题。

总结

如果你的目标只是:

  • 不动现有主线路
  • 不影响 SSH
  • 不把全局流量一起拖慢
  • 只让 grok.com 单独走 WARP

那么这套 DMIT + WARP Client Proxy Mode + sing-box/Xray 精准分流 的思路,确实是很顺手的一种做法。

它的核心就三步:

  1. fscarmen/warp 装好 WARP 原生客户端代理模式
  2. 在核心里增加一个指向 127.0.0.1:40000socks 出站
  3. 用域名规则只把 grok.com 送进 warp

如果你后面发现 Grok 的长回复存在中断,再往上升级到 WireProxy 或更完整的 WARP 路由方案,会比继续强拧 Proxy Mode 更省时间。

参考资料