面向新手的Git教程:打不开GitHub(二)?

admin 2025年2月27日23:43:46评论16 views字数 2828阅读9分25秒阅读模式
面向新手的Git教程:打不开GitHub(二)?

温馨提示:本文提供了“省流版”,直接拉到底部即可省流省时。

如果你计划看完整原文,因文中超链接众多,建议点击公众号底部“查看原文”跳转本公众号网站中浏览。

上个月水了一篇面向新手的Git教程:打不开GitHub?,没想到是我写这个公众号以来阅读量最高的文章。连续达成“回复用户留言10次”、“被用户分享500次”、“被用户收藏500次”、“被用户化纤5次”、“被用户分享1000次”、“被用户划线10次”的成就。

不仅如此,关注我的人数还翻倍了,从一百多变成了二百多。但我本人却并没有想象的那么开心,因为正常的花心思写的没什么人看,即便有一百多个阅读量也没人评论;而随便瞎写的水文却既有阅读、又有评论。有心栽花花不开、无心插柳柳成荫就是这样吧!

以上就是我个人的一点吐槽……

在上面那篇文章的评论中,有两条评论提到了“GitHub520”:

  • 搜一下github520
  • 用github520不香吗,还不用自己搞,粘贴到host里面即可

这种评论确实挺冒犯的,大概就像是我出了一个教人如何钓鱼、做鱼(清蒸/红烧)的教程,然后有人评论:饭店卖的成品鱼不香吗?

当然,这两条评论我也给精选了,毕竟去直接买饭店做好的鱼也是一种选择,虽然也有人乐衷于垂钓和自己做鱼。

写技术类的公众号,大多是带有一点“授人以渔”的意思的,但是我也发现了很多人其实只想直接吃鱼。所以为了考虑这部分人的感受,我以后的文章大概会分两部分,第一部分是正文(也就是我的废话),第二部分是大家爱看的省流版,想直接吃鱼的直接拉到底部看省流版即可。

GitHub520

我也顺便去了解了一下 GitHub520 这个项目,这个项目的原理也是通过修改系统中的hosts文件达到可以访问 GitHub 的目的。

GitHub520 做了哪些事:

  1. 利用 GitHub Actions 定时执行其 Python 脚本,这个脚本每2个小时运行一次,所以它的更新还是很及时的
  2. 在 Python 脚本中,遍历了 GitHub 的各个域名,访问https://sites.ipaddress.com/+要查询的域名获取域名对应的 IP
  3. 拿到 IP 后,调用 pythonping 的对 IP 进行 ping 操作
  4. 更新项目中的 hosts 文件

以我浅显的认知评价一下这个项目吧,不一定对,也欢迎各位指正。不管是我之前提供的笨办法,还是 GitHub520,想要获取一个可用的 IP 地址,有两个非常关键的步骤,一是获取 IP 地址,二是检查自己的电脑是否可以与目标 IP 建立连接。但是 GitHub520 在这两个步骤上都不严谨。

GitHub520 的不严谨

先说获取 IP 地址的不严谨,GitHub520 项目使用的是https://sites.ipaddress.com/。例如要查github.com,则访问https://sites.ipaddress.com/github.com,大家可以打开这个地址看一下,只查到 GitHub.com 的一个 IP,这大概率是sites.ipaddress.com服务器附近的 DNS 返回的 IP,而我们知道 GitHub 在很多地区的微软机房都有部署,其 IP 肯定不止一个。

GitHub520 的逻辑是先拿到这个网页的内容,然后用正则表达式取出网页中的 IP 列表。然后 GitHub520 “假模假样”的在该 IP 列表中选取延时最小的那个 IP,刚才我们说了,这个列表中只有 1 个 IP,你对比个毛啊?自欺欺人。更何况这个延时也不是我们自己电脑到目标 IP 的延时,而是 GitHub 上运行 Actions 的虚拟机到目标 IP 的延时,而 运行 Actions 的虚拟机很可能是部署在北美的,那这个延时还有什么参考意义?同理,运行 Actions 的虚拟机能与目标 IP 建立连接也不代表我们的电脑也能和目标 IP 建立连接。

所以,如果 GitHub520 项目要改进的话。首先获取 IP 应该选用一个可以查询全球 DNS 配置的接口,其次定时脚本应该在国内且不能是港澳台等网络环境的服务器上运行。

以上是我对 GitHub520 的初步分析。但目前我还有个疑问,就是在 GitHub520 项目的 README 中看到“服务器已续费到 2024.12 共花了:1500+💰 [点击扫码赞助]”,这么说作者有在租服务,但是从其 GitHub Actions 的工作流配置中又没发现是用的自己的服务器,还请知道的朋友帮忙解惑,谢谢!

Issues

后面我又顺便点了一下这个项目的 Issues,果然有一个处于open状态的 Issue 提出了质疑:

该 repo 的 best_ip 对于中国大陆毫无意义,此 hosts 虽可能绕过 XXX 但在减速...需要国内的机器来决定优选 IP 而非用 GitHub action,这样得到的结果可能只是对大陆而言并非最快的美洲某个边缘节点的 IP参考今日 hosts eadd98b以 ["140.82.112.6""api.github.com" 为例归属地是 美国/弗吉尼亚/阿什本/github.com,平均 ping 257ms与大陆节点测试的最优 IP 为 20.205.243.168 新加坡微软机房,平均 ping 95ms20.205.243.168 新加坡/microsoft.com
修正,是自己测的如果我没比对错误,该站提供的 hosts 就是来自 GitHub action 的结果无疑是减速 hosts,而且已经有人提出但被关闭 #215#215 (comment) 未能理解 hk 服务器测试的结果的含义但仍旧都是北美节点...建议使用国内机房测速,走新加坡节点

另外,还有一个被该项目作者close的编号为215的 Issue 也在质疑该问题:

请问一下,为什么该hosts指定的是美国服务器,而不是新加坡服务器?RT,单纯地问一下,新加坡服务器也没被墙a,为什么不用

在该 Issue 中,GitHub520 的作者评论了一句“hk 服务器测速的结果”

What?hk 服务器的测速结果有什么参考意义吗?我们的网络环境和 hk 能比吗?如果是在 hk,谁还需要在这上面费这么多脑筋?

省流版

  1. 打开浏览器访问:https://raw.hellogithub.com/hosts,会下载到一个名为hosts的文件
  2. 用文本编辑软件(如记事本)打开这个文件,复制其内容粘贴到你电脑中的hosts文件中即可

可能会遇到的问题:

  1. 有的浏览器访问那个地址时可能不会启动下载,而是直接在浏览器中显示了文件内容,这种情况就不需要下载了,直接把浏览器中显示的内容复制上即可
  2. 你电脑中的hosts文件位置可以在面向新手的Git教程:打不开GitHub?中找到,如果你电脑的操作系统是 Windows,则为:C:WindowsSystem32driversetchosts
  3. hosts文件属于系统文件,修改时需要管理员权限,在修改前,建议备份原文件
  4. 基于正文中对 GitHub520 的分析,GitHub520 并不可靠,不过作为死马当成活马医的一种方案尝试一下倒也可以

原文始发于微信公众号(一个拖延症):面向新手的Git教程:打不开GitHub(二)?

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月27日23:43:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   面向新手的Git教程:打不开GitHub(二)?https://cn-sec.com/archives/3777657.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息