XrayR 利用 Gost 实现 Gemini Chatgpt Claude 流量分流到另一个服务器

起因:
我使用dmit的malibu, 大部分网站没问题, 但是gemini总是显示"网络错误, 请稍后重试", 所以我想试试分流到rn会不会好一些.

场景说明

  • A 服务器:线路机, 运行 XrayR 的主服务器, 我实际用的是dmit。

  • B 服务器:安装了 Gost 的辅助服务器, 我用的racknerd。

  • 目标:当访问 Gemini 或 Google 时,A 服务器自动将流量转发给 B 服务器,由 B 代为请求,解决地区限制, 或者IP问题.


第一步:B 服务器准备 (代理服务端)

在 B 服务器上运行 Gost 建立 HTTP 代理出口。

  1. 从github下载二进制文件: https://github.com/ginuerzh/gost/releases/tag/v2.12.0
  2. 解压后放到某个目录里, 比如/opt/gost, 设置好权限, 然后使用进程守护运行:
/opt/gost/gost -L http://用户名:密码@:28443

用户名, 密码, 端口, 都可以自定义


3. 防火墙开通:B服务器放行28443端口, 但是只对A服务器放行, 这样更安全。


第二步:A 服务器配置 (分流客户端)

在 A 服务器上,我们需要告诉 XrayR:“如果你看到去往 Google 的流量,请把它发给 B 服务器的 28443 端口。”

1. 查找配置文件路径

首先确认 A 服务器 /etc/XrayR/config.yml 中以下两项的路径,通常默认为:

  • RouteConfigPath: /etc/XrayR/route.json

  • OutboundConfigPath: /etc/XrayR/custom_outbound.json

如果之前没有配置过, 大概率是 # 忽略的, 需要删除#, 让规则生效.

2. 配置自定义出口 (custom_outbound.json)

编辑该文件,添加 B 服务器的信息。注意 tag 标签,它将作为路由的标识。

[
  {
    "tag": "proxy-rn",  #可以自定义名字
    "protocol": "http",
    "settings": {
      "servers": [
        {
          "address": "B服务器IP", 
          "port": 28443,
          "users": [
            {
              "user": "czlgost",
              "pass": "wiejasxxxx"
            }
          ]
        }
      ]
    }
  }
]

3. 配置路由规则 (route.json)

编辑该文件,设置分流逻辑。为了确保 Gemini 稳定运行,推荐直接分流整个 geosite:google

完整示例

{
  "domainStrategy": "IPOnDemand",
  "rules": [
    {
      "type": "field",
      "outboundTag": "proxy-rn",
      "domain": [
        "geosite:google",
        "geosite:openai",
        "geosite:anthropic"
      ]
    },
    {
      "type": "field",
      "outboundTag": "block",
      "ip": [
        "geoip:private"
      ]
    },
    {
      "type": "field",
      "outboundTag": "block",
      "protocol": [
        "bittorrent"
      ]
    },
    {
      "type": "field",
      "outboundTag": "IPv4_out",
      "domain": [
        "geosite:cn"
      ]
    },
    {
      "type": "field",
      "outboundTag": "IPv4_out",
      "ip": [
        "geoip:cn"
      ]
    },
    {
      "type": "field",
      "outboundTag": "IPv4_out",
      "network": "udp,tcp"
    }
  ]
}

第三步:重启与生效

修改完成后,重启 A 服务器的 XrayR 服务:

Bash

XrayR restart

第四步:验证分流是否成功

1. 实时日志检查 (最准确)

在 A 服务器上观察流量走向:

Bash

journalctl -u XrayR -f

当你访问 gemini.google.com 时,日志中若出现 outbound: proxy-gemini,则说明流量已成功转发至 B 服务器。


:warning: 注意事项与常见问题

1. JSON 格式陷阱

JSON 格式非常严格。请确保所有层级的括号 { }[ ] 是成对的,且列表最后一项后面不要加逗号。如果重启报错,通常是 JSON 语法问题。

2. 资源文件缺失

如果 geosite:google 规则不生效,请检查 /etc/XrayR/ 目录下是否有 geosite.dat 文件。若缺失,分流指令将无法识别。

3. 安全性提醒

由于 Gost 的 HTTP 代理协议在 A 和 B 之间是明文传输的,该方案仅适用于 A、B 服务器均在海外的情况。如果 A 服务器在国内,请将协议更换为带 TLS 加密的 VLESS 或 Trojan,否则会被防火墙识别。