Disable IPv6 on Linux





Followed the common advice from the Internet to disable IPv6 by adding the following to /etc/sysctl.conf:


# disable IPv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1




However, according to ip addr show, there were still 9 inet6 addresses for interfaces like eth0 and wlan0:


ip addr show | grep -c inet6 9







Indeed, according to sysctl output, while net.ipv6.conf.all.disable_ipv6 and net.ipv6.conf.default.disable_ipv6 are set, interfaces not explicitly mentioned still don't have IPv6 disabled:


sudo sysctl -a | grep disable_ipv6




net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.eth0.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.wlan0.disable_ipv6 = 0




Used the following to add disable ipv6 directives for all the interfaces on the system (sudo -s first):


sysctl -a | grep disable_ipv6 | sed 's/0$/1/' | tee -a /etc/sysctl.conf




Enable:


sysctl -p





After this, ip addr show no longer showed any inet6 addresses:


ip addr show | grep -c inet6 0

Σχόλια