基于Clash Parsers规则预处理绕过Bing地区审核

痛点 💡

用户在使用Clash的“edit”或”edit externally”自行编辑规则后,每次自动更新订阅都会导致规则被覆写,如果用户配置了代理domain-suffix为bing.com的规则,也会被直接覆写,导致用户可能每天都要重新配置一次才可以访问指定服务。

之前博主尝试过修改UA头中的X-Forwarded-For字段实现绕过Bing地区限制,但最终没有成功实现。

这个原理是通过XFF伪造源地址为美国的家宽地址,以此尝试绕过Bing的地区限制。

知识扩展

顺便来了解一下HTTP请求头中的“Remote_Addr,X-Forwarded-For,X-Real-IP”分别是什么

Remote_Addr

代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的。

X-Forwarded-For

X-Forwarded-For请求标头是一个事实上的用于标识通过代理服务器连接到 web 服务器的客户端的原始 IP 地址的标头。

语法: X-Forwarded-For: <client>, <proxy1>, <proxy2>

<client>

客户端的 IP 地址。

<proxy1>, <proxy2>

如果请求经过多个代理服务器,每个代理服务器的 IP 地址会依次出现在列表中。这意味着,如果客户端和代理服务器行为良好,最右边的 IP 地址会是最近的代理服务器的 IP 地址,最左边的 IP 地址会是原始客户端的 IP 地址。

例如 >> X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3.3.3.3

意思是请求由1.1.1.1发出,经过三层代理,第一层是2.2.2.2,第二层是3.3.3.3,而本次请求的来源IP4.4.4.4是第三层代理

这个参数具有可篡改性,通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库或某文件,所以可以通过篡改XFF头实现伪造IP地址,实现HTTP头注入攻击。

X-Real-IP

多代理场景时在第一个反向代理上配置“proxy_set_header X-Real-IP $remote_addr” 获取真实客户端IP

开始配置

Clash版本要求

0.10.1 版本更新后,支持使用 JavaScript 对下载后的配置文件进行预处理
0.11.10 版本更新后,支持使用 YAML 对下载后配置文件进行简单预处理

YAML配置

由于YAML方案相对简单,所以我这边介绍YAML配置方案。如果需要对下载地址为https://example.com/profile.yaml的配置文件进行预处理,操作如下:

选择图中的“Parsers”

parsers:
  - url: https://example.com/profile.yaml;
    yaml:
      prepend-rules:
        - DOMAIN-SUFFIX,bing.com,OpenAI
	# rules最前面增加一个规则 我这边之前定义过OpenAI这个服务,你们可能是“Proxies”

或采用正则匹配方式(建议采用上面的方式)

parsers:
  - reg: ^https://www.bing\\.com/.+$ # 正则匹配域名
    yaml:
      prepend-rules:
        - DOMAIN,bing.com,OpenAI

当配置文件触发刷新(包括自动更新)时,会读取yaml字段定义的值,将对应值插入/合并到原配置文件中。其中对于prepend-rules的相关关键配置解释如下:

关键字值类型操作
append-rules数组数组合并至原配置rules数组后
prepend-rules数组数组合并至原配置rules数组前
append-proxies数组数组合并至原配置proxies数组后
prepend-proxies数组数组合并至原配置proxies数组前
append-proxy-groups数组数组合并至原配置proxy-groups数组后
prepend-proxy-groups数组数组合并至原配置proxy-groups数组前
mix-proxy-providers对象对象合并至原配置proxy-providers中
mix-rule-providers对象对象合并至原配置rule-providers中
mix-object对象对象合并至原配置最外层中
commands数组在上面操作完成后执行简单命令操作配置文件

以下是对于“OpenAI”参数的相关解释

DIRECT: 直连
REJECT: 该规则下不走网络活动,常用于广告拦截
Proxies: 走代理访问

实现图

如果依旧无法访问,可以尝试清空cookie,并将微软账户设置为美国等其他可用的国家,因为Bing也有根据Cookie来判断访客所属国家。

免责声明

如果您下载、安装、使用、修改本程序及相关代码,即表明您信任本程序。在使用本程序时造成对您自己或他人任何形式的损失和伤害,本人不承担任何责任。如您在使用本程序的过程中存在任何非法行为,您需自行承担相应后果,本人将不承担任何法律及连带责任。请您务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款,并选择接受或不接受。除非您已阅读并接受本协议所有条款,否则您无权下载、安装或使用本程序。您的下载、安装、使用等行为即视为您已阅读并同意上述协议的约束。Use at Your own risk.

留下评论

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

富强民主文明和谐