起因:
我使用dmit的malibu, 大部分网站没问题, 但是gemini总是显示"网络错误, 请稍后重试", 所以我想试试分流到rn会不会好一些.
场景说明
-
A 服务器:线路机, 运行 XrayR 的主服务器, 我实际用的是dmit。
-
B 服务器:安装了 Gost 的辅助服务器, 我用的racknerd。
-
目标:当访问 Gemini 或 Google 时,A 服务器自动将流量转发给 B 服务器,由 B 代为请求,解决地区限制, 或者IP问题.
第一步:B 服务器准备 (代理服务端)
在 B 服务器上运行 Gost 建立 HTTP 代理出口。
- 从github下载二进制文件: https://github.com/ginuerzh/gost/releases/tag/v2.12.0
- 解压后放到某个目录里, 比如
/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 服务器。
注意事项与常见问题
1. JSON 格式陷阱
JSON 格式非常严格。请确保所有层级的括号
{ }和[ ]是成对的,且列表最后一项后面不要加逗号。如果重启报错,通常是 JSON 语法问题。2. 资源文件缺失
如果
geosite:google规则不生效,请检查/etc/XrayR/目录下是否有geosite.dat文件。若缺失,分流指令将无法识别。3. 安全性提醒
由于 Gost 的 HTTP 代理协议在 A 和 B 之间是明文传输的,该方案仅适用于 A、B 服务器均在海外的情况。如果 A 服务器在国内,请将协议更换为带 TLS 加密的 VLESS 或 Trojan,否则会被防火墙识别。
