赞
踩
DNS被污染了
gitbash中输入以下行:
ssh -vT git@github.com
-v:详细模式
-T:测试连接
git@github.com:git,Github的默认用户名;github.com,Github的主机名
得到下图:
可以看到倒数第三行,连接github.com时显示的IP地址是[20.205.243.166],我们复制这个IP地址去浏览器看看,如下图(地址栏中IP地址冒号后是端口号):
很明显是受到了DNS(Domain Name System)污染,其作用是防火墙让一般用户由于得到虚假目标主机IP而不能与其通信的方法。 其工作方式是:对经过的DNS查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务,给查询者返回虚假结果。
小技巧:在gitbash里,复制是Ctrl+Insert,粘贴是Shift+Insert。(Insert键一般在Del键左边)
在文件中找到并打开HOSTS文件。在Windows系统中,HOSTS文件通常位于:
C:\Windows\System32\drivers\etc\HOSTS
右键该文件并用文本编辑器(例如记事本、Notepad++等)或命令提示符(cmd.exe)打开该文件。
在文件末尾输入以下行:
140.82.113.4 github.com
保存并关闭文件。(到这里一般已经解决了,可以不用看了)
打开gitbash输入以下行测试是否成功:
ssh git@github.com
结果如下图所示(由于自己指定了github的IP地址所以系统无法验证GitHub服务器的公钥而警告,但是没关系,已经可以用了):
输入如下代码进行克隆(替换成你自己的项目git链接):
git clone git@github.com:warma13/hello-World.git
结果如下图,此时会需要输入yes,否则会失败:
第二次克隆则不再需要输入yes。
成功克隆项目,解决问题。
有人说可以修改~/.ssh/config(没有config就自己创建),在文件中添加以下行:
Port 443
443是端口,可以尝试修改为允许通过的端口
直接把git链接换成https链接,如下(替换成你自己的项目https链接):
git clone https://github.com/warma13/hello-World.git
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。