为什么github网站ping不通但是可以访问

最近在使用git上传资料到github的时候超时了(git没有配置代理),我本能地使用ping命令,去ping一下github.com

1
ping github.com

反馈地结果都是

Request timeout

一开始我以为是墙影响到了github,应该只是暂时性的。但是隔了很长一段时间,我又去ping了一次后发现还是ping不同。于是我就用浏览器直接访问github,不开代理的情况下,竟然能访问。于是我就很不解,为什么网站ping不通的情况下,还能够访问?

Google了一下后发现,原来还可以通过设置来实现防ping这种操作。

为什么要防ping

这么做的目的,主要是为了安全考虑。如果黑客想要攻击某个网站,最简单的做法就是,他们只要模拟一大批设备狂ping该网站,导致该网站处理ping包而耗费大量资源,那么正常用户想要访问该网站时,因为资源分配不均,就会变得极其慢。网站甚至有可能会宕机。

如何实现防ping

防ping的手段多种多样,Windows系统下主要有三种方法:

  1. 使用IPSec安全策略
  2. 使用第三方防火墙工具
  3. 使用路由与远程访问组件

防ping原理

防ping的本质是过滤icmp协议的响应报文。ping命令是基于icmp协议中的echo request报文进行工作的。本机发送一个icmp协议中的echo request到目标主机,等待目标主机的响应。如果此时把响应的结果过滤掉,那么ping也就无法继续工作,直接收到一个超时信息。

如何解释github网站ping不通

可能不是github的问题,而是国内的github被解析到了某个CDN上,而该CDN禁用ping了而已。我用国外的VPS尝试ping一下github正常,果然应该就是这个原因了。

avatar

chilihotpot

You Are The JavaScript In My HTML