crul 命令访问公网 dns解析错误 程序报错

时间:2022-09-04 11:08:06

今天机房几台服务器都无法访问公网接口,原因是——解析公网域名出错,具体情况如下

 

ping  公网ip或者域名  都没有问题

crul 命令访问公网 dns解析错误 程序报错

 

curl 公网域名 出错 

crul 命令访问公网 dns解析错误 程序报错

 

curl -4  访问公网域名没有问题
crul 命令访问公网 dns解析错误 程序报错

 

 

综合分析 是ipv6的问题,把ipv6模块关掉

 

 

一、针对centos6 的方法

方法1:修改网络文件,把ipv6相关的全部注释
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
crul 命令访问公网 dns解析错误 程序报错

重启network
# service network restart

 

其它方法

1、在/etc/modprobe.d/目录下增加一个新的配置文件ipv6.conf
内容如下

alias net-pf-10 off
options ipv6 disable=1

2、在 /etc/sysconfig/network新增一行内容

NETWORKING_IPV6=off

 

3、禁止服务ip6tables随系统启动

chkconfig ip6tables off

shutdown -h now

 

4、确认禁用ip是否禁用成功,运行如下命令,无内容输出即可

#ip -6 addr show
或者
# ifconfig -a    
查看是否有IPv6 相关的输出

 

二、针对centos7 的方法

网上的方法试了一大堆,都没有效果,curl www.baidu.com 还是报解析错误。

 

有效方法:

编辑/etc/default/grub,在GRUB_CMDLINE_LINUX这一项加上的 ipv6.disable=1

修改前:
crul 命令访问公网 dns解析错误 程序报错

 

修改后:
crul 命令访问公网 dns解析错误 程序报错

 

 

修改完毕后保存,运行
# grub2-mkconfig -o /boot/grub2/grub.cfg
重新生成grub.cfg文件。

 

[root@localhost Desktop]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-514.2.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.2.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-327.36.3.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.36.3.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-d885883cdb4944609bc5e3493dd2b680
Found initrd image: /boot/initramfs-0-rescue-d885883cdb4944609bc5e3493dd2b680.img
done

 

重启服务器……

 

 三、最快捷方法
以上操作都要修改服务器变量,甚至重启机器 比较麻烦

简单方法  设置curl的别名    将 curl -4   这个命令 设置别名为curl ,这样命令行运行curl 实际运行的是 curl -4 

 

# vi /etc/bashrc

在最后添加    alias curl='curl -4'

保存

运行生效

#. ~/.bashrc (第一个点后面是空格)