DNS正常,使用curl时无法解析主机的解决办法

DNS正常,使用curl时无法解析主机的解决办法

1.问题

在使用curl www.baidu.com时无法获取到网页的信息,显示无法解析主机,但是使用ping命令能正常ping通百度,说明不是DNS解析的问题

DNS正常,使用curl时无法解析主机的解决办法_第1张图片

2.原因

通过curl(依赖libcurl)的程序。如果服务器开启了IPv6功能,curl默认会优先解析IPv6,在对应域名没有IPv6的情况下,会等待IPv6dns解析失败timeout之后才按以前的正常流程去找IPv4原因。而由于我的ipv6网卡设置问题造成无法通信的原因。造成通过curl或libcurl的程序均无法解析域名。

可以使用curl www.baidu.com -4测试一下,-4表示使用ipv4进行通信,如果有结果,就说明是ipv6的问题

3.解决办法

1、echo 'GRUB_CMDLINE_LINUX="ipv6.disable=1"' >> /etc/default/grub	##在系统启动项添加禁用ipv6的参数
2、grub2-mkconfig -o /boot/grub2/grub.cfg	##将方才配置的文件输出至/boot/grub2/grub.cfg
3、reboot	##重启机器生效

grub2-mkconfig命令由grub2-tools包提供,下载地址https://mirrors.aliyun.com/centos/7.7.1908/os/x86_64/Packages/grub2-2.02-0.80.el7.centos.x86_64.rpm,安装命令rpm -ivh grub2-2.02-0.80.el7.centos.x86_64.rpm --force --nodeps

DNS正常,使用curl时无法解析主机的解决办法_第2张图片
重启机器后问题成功解决

你可能感兴趣的:(linux相关知识)