IPv6 被认为是 IPv4 的替代产品,它用来解决现有 IPv4 地址空间即将耗尽的问题。但目前,开启 IPv6 可能会导致一些问题。因此有时我们需要关闭 IPv6。下面是 IPv6 的关闭方法应该适用于所有主流的 Linux 发行版包括 Ubuntu、Debian、CentOS。
# 方法一
- 编辑文件 /etc/sysctl.conf
vi /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 |
# 方法二
要在运行的系统中禁止 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 |
现在 IPv6 已经禁止了。
可以通过 ip address list
查看是否已经生效
# 可能会遇到一些问题
# 禁止 IPv6 后 SSH 时遇到问题
编辑 /etc/ssh/sshd_config
vi /etc/ssh/sshd_config |
找到下面的行:
#AddressFamily any |
把它改成:
AddressFamily inet |
或者,在这行的前面去掉注释 (#):
#ListenAddress 0.0.0.0 |
接着重启 ssh 来使改变生效。
systemctl restart sshd |
# 启动 postfix 遇到问题
编辑 /etc/postfix/main.cf
vi /etc/postfix/main.cf |
注释掉配置中的 localhost 部分,并且使用 ipv4 回环。
#inet_interfaces = localhost | |
inet_interfaces = 127.0.0.1 |
# mysql 安装后监听 IPv6 地址
编辑 /etc/my.cnf
在 [mysqld]
中添加 bind-addres=0.0.0.0
重启 mysql
sudo /etc/init.d/mysql restart |
# 本文引用
教程参考:https://www.cnblogs.com/dailidong/p/7571154.html