由于某种原因,必须要在centos7上关闭IPv6. IPv6这个东西是真好,也是真不好。。。很多resolver强制你使用IPv6,太烦人了。。
主要有两种办法关闭IPv6,第一种办法是再kernal启动的时候关闭,需要重新启动。第二种是在sysctl中关闭,不需要重新启动。。但是最好是重启一下.
在kernal module中关闭IPv6
1. Edit /etc/default/grub and add ipv6.disable=1 in line GRUB_CMDLINE_LINUX, e.g.:
# cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rhgb quiet" GRUB_DISABLE_RECOVERY="true"
2.Regenerate a GRUB configuration file and overwrite existing one:
# grub2-mkconfig -o /boot/grub2/grub.cfg
3. Restart system and verify no line “inet6” in “ip addr show” command output.
在sysctl设置中关闭IPv6
1.Append below lines in /etc/sysctl.conf:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
NOTE : To disable IPv6 on a single interface add below lines to /etc/sysctl.conf :
net.ipv6.conf.[interface].disable_ipv6 = 1 ### put interface name here [interface]
net.ipv6.conf.default.disable_ipv6 = 1
2. To make the settings affective, execute :
# sysctl -p
or reboot this server
关闭IPv6以后可能带来的问题:
1) SSH
SSH 有可能无法连接,这个时候可以编辑/etc/ssh/sshd_config, 找到这一行:
#AddressFamily any
将其改为:
AddressFamily inet
重启SSH服务
2) postfix
postfix 默认是监听ipv4 和 ipv6 端口的,因此我们需要改成仅监听ipv4 端口。
编辑/etc/postfix/main.cf, 找到这一行:
inet_protocols = all
将其改为:
inet_protocols = ipv4
重启postfix即可