最近使用requests
模块请求url,总是非常慢,要好几分钟才可以,问题是最近出现的,之前并没有这种问题,百度了很久也没有找到解决办法
解决办法: 禁用ipv6
排查思路
出现该问题的原因可能是:
1.requests
模块坏了
2.python3
环境有问题
3.我的电脑有问题
尝试了卸载安装requests
模块和python环境,并没有解决问题
于是我用电脑的虚拟机也运行了一下requests
,同样还是缓慢,用内置的curl也不行,这已经可以肯定是我电脑网络的问题了
过程中发现,尝试用ip
地址请求,就不会有卡顿的情况,但是换成域名就会卡顿,于是更换了dns
,确实快了一点,但是也还是不正常,
在想是不是ipv6
的原因,因为虚拟机的dns
配置文件/etc/resolv.conf
里,有ipv6
的dns,但也没太确定,直到看到了这个文章https://www.jianshu.com/p/4109f42059af,我试着把ipv6
禁用了后,发现真的好了,问题就是请求的时候使用了ipv6
地址协议导致的卡顿
于是我把win10电脑(宿主机)的ipv6
也关了,重启一下网卡,果然真的解决了
问题原因
问题出现的原因就是ipv4
和ipv6
地址混用,本来应该使用ipv4
请求,但却使用了ipv6
请求,就会造成这样的结果,所以只用使用ip
地址访问是不受影响的,但是使用域名的话,就有概率使用ipv6
请求了
其实还有另外的解决办法,就是在hosts文件里指明这个域名的ipv4
地址,虽然麻烦,但是却也没有一劳永逸哈哈哈