How To Disable IPv6 In CentOS 7

Recently, one of my friend asked me how to disable IPv6. After searching a bit, I found the following solution. Here is the steps that I followed to disable IPv6 in my CentOS 7 minimal server.

You can do it in two methods.

Method 1

Edit file /etc/sysctl.conf,

vi /etc/sysctl.conf

Add the following lines:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

If you want to disable IPV6 for particular network card, for example enp0s3, add the following entry.

net.ipv6.conf.enp0s3.disable_ipv6 = 1

Save and exit the file.

Execute the following command to reflect the changes.

sysctl -p

Method 2:

To IPv6 disable in the running system, enter the following commands one by one:

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

That’s it. Now IPv6 has been disabled.

What If I get issues after disabling IPv6?

You may get problems after disabling IPv6.

Issue 1:

if you get issues with SSH after disabling IPv6, do the following.

Edit /etc/ssh/sshd_config file,

vi /etc/ssh/sshd_config

Find the line;

#AddressFamily any

And. change it to:

AddressFamily inet


Remove the hash mark (#) in front of the line:


Then, restart ssh to reflect the changes.

systemctl restart sshd

Issue 2:

If you get problems with starting postfix after disabling IPv6, edit /etc/postfix/ file;

vi /etc/postfix/

and comment out the localhost part of the config and use ipv4 loopback.

#inet_interfaces = localhost
inet_interfaces =

That’s it. Cheers!