软路由,透明代理,fake-ip 模式
a. 浏览器访问一个网址必须有对应的 IP 地址,没有的话就会自动发起 DNS 查询请求
b. clash 对 DNS 请求( UDP )有区别与其他 UDP 协议的处理
禁用 QUIC 、浏览器、电脑、clash 都没有任何 DNS 缓存记录
浏览器输入 google.com ,首先浏览器发送一个 DNS ( UDP )请求,查询 google.com 对应的 IP 地址
clash 收到 DNS 请求,直接返回给浏览器一个假的 IP 地址(假设为 192.1.1.1 ),并记录这个假的 IP 地址对应的网址
浏览器发起 TCP 请求,访问 google.com ,目标地址为:192.1.1.1
clash 收到来自于浏览器的数据包,查看数据包的目标 IP ,在自己的记录表里面查询 IP 有没有对应的域名
有对应域名
走域名匹配规则,如果没有匹配到任何规则,进行 DNS 查询,用拿到的 IP 进行 IP 匹配(这里不会拿上面的假 IP 进行匹配,而是要进行一次真正的 DNS 查询,这个过程可能会导致 DNS 泄露),DNS 查询会多路并发,主要分为:nameserver 指定的 DNS 服务器(国内的,快,但是有泄露和篡改风险),fallback 指定的 DNS 服务器(国外,慢,一定不会篡改),如果是国外的 IP 信任 fallback 结果,国内的信任 nameserver 。用查询到的 IP 做 IP 规则匹配
没有对应的域名
进行 IP 规则匹配
用匹配到的代理进行处理后续的流程....
fake-ip ,UDP 转发,绕过中国大陆 IP [验证可行]
但是我并不知道原理,功能上写的是来自中国大陆的流量不再经过内核,可是中国大陆的流量的判定不也是 Domain-DNS-GEOIP?
不开启这种方案的时候,因为我的规则列表没有任何游戏相关的规则,走域名匹配不通,然后走 IP 匹配的道路不也是 Domain-DNS-GEOIP ,为什么就进不去游戏了?
fake-ip-filter 添加游戏域名 [猜想可行]
相当于给指定游戏不走 fake-ip 模式,回退到 redir-host
缺点:一个游戏一个游戏添加,域名收集是个大问题
fake-ip ,不进行 UDP 转发 [猜想可行]
不知道 DNS 解析会不会受影响,根据我上面的理解 b, 应该不会受影响吧
缺点:国外游戏想走代理的也走不了,而且走 UDP 的也不止游戏啊
关于国外游戏代理 [不知可行与否]
fake-ip, UDP 转发,规则列表添加国外游戏域名,Proxy ,是不是就可以了?
1
murchef 2023-07-17 16:48:47 +08:00
我用 meta 内核,现在还支持 redir-host ,因为我直接用 mosdns 管理 dns ,所以 fakeip 对我来说是副作用
|
2
caneman OP @murchef #1 meta 内核是分出去的,如果想在原版内核 fake-ip 的基础上,解决我上面提出的问题,有没有什么比较好的方案?为什么绕过大陆 IP ,游戏就可以了?大陆 IP 咋判定的?不也是需要通过 DNS 解析获得的吗?这一点我没想通。
|
3
murchef 2023-07-17 16:53:05 +08:00
@murchef #1 游戏用加速器好一点,之前试过走代理,延迟也高,我也不开 UDP 转发,基本上国内游戏都能直连,走加速器的也不会被代理
|
4
murchef 2023-07-17 17:08:25 +08:00
@caneman #2 先从 dns 获得 ip ,然后基于 GeoIP 来判断
游戏基本上直接访问 IP ,ip 在 geoip 内就是直连 |
5
caneman OP @murchef #3 其实初衷就是嫌多搞一个游戏加速器麻烦。想着直接上一个高质量机场,所有网络的活都全包了。fake-ip 的优点是,规则列表里面的域名少一次 DNS ,打开网页是真的丝滑。如果能在 fake-ip 的模式下把已有问题解决了,感觉就很舒服,我的需求也不多主要是。
|
6
murchef 2023-07-17 17:15:35 +08:00
@caneman #5 我之前也有这个想法,但目前高质量机场从江浙沪到 HK 的延迟都远不如垃圾加速器,然后有些游戏平台的或者说游戏的域名或 IP 这种分流很难弄。而且就是规则列表里不全,不如要打游戏时直接全局或在电脑上单独装个 clash 走全局,平时关了
|
7
mohumohu 2023-07-17 17:23:17 +08:00
fake-ip 就不应该做全局 DNS ,按需分流给 fake-ip ,然后做静态路由是比较清晰合理的。可以参考这个文章的拓扑: https://blog.03k.org/post/paopaogateway.html
|
8
yukinomiu 2023-07-17 18:10:36 +08:00
分流这个问题, 我觉得目前没有特别好的方案, 非常容易把网路搞的特别复杂, 还要维护一系列规则.
我的选择是, 两个网关, 一个 direct, 一个 proxy. 自己根据需求切下网关就行. 分流判断的开销的省了. 移动设备直接通过 wifi 区别, 有线 PC 麻烦一点, 要手动切换网关. |
9
zbatman 2023-07-19 10:17:05 +08:00
具体是啥游戏?
我也是通过 clash+fake-ip 做游戏加速,PS5 的战地 1 、Xbox 的暗黑 4 联机都是没问题的 |
10
caneman OP @zbatman #9
主要是国内的一些游戏,我目前测试的是穿越火线有问题,网上还有王者荣耀、吃鸡遇到问题的 问题表现形式都一样:登录、仓库、商店这些界面都没问题,游戏开始,加载不进去,我这边的具体情况是 开启插件看不到 ping 值,进游戏卡 45%(不是登录的那个进游戏,是要开始对战的进游戏)然后提示网络连接异常,断掉。回到主界面(仓库、商店之类的依然可以点击没有任何问题,大厅也可以正常浏览进入) |
11
caneman OP @zbatman #9
fake-ip , [关闭] [实验性:绕过中国大陆 IP], [关闭] UU 加速器,游戏加载失败 fake-ip , [关闭] [实验性:绕过中国大陆 IP], [开启] UU 加速器,UU 加速器显示丢包率 100%,游戏加载成功 fake-ip , [关闭] [实验性:绕过中国大陆 IP],fakeip-filter 加入 QQ 相关域名(*.qq.com/tencent.com ),游戏加载失败 fake-ip , [开启] [实验性:绕过中国大陆 IP], [关闭] UU 加速器,游戏加载成功 redirhost , [关闭] [实验性:绕过中国大陆 IP],游戏加载失败 |
12
zbatman 2023-07-19 10:51:16 +08:00
@caneman 那可能是 fake-ip 的问题。
我的方案跟你的不太一样,不是全局 fake-ip 。我是在主路由上用 mosdns 国内外分流,国内的域名走国内的 DNS ,获取真实 ip 直连(不经过 Clash);国外的域名走软路由 Clash 的 fakeDNS ,获取 fake-ip 。 主路由配置静态路由(fake-ip 段 -> 软路由 ip)把 fake-ip 段的流量导向软路由 可以参考下这个方案,全局 fake-ip 应该就是会有奇奇怪怪的问题 |
13
caneman OP @zbatman #9 主机游戏我没测试,看了下 switch 的网络类型是 F ,节点是支持 UDP 的,但是好像不是 fullcone ,对了我关闭了所有 IPV6 相关的功能,但是跟这个应该没关系吧。
|
18
xcjyearth6 165 天前
试试 Fake-IP ( TUN-混合)模式 [ UDP-TUN ,TCP-转发] ,网络栈选择混合 (仅 Meta 内核)
|