今天机房几台服务器都无法访问公网接口,原因是——解析公网域名出错,具体情况如下
ping 公网ip或者域名 都没有问题
curl 公网域名 出错
curl -4 访问公网域名没有问题
综合分析 是ipv6的问题,把ipv6模块关掉
一、针对centos6 的方法
方法1:修改网络文件,把ipv6相关的全部注释
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
重启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
修改前:
修改后:
修改完毕后保存,运行
# 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 (第一个点后面是空格)