Credit world of Engine;
序
前两天需要在 Termius手机端 登录服务器,登录失败,提示 “connection is closed by foreign host”,打开 Quantumult X(以下称QX)看了下网络活动TCP,大概猜出是A机场节点问题,在用的机场节点禁用了22端口。于是切换到B机场节点,登录成功。
于是决定单独给该服务器的IP 设置一条分流,让其走B机场节点,而访问其他app,如YouTube/telegram等仍然使用A机场节点。
QX 提供为IP 提供 ip-cidr / ip6-cidr / ip-asn 3种分流规则类型;
[filter_local]
;ip6-cidr, 2001:4860:4860::8888/32, direct
;ip-cidr, 10.0.0.0/8, direct
;ip-asn, 6185, proxy
而博主的服务器为IPv4的IP,172.67.128.185(已模糊处理),该怎么给IP地址添加分流规则呢?遂从新捡起了 CIDR(英语:Classless Inter-Domain Routing,简称CIDR,无类别域间路由)
因上,总结记录整理出本文。
本文部分内容较以前文章有所重复,但不妨碍再次深入阅读。
开启“规则分流”模式及画板设置
分流规则优先级
[filter_local] > [filter_remote] > final
QX - 设置 - 配置文件 - 示例配置中 [filter_local] 部分示例如下:
[filter_remote]
https://limbopro.com/Adblock4limbo.list, tag=毒奶特供(去网页广告计划), force-policy=🛑 广告拦截, update-interval=172800, opt-parser=false, enabled=true
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/QuantumultX/OpenAI/OpenAI.list, tag=🤖 OpenAI, force-policy=🤖 Ai, update-interval=172800, opt-parser=false, enabled=true
[filter_local]
;user-agent, ?abc*, proxy
;host, www.google.com, proxy
;host-keyword, adsite, reject
;host-wildcard, *.goo?le.com, proxy
;host-suffix, googleapis.com, proxy
;host-suffix, googleapis.com, proxy, force-cellular
;host-suffix, googleapis.com, proxy, multi-interface
;host-suffix, googleapis.com, proxy, multi-interface-balance
;host-suffix, googleapis.com, proxy, via-interface=pdp_ip0
;ip6-cidr, 2001:4860:4860::8888/32, direct
;ip-cidr, 10.0.0.0/8, direct
;ip-cidr, 127.0.0.0/8, direct
;ip-cidr, 172.16.0.0/12, direct
;ip-cidr, 192.168.0.0/16, direct
;ip-cidr, 224.0.0.0/24, direct
;geoip, cn, direct
;geoip, cn, direct, force-cellular
;ip-asn, 6185, proxy
# You can add below host-keyword rule to skip the DNS query for all the non-matched hosts. Pure IP requests won't be matched by the host related rules.
;host-keyword, ., proxy
final, proxy
以上 [filter_local] 下的分流规则较 [filter_remote] 下的远程分流规则,有着更高的优先级;当你打开一个网站时,假设这个网站是 limbopro.com ,QX 将从 [filter_local] 第一行开始查询匹配,如果匹配得到则执行相应的策略,如direct,proxy,或你设置的其他策略或策略组;
直到 final, proxy ,如果仍然还没有匹配到将会继续从 [filter_remote] 第一行开始匹配,直到最后一个;如果仍然没有匹配到,才会最终走 final, proxy;
其中,除了 final 外,一般分流规则包含3个部分:规则的类型,参数,对应的策略偏好,(其中策略:direct,proxy,reject 为 Quantumult X 自带的3个策略;策略 proxy 对应的是 QX - 首页 - 节点 - proxy - 下你选中节点):
host, www.google.com, proxy
OK,以上。
那么,分流规则的 类型的优先级 又是怎样的呢?
host > host-suffix > host-wildcard > host-keyword > user-agent > ip-cidr ip6-cidr geoip ip-asn
ip-cidr > ip6-cidr > geoip > ip-asn
举例示例如下:
[filter_local]
host-keyword, limbopro, proxy
host-wildcard, limbopro.com, proxy
host-suffix, limbopro.com, proxy
host, limbopro.com, proxy
你猜会优先执行哪条规则?你可以尝试将上述举例中的分流规则复制到 [filter_local] 下方;然后再在新页面打开 limbopro.com;最后再在 QX - 首页 - 网络活动TCP(记录),如下图:
你可以在 网络活动TCP 功能页,查看各类网络活动请求,如刚刚你打开 limbopro.com 后,QX 发生了什么?分流以及策略走向是怎样的,是否已按照你的设置的分流规则执行。
以上。
ip-cidr/ip6-cidr/geoip/ip-asn
ip-cidr, 10.0.0.0/8, direct
现在我们需要单独给一个IP地址设置分流规则该怎么做?比如 172.67.128.185,让它走proxy,标准答案是:
ip-cidr, 172.67.128.185/32, proxy
一头雾水?先来了解一下 ip-cidr:
无类别域间路由(英语:Classless Inter-Domain Routing,简称CIDR/ˈsaɪdər, ˈsɪ-/)是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。是IP地址及其关联网络掩码的紧凑表示。该表示法由 Phil Karn 在 20 世纪 80 年代发明。 CIDR 表示法指定 IP 地址、斜杠(“/”)字符和十进制数。 Credit Wikipedia;
关于IP地址/CIDR/子网掩码更多介绍可以参阅上文(总结成文于2022年,如有疏漏可联系博主反馈);
前缀聚合
IP/CIDR | Δ 与最后一个地址的差值 | 掩码 | 主机数 (*) |
---|---|---|---|
a.b.c.d/32 | +0.0.0.0 | 255.255.255.255 | 1 |
a.b.c.d /31 | +0.0.0.1 | 255.255.255.254 | 2 |
a.b.c.d /30 | +0.0.0.3 | 255.255.255.252 | 4 |
a.b.c.d /29 | +0.0.0.7 | 255.255.255.248 | 8 |
a.b.c.d /28 | +0.0.0.15 | 255.255.255.240 | 16 |
a.b.c.d /27 | +0.0.0.31 | 255.255.255.224 | 32 |
a.b.c.d /26 | +0.0.0.63 | 255.255.255.192 | 64 |
a.b.c.d /25 | +0.0.0.127 | 255.255.255.128 | 128 |
a.b.c.0 /24 | +0.0.0.255 | 255.255.255.000 | 256 |
a.b.c.0 /23 | +0.0.1.255 | 255.255.254.000 | 512 |
...... | ...... | ...... | ...... |
Credit wikipedia;
主机数 = 2^(32-CIDR) > a.b.c.d /29 -> 2^(32-29) =8;
回到例子CIDR块 172.67.128.185/32:
主机数的计算:2^(32-CIDR),172.67.128.185/32 可用主机数为 2^(32-32) = 1,即 172.67.128.185 本身。接着往下,172.67.128.185/31,可用主机数为 2^(32-31) = 2,第一个可用主机为 172.67.128.184,第二个为 172.67.128.184。get?
172.67.128.184 是怎么算出来的呢?(不是简单的加减...),往下:
172.67.128.185/31
等价于
172.67.128.185 -> IP地址
255.255.255.254 -> 子网掩码
其中 172.67.128.185 换算为二进制:
10101100 01000011 10000000 10111001
其中 255.255.255.254 为子网掩码,换算成二进制:
11111111 11111111 11111111 11111110
进行与运算,得出网络地址:(🔔即最小可能地址;)
10101100 01000011 10000000 10111001
11111111 11111111 11111111 11111110
------
10101100 01000011 10000000 10111000
将与结果转换为10进制 172.67.128.184
广播地址:将转换为二进制的IP地址中的主机号全部变为1;子网掩码 11111110 中的 0 上方对应的为IP地址的主机号;(🔔广播地址通常是某个网络的最大可能地址;)
10101100 01000011 10000000 10111001
11111111 11111111 11111111 11111110
------
10101100 01000011 10000000 10111001
转换为10进制 172.67.128.185,最终得到:
网络地址 172.67.128.184
广播地址 172.67.128.185
geoip
...
geoip, cn, direct
final, proxy
geoip,基于IP地理位置数据库,cn 代码则表示中国;
分流规则应用场景
特指 [filter_remote];
你可以在GitHub上创建并维护一个去广告project,
另外,也可尝试为当前热门 分流规则 GitHub仓库,如 blackmatrix7 的 ios_rule_script 贡献你的力量:该项目提供众多app的分流规则,如 Google/YouTube/Twitter/Netflix/Chatgpt 等。
以抖音分流规则举例:远程分流规则资源介绍 -> https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/QuantumultX/DouYin 远程分流规则raw -> https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/QuantumultX/DouYin/**DouYin.list**;
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/QuantumultX/DouYin/DouYin.list
QX -> 设置 - 分流 - 资源引用 - + 粘贴上述 raw 资源链接🔗,开启策略偏好,按需求选择direct,proxy,reject,或其他你自己设置的策略;如果不想给小孩看抖音,那策略偏好就选 reject,如果想在抖音上扮洋人,可以选择proxy,你在抖音评论区的留言或许过不了多久就会显示为你机场节点所在国;
# NAME: DouYin
# AUTHOR: blackmatrix7
# REPO: https://github.com/blackmatrix7/ios_rule_script
# UPDATED: 2024-07-03 16:17:40
# HOST: 2
# HOST-SUFFIX: 11
# TOTAL: 13
HOST,lf3-static.bytednsdoc.com,DouYin
HOST,v5-dy-o-abtest.zjcdn.com,DouYin
HOST-SUFFIX,amemv.com,DouYin
HOST-SUFFIX,douyincdn.com,DouYin
HOST-SUFFIX,douyinpic.com,DouYin
HOST-SUFFIX,douyinstatic.com,DouYin
HOST-SUFFIX,douyinvod.com,DouYin
HOST-SUFFIX,idouyinvod.com,DouYin
HOST-SUFFIX,ixigua.com,DouYin
HOST-SUFFIX,ixiguavideo.com,DouYin
HOST-SUFFIX,pstatp.com,DouYin
HOST-SUFFIX,snssdk.com,DouYin
HOST-SUFFIX,toutiao.com,DouYin
蛮好玩的,但博主不建议大家扮洋人,毕竟你的实际地理位置还在中国,或许会有不好的影响。
以上。
版权属于:毒奶
联系我们:https://limbopro.com/6.html
毒奶搜索:https://limbopro.com/search.html
毒奶导航:https://limbopro.com/daohang/index.html本文链接:https://limbopro.com/archives/30471.html
本文采用 CC BY-NC-SA 4.0 许可协议,转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!