Centos7 disable ipv6

来源:互联网 发布:扫描软件app 编辑:程序博客网 时间:2024/04/28 19:45

今天发现执行curl ipinfo.io 或者curl www.baidu.com会报错,而且yum makecache或者yum update的时候都会出现无法解析的情况,但是dns设置是正确(ping www.baidu.com是OK的),据说应该禁用ipv6,因为这样可以节约资源,经试验,当禁用所有ipv6模块后,curl正常,但如果仅仅是禁用ipv6而不禁用所有ipv6模块的话,curl仍然有问题,有可能是网络的问题,因为今天的网络很不稳定,但是yum的问题依旧,oh no,本来以为dns设置了两个,才发现只设置了一个8.8.8.8,现在再添加一个114.114.114.114正常。总体来说很大可能是网络问题,但不管了,这篇主要讲解如何关闭ipv6。

一:启用ipv6的情况下

1.运行ifconfig


2.执行lsmod | grep ipv6


二:下面给出禁用ipv6的方法

2.1.直接启动的时候即禁用ipv6模块

1.vim /etc/default/grub

2.GRUB_CMDLINE_LINUX=””在这一行的双引号中添加一个字段ipv6.disable=1,注意和后面的字段之间留一个空格。

3.grub2-mkconfig -o /boot/grub2/grub.cfg

4.reboot

2.2.静态重启ipv6,永久生效

编辑文件/etc/sysctl.conf添加下面的行:

net.ipv6.conf.all.disable_ipv6 =1

net.ipv6.conf.default.disable_ipv6 =1

如果你想要为特定的网卡禁止IPv6,比如,对于enp0s3,添加下面的行,

net.ipv6.conf.enp0s3.disable_ipv6 =1

保存并退出文件。

执行下面的命令来使设置生效。

sysctl -p

执行成功后,ifconfig不再显示ipv6信息,lsmod | grep ipv6相应模块也还在。重启后仍然有效。

2.3.运行的系统中禁止IPv6,即时生效

依次输入下面的命令:

echo 1>/proc/sys/net/ipv6/conf/all/disable_ipv6

echo 1>/proc/sys/net/ipv6/conf/default/disable_ipv6

或者,

sysctl -w net.ipv6.conf.all.disable_ipv6=1

sysctl -w net.ipv6.conf.default.disable_ipv6=1

执行成功后可以发现ifconfig不再显示ipv6,但lsmod | grep ipv6相应模块还在,本方法重启后无效。

2.4.其他方法(未经验证)

vim /etc/sysctl.conf : net.ipv6.conf.all.disable_ipv6=1

vim /etc/sysconfig/network: NETWORKING_IPV6=no

vim /etc/sysconfig/network-scripts/ifcfg-eth0:IPV6INIT=no

disable the ip6tables service : chkconfig ip6tables off

reload the sysctl configuration:
# sysctl -p
or
# reboot

三:验证

1.执行lsmod | grep ipv6已经没有之前的显示了,成功。

2.执行cat /proc/sys/net/ipv6/conf/all/disable_ipv6,输出1表明禁用,0没有禁用(如果启动的时候就已经禁用了ipv6模块,则/proc/sys/net目录下面没有ipv6子目录)。

3.执行ifconfig查看上图所示信息。

四.问题

1.SSH遇到问题,按照下面的做。

编辑 /etc/ssh/sshd_config 文件

vi /etc/ssh/sshd_config

找到下面的行:

#AddressFamily any

把它改成:

AddressFamily inet

或者,在这行的前面去掉注释(#):

#ListenAddress 0.0.0.0

接着重启ssh来使改变生效。

systemctl restart sshd

2.启动postfix遇到问题

编辑/etc/postfix/main.cf:

vi /etc/postfix/main.cf

注释掉配置中的localhost部分,并且使用ipv4回环。

#inet_interfaces = localhost

inet_interfaces =127.0.0.1

3.某些服务无法启动

比如VSFTP,对于VSFTP,需要修改/etc/vsftpd/vsftpd.conf文件中的listen和listen_ipv6两个选项:

listen=YES

listen_ipv6=NO



0 0
原创粉丝点击