DNS污染以及使用镜像源中遇到的问题

简介: 今天遇到了一个麻烦的问题,针对这一个问题,我在一天之内又遇到了两个应用场景。以下是问题叙述:

微信图片_20220611013940.jpg

前言


今天遇到了一个麻烦的问题,针对这一个问题,我在一天之内又遇到了两个应用场景。以下是问题叙述:


场景一:当我想要通过brew给我的mac安装git的时候,发现通过Homebrew的官网介绍,我连brew都不能安装成功,一直提示我无妨访问;


场景二:当我想要通过github下载一位大佬的pdf的时候,又出现了与场景一相同的报错信息;


问题详解


01 - DNS域名污染


首先,我们来说第一个问题,当我们按照Homebrew官网介绍进行安装的时候,遇到了如下的错误:


微信图片_20220611013949.png


我们将上述地址复制到浏览器看下效果:


微信图片_20220611013954.png


可以看到,错误信息提示我们该网站无法访问,这里给小伙伴们看下我排错时候的思路

  • 首先,查看网络连接,百兆带宽,稳稳滴;
  • 其次,关闭防火墙、关停我使用的所有谷歌插件;
  • 接着,查看使用的代理服务器是否有问题;
  • 然后,我通过ping命令查看了一下该网址,发现能ping通,但是时延较大;


微信图片_20220611013958.png


  • 最后我们借助IPAddress.com网站查一下对应的IP地址,结果如下:


微信图片_20220611014002.png



我们发现,通过ping命令我们得到的IP地址为151.101.228.133,我们通过IPAddress.com网站所查的真实IP地址为199.232.68.133,因此,我们可以得出结论,raw.githubusercontent.com地址遭到了域名污染,找出问题所在之后,我们来看解决方法。


DNS污染,又称为域名服务器缓存污染(DNS cache pollution)或者域名服务器快照侵害(DNS cache poisoning)。


DNS污染是指一些刻意制造或无意中制造出来的域名服务器分组,把域名指往不正确的IP地址。

一般来说,网站在互联网上一般都有可信赖的域名服务器,但为减免网络上的交通,一般的域名都会把外间的域名服务器数据暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。一旦有相关网域的局域域名服务器的缓存受到污染,就会把网域内的电脑导引往错误的服务器或服务器的网址。


一般来讲,常用的两种解决方法包括使用加密代理和修改hosts文件(重点讲解)。


关于加密代理,相信使用过VPN的小伙伴都知道Shadowsocks吧,就是那台小飞机,我们可以在加密代理里进行远程的DNS解析,或者使用VPN访问网络;


关于修改hosts文件,步骤如下:


我们在mac下打开terminal,通过如下命令编辑Hosts文件:


sudo vi /etc/hosts


即在文末添加一行配置命令,如下所示:


199.232.68.133 raw.githubusercontent.com



微信图片_20220611014007.png


简单解释一下,上图中,标红部分的内容是我们自己加上去的,有的小伙伴已经发现了,所配置命令对应的IP地址就是我们刚才通过第三方平台查到的真实IP地址


OK,修改完上述配置之后,我们关闭终端,并重新下载安装,虽然地址可以访问了,但是这下载速度的确是令人发指,实在是龟速呀,果断停止下载,我们去找下镜像资源。


02 - 使用镜像


我们以中科大的镜像资源为例,我们在terminal中输入如下命令:


/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)"


我们发现当执行下载命令的时候,界面卡住了,信息如下:


==> Tapping homebrew/core
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core'...```


当我们遇到界面卡住的情况时,我们应当果断按下 CTRL+C 中断脚本执行,并依次执行以下三条命令:


cd "$(brew --repo)/Library/Taps/"


mkdir homebrew && cd homebrew


git clone git://mirrors.ustc.edu.cn/homebrew-core.git


成功之后,我们继续执行上述文章中的安装命令,直到看到==>Installation successful! 的信息即可。


/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)"


安装成功之后,我们通过如下命令安装git:


brew install git


安装完成之后,我们查看下brew和git的版本信息,非常好,都安装成功了。


微信图片_20220611014011.png


本文最后


以上就是我在通过brew安装git的时候遇到的一些坑,希望对小伙伴们能带来一些帮助。


相关文章
|
安全 网络协议
|
缓存 网络协议 安全
DNS攻击和DNS污染是什么意思?底层原理是什么?
DNS攻击和DNS污染是什么意思?底层原理是什么?
496 0
|
网络协议 Linux 数据安全/隐私保护
|
网络协议 网络安全 iOS开发
iOS 防 DNS 污染方案调研--- HTTPS(非SNI) 业务场景
本文主要介绍 HTTPS(含SNI) 业务场景下在 iOS 端实现 “IP直连” 的通用解决方案。
3009 0
|
网络协议 API Android开发
iOS 防 DNS 污染方案调研 --- WebView 业务场景
本文主要介绍,防 DNS 污染方案在 WebView 场景下所遇到的一些问题,及解决方案,也会涉及比如:“HTTPS+SNI” 等场景。
4476 0
|
存储 网络协议 API
iOS 防 DNS 污染方案调研 --- Cookie 业务场景
本文将讨论下类似这样的问题: WKWebView 对于 Cookie 的管理一直是它的短板,那么 iOS11 是否有改进,如果有,如何利用这样的改进? 采用 IP 直连方案后,服务端返回的 Cookie 里的 Domain 字段也会使用 IP 。
3300 0
|
Web App开发 网络协议 iOS开发
iOS 防 DNS 污染方案调研 --- 302等 URL 重定向业务场景
302等 URL 重定向业务场景需要解决的问题:302 等重定向状态码,如何正确执行跳转逻辑,要求跳转后,依然需要执行 IP 直连逻辑,多次 302,也能覆盖到。
2410 0
|
Web App开发 网络协议 iOS开发
iOS 防 DNS 污染方案调研 --- SNI 业务场景
SNI(单IP多HTTPS证书)场景下,iOS上层网络库 `NSURLConnection/NSURLSession` 没有提供接口进行 `SNI 字段` 配置,因此需要 Socket 层级的底层网络库例如 `CFNetwork`,来实现 `IP 直连网络请求`适配方案。
3092 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多