How to disable IPv6 on GNU / Linux
I have few servers, which have automatically enabled IPv6 protocols
(IPv6 gets automatically enabled on Debian), as well as on most
latest Linux distribituions nowdays.
Disabling IPv6 network protocol on Linux if not used has 2
reasons:
1. Security (It's well known security practice to disable anything
not used on a server)
Besides that IPv6 has been known for few criticil security
vulnerabilities, which has historically affected the Linux
kernel.
2. Performance (Sometimes disabling IPv6 could have positive impact
on IPv4 especially on heavy traffic network servers).
I've red people claiming
disabling IPv6 improves the DNS
performance, however since this is not rumors and did not check it
personally I cannot positively confirm this.
Disabling IPv6 on all GNU / Linuces can be achieved by changing the
kernel sysctl settings
net.ipv6.conf.all.disable_ipv6 by
default
net.ipv6.conf.all.disable_ipv6 equals 1 which means
IPv6 is enabled, hence to
disable IPv6 I issued:
server:~# sysctl
net.ipv6.conf.all.disable_ipv6=0
To set it permanently on system boot I put the setting also in
/etc/sysctl.conf :
server:~# echo 'net.ipv6.conf.all.disable = 1 >>
/etc/sysctl.conf
This is method should be working if not on all on most of the
Linux kernels version 2.6.x in that number it works 100% on
recent versions of
Fedora, CentOS, Debian and
Ubuntu