天天看點

DNS正常,使用curl時無法解析主機的解決辦法

DNS正常,使用curl時無法解析主機的解決辦法

1.問題

在使用curl www.baidu.com時無法擷取到網頁的資訊,顯示無法解析主機,但是使用ping指令能正常ping通百度,說明不是DNS解析的問題

DNS正常,使用curl時無法解析主機的解決辦法

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時無法解析主機的解決辦法

重新開機機器後問題成功解決

繼續閱讀