linux系統關閉IPv6的方式
IPv6被認為是IPv4的替代產品,它用來解決現有IPv4地址空間即將耗盡的問題。但目前,開啟IPv6可能會導致一些問題。因此有時我們需要關閉IPv6。下面是IPv6的關閉方法應該適用於所有主流的Linux發行版包括Ubuntu、Debian、CentOS。
方法1:
編輯文件/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
方法 2:
要在運行的系統中禁止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后可能會遇到一些問題
問題1:
如果你在禁止IPv6后SSH時遇到問題,按照下面的做。
編輯 /etc/ssh/sshd_config 文件
vi /etc/ssh/sshd_config
找到下面的行:
#AddressFamily any
把它改成:
AddressFamily inet
或者,在這行的前面去掉注釋(#):
#ListenAddress 0.0.0.0
接着重啟ssh來使改變生效。
systemctl restart sshd
問題2:
如果你在禁止IPv6后啟動postfix遇到問題,編輯/etc/postfix/main.cf:
vi /etc/postfix/main.cf
注釋掉配置中的localhost部分,並且使用ipv4回環。
#inet_interfaces = localhost
inet_interfaces = 127.0.0.1
問題3:
mysql安裝后監聽IPv6地址
關閉IPv6后,編輯 /etc/my.cnf
在[mysqld]中添加 bind-addres=0.0.0.0
重啟mysql /etc/init.d/mysql restart