-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于Ping测试时延的建议 #25
Comments
测量标准可以以发出request到收到http报文为准,应该也有相关参考的go语言代码(不是专家)https://github.com/search?l=Go&q=http+ping&type=Repositories |
Cloudflare CDN 用到了Anycast 技术,所以即使你 Hosts 指向一个 Cloudflare CDN 节点 IP 访问某个网站,该网站后台看到的 CDN 节点请求 IP 其实是其他 CDN 节点 IP,并不是同一个 IP。 访问 CDN 流程:你访问使用 Cloudflare CDN 的网站时,CDN 会分配给你一个距离最近的 IP(具体看情况),你访问这个 IP 后,如果有缓存就直接发给你了,如果没有缓存就会选个距离网站源服务器 IP 最近的 CDN 节点去回源(请求网页内容)。 所以说,你访问网站时解析的明明是 IP A,但是网站后台看到的回源 CDN IP 却是 B。 并不说你通过 CDN IP A 去访问网站,CDN 就会通过 IP A 去回源访问你的网站服务器。 Cloudflare CDN 公开的所有 IP 段中,分为两类。
回源 IP 是由 Cloudflare CDN 根据情况分配的,用户是无法主动控制的。 如果你有使用 Cloudflare CDN 的网站,可以自己做测试:访问网站前按 所以说,你提的这个需求没有必要。 而且,HTTP Ping 是需要双向支持的(ICMP Ping 和 TCP Ping 也是各系统内置支持了),也就是说只有我这软件支持没用。 因为软件(客户端)发送数据给服务器后,还需要服务器上面有个软件(服务端)来接收数据并回应,这样才是一个完整的链接。 这意味着要使用 HTTP Ping 还需要在服务器上安装特定的软件(服务端),这无疑是会使软件操作复杂、麻烦。 另外,别把我当大佬,对于 Go 语言我可能连入门都算不上,完全是看几篇教程就上手了,写的乱七八糟的,所以技术很菜,你说的 HTTP Ping 我也不懂,没必要把软件整的太复杂。 当然最重要的是我对这功能不感兴趣。。。也就没有动力去实现该功能。 我这个人很随性,遇到感兴趣的我可以临时学会一门编程语言去实现,但是如果没兴趣的,就没动力。。。 因此我就不知不觉学了很多语言,当然,一个精通的都没有。。。 本身就是个小众需求、小众软件,用的人很少,甚至折腾出来后,感觉有点鸡肋,我自己都没用过几次。。。 而且很有意思的是,我一开始的目的只是单纯的想要找个速度快的 Cloudflare CDN IP,用来 Hosts 指向一些国外网站提高访问速度,结果最近我发现很多人都是拿这个软件扫出来最快 IP 去提高梯子速度。。。 |
谢谢大佬的解惑。我按照这个思路去看一下。 btw,最后一句话看的太真实了,hhhh |
我只是在回复你时简单测试了下。 把网站域名 Hosts 指向某个 Cloudflare CDN IP,换了好几个 IP 测试,都没有遇到和网站后台访客 IP 一致的情况。 但是也有例外,那就是我昨天添加的 3 个非公开 Cloudflare CDN IP,这 3 个可能是因为比较特殊(不是 Cloudflare 自己的 IP 节点,而是和其他公司合作的),测试时发现网站后台访客 IP 是一致的,除了这 3 个外,没见到其他一致的情况了。 |
嗯嗯。应该是小众ISP没有很强的网络基础设施,估计就不会用到泛播IP。 |
大佬请问你是怎么扫到非公开 Cloudflare CDN IP的 ? 谢谢 |
@1967522059 不是我扫出来的,是 #15 这个人扫出来的,但是他也没说具体方法。。。 |
好的 谢谢 |
看来很多人对这个问题很感兴趣啊 |
@AndersonGhost 因为 Cloudflare CDN 自己的亚洲节点太少了,除了移动可以直连 Cloudflare CDN 香港节点外(但是否会分配到香港 IP 也看运气,当然可以用我这软件来找到),其他运营商链接这些 CDN 亚洲节点都要绕道其他国家,导致速度捉急。。。 当然之所以亚洲节点少,主要是因为亚洲宽带成本高昂(新加坡<日本<香港<韩国,最大可能有几倍的差距)。 因为 Cloudflare 无法进军中国市场,所以也不会针对中国访客去优化线路,为了最大程度的利用亚洲节点,致使中国访客链接 CDN 亚洲节点都要各种绕道。。。 在 CDN 市场中,目前的老大应该还是亚马逊,亚马逊就有很多亚洲节点,但是亚马逊 CDN 和 Cloudflare CDN 不一样,并不能随便指向任意一个 CDN IP,要看该网站购买了 CDN 哪些服务(CDN 区域)。 |
很好奇你们都是从哪里找到我这个项目的,因为我都没怎么宣传过,本身就是很冷门的需求,起初是我自用的。。。 特别是最近几天,项目访问量 和 软件使用量 突然提高一截。。。 |
如果没有其他需要讨论的问题,就关闭该 Issues 吧。 走之前如果觉得该项目有帮到你,那就去项目右上角点个 [⭐ Star] 鼓励一下吧~ |
目前ping采用的是tcp ping的方式,其时延为当前host到cloudflare节点建立连接的速度。这样其实是不太合理的,还应当考虑CF节点到VPS的时延。比如香港的CF节点很快,但是HTTP服务在美国,这样的速度可能不如在美西的CF节点效果好。
一个小建议是使用HTTP Ping时延作为衡量节点好坏的时延。具体的思路是对于未指定url的,走默认的tcp;而指定了测速url的,通常都是自建的HTTP(s)服务器,因此可以使用http测速
The text was updated successfully, but these errors were encountered: