zizifn / edgetunnel

Running V2ray inside edge/serverless runtime
GNU General Public License v2.0
6.74k stars 21.78k forks source link

CF的IP访问CloudFlare类网站访问问题 似乎有另辟蹊径的方法 #301

Open ennm666 opened 3 months ago

ennm666 commented 3 months ago

有些话说在前头。。。

我只针对技术问题探讨,不是来推广siteproxy的,只是刚好看到已经实现的方案,在此提出思路

导语

前面太啰嗦了,不喜欢的别喷,直接跳到后面的总结看吧

我们都知道edgetunnel部署完无法直接访问CF类的网站的,需要借助ProxyIP帮我们代理访问

根据CloudFlare的帮助文档,这个问题是个BUG,但这个BUG在官网的帮助文档里存在很久了,官方修复遥遥无期(据Github网友所述自操作可能官方意图防止在CF站点内做CC攻击自己,相当于零成本左手打右手)

那有没有例外呢? 答案肯定是有的

典型例子就是WARP 1.1.1.1,当你用打开WARP访问cloudflare.com/cdn-cgi/trace的时候

输出信息里有一行warp=on(on代表普通免费账号 plus代表WARP+账号 Teams代表Zero Trust账号)

如图 image

正题

但最近逛CF类的项目时发现这么个项目让我感到有些惊讶

名称:siteproxy

地址:github.com/netptop/siteproxy

部署完以后我们可以正常通过这个网页端的代理访问网站

但是最重要的是,这个同样部署在Workers的项目,不需要依赖任何其他代理可以访问CF类的网站

这立刻勾起了我的兴趣

于是我马上开始进行初步探究

区别

首先是对针对siteproxy所使用的IP一般的EdgeTunnel使用的IP(以下图中的示例是我自己用的,配置了SOCKS代理,可以正常访问CF类网站)

IPChecking对比

EdgeTunnel: 屏幕截图_9-6-2024_19314_ipcheck ing

Siteproxy: 屏幕截图_9-6-

我们可以注意到很明显的不同之处:ASN编号

我们查询可以得到

EdgeTunnel使用的ASN image

SiteProxy使用的ASN image

期中值得注意的是SiteProxy使用的ASN是EdgeTunnel使用的ASN的下游

image

这就意味着同样部署在Workers上的siteproxy使用的是Cloudflare的特殊IP段,并且上游就是熟悉的CF广播在全球的CDN网络(也就是我们平时优选的官方IP段)

所以siteproxy用的IP是被特殊照顾的CF官方IP,因此可以访问CF类的网站,就是个例外了

我们使用siteproxy访问CF官网试试看 cloudflare.com/cdn-cgi/trace

屏幕截图_9-6-2024_191643

返回的ip=2a06:980c:3600::103经查询也是CF的IP

实际体验

访问CF类的网站肯定是没问题的

但我们也知道CF的CDN IP段是在Ban位第一的,所以有些网站也禁止访问如

Steam: 屏幕截图_9-6-2024_191825_

Pixiv: 屏幕截图_9-6-2024_191755_

其速度方面当然值得肯定的是CF CDN的网络交付质量

Speedtest 56D571E2675473EF45C1947AA55998A4

Fast(结果与自选的IP有关)

fast2 原因:上文也说到,CF全球广播的CDN ASN132892是Siteproxy的ASN132892的上游(相当于同一个妈生的,当然用同一张CDN网络,因此速度才会如此快)

总结

作者是否可以根据项目siteproxy的workers的部署代码来实现让EdgeTunnel获得这么个特殊IP段提供代理服务,从而实现访问CF类的网站?

脚本地址:github.com/netptop/siteproxy/blob/master/build/worker.js

(此脚本似乎被siteproxy作者加密)

zizifn commented 3 months ago

谢谢反馈,除了 proxyip 还有什么更好的方法吗?

ennm666 commented 3 months ago

谢谢反馈,除了 proxyip 还有什么更好的方法吗?

东西写的太长了,花了点时间,希望能采纳

zizifn commented 3 months ago

谢谢反馈,除了 proxyip 还有什么更好的方法吗?

东西写的太长了,花了点时间,希望能采纳

太感人了,写的太长了,您进群吧 https://t.me/+ERhKuyUl8mRhYTZl

Fangliding commented 3 months ago

siteprozy用的fetch 这个是可以连cf的 edtunnel用的是connect 不能的是这个 前者只能用于获取网页内容 后者是建立tcp连接 想要起vless需要后者

ennm666 commented 3 months ago

siteprozy用的fetch 这个是可以连cf的 edtunnel用的是connect 不能的是这个 前者只能用于获取网页内容 后者是建立tcp连接 想要起vless需要后者

感谢回答

realchris007 commented 2 months ago

這是自己搭建workr.js中的proxyIP嗎?有沒有大佬試過?順便求一個好用的proxyIP,能正常訪問github和wallhaven壁紙站和EH站的。。。