网络运营服务商的DNS污染导致无法连接github

Huan Lee Lv5

事情经过

最近要去github上下载东西,结果发现github网页能打开,但是就是没办法git clone代码到本地,起初以为是自己的ssl没配置好,折腾了半天,没用;又以为是代理的问题,折腾半天,还是没用。

几经周折,才发现是网络运营商的问题!!!!

解决方法

看网上说有一些设置hosts的方法,但是我简单试了一下
打开网站https://ipaddress.com/website/github.com,查看域名github.com对应ip,在hosts中加上一行。

再在命令行中输入 ipconfig /flushdns,这样也能够成功clone和push等。

这时我便有一个问题,为什么浏览器能够打开github的网页(开了代理),却不能下载代码?原来是因为本地的git工具需要主动配置代理,否则请求不会被代理。这大概和git本身发送请求的实现细节有关(猜测是直接使用的传输层协议而不是http之类的应用层请求,因此不会被代理工具如clash捕获)
之后进行相关设置即可:

1
2
git config --global http.https://github.com.proxy socks5://127.0.0.1:7890
git config --global https.https://github.com.proxy http://127.0.0.1:7890

这里的7890根据自己的代理工具进行修改。

注:下面这个方法后来失效了,原因有待确认。

  • Title: 网络运营服务商的DNS污染导致无法连接github
  • Author: Huan Lee
  • Created at : 2022-07-01 14:19:14
  • Updated at : 2024-02-26 04:53:15
  • Link: https://www.mirthfullee.com/2022/07/01/网络运营服务商的DNS污染导致无法连接github/
  • License: This work is licensed under CC BY-NC-SA 4.0.
On this page
网络运营服务商的DNS污染导致无法连接github