遇到的问题
今天登录公司内网搭建的一个gitlab仓库地址时,遇到一个问题,我只能通过ip地址进行访问这个仓库,却无法通过域名访问。
过程
由于第一次遇到这种问题,当时没什么思路,网上找到一些解决方法。
- 首先,终端ping了一下ip地址,成功!然后ping了一下对应的域名,报错ping: cannot resolve git.ah: Unknown host。
- 看到一个朋友的回答,是因为主机无法解析这个域名。OK!Fine~好在别人也提供了解决方法,在这里我记录一下。
解决方法
- 终端打开hosts文件
sudo vi /etc/hosts
- 添加ip-域名映射,:wq保存退出编辑。
#aihang
192.168.120.190 git.ah
插个题外话
秉着好奇的想法,我又去ping了一下github.com,结果显示timeout,但是浏览器可以访问。几经查询,网上找到了一个靠谱解释。(怕这个博客之后挂了看不到,我还是浅浅cv一下。)
防ping的必要性
黑客可以通过模拟一大批设备狂ping某网站,导致该网站处理ping包而耗费大量资源,从而达到攻击网站的目的。github这类大型服务网站,出于安全考虑,设置了防ping的措施。
如何实现防ping
[这个原博只写了windows的防ping手段,上网查了一下mac的,没找到。。。不过我感觉这个也并没有那么重要,这里就迁一下windows的。]
- 使用IPSec安全策略
- 使用第三方防火墙工具
- 使用路由与远程访问组件
防ping原理
防ping的本质是过滤icmp协议的响应报文。ping命令是基于icmp协议中的echo request报文进行工作的。本机发送一个icmp协议中的echo request到目标主机,等待目标主机的响应。如果此时把响应的结果过滤掉,那么ping也就无法继续工作,直接收到一个超时信息。
如何解释github网站ping不通
可能不是github的问题,而是国内的github被解析到了某个CDN上,而该CDN禁用ping了而已。我用国外的VPS尝试ping一下github正常,果然应该就是这个原因了。
解决方法
找到github的最新ip地址,在hosts文件里写入映射。这里有个网站github.com.ipaddress.com/,是专门用来查询ip的。
-
查询到IP地址- 140.82.112.4
-
写入hosts文件,保存退出编辑。
#github
140.82.112.4 github.com
- ping github