Internet Protocol version 6 (IPv6) is a 128-bit number identifying an endpoint in a TCP/IP communication. This means that with IPv6 we can assign on the order of 1038 individual machines (devices). In contrast to IPv4, IPv6 uses a hexadecimal representation, eight groups of 16 bits each, separating the groups by a colon (:).
Ubuntu 20.04 Focal Fossa enables Internet Protocol Version 6 (IPv6) by default. However, in certain situations, some users may find it desirable to disable IPv6 support or to re-enable it after it has been disabled.
Disabling IPv6 support (Permanently)
Disable ipv6 built-in kernel module.
1. Edit /etc/default/grub and append ipv6.disable=1 to GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT like the following sample:
FROM:
GRUB_CMDLINE_LINUX_DEFAULT="" GRUB_CMDLINE_LINUX=""
TO:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1" GRUB_CMDLINE_LINUX="ipv6.disable=1"
2. Run the update-grub command to regenerate the grub.cfg file:
# update-grub
3. Reboot the system to disable IPv6 support.
Disabling IPv6 via sysctl settings
Alternatively, this can be done via sysctl settings.
1. To disable Ipv6 temporarily on the system apply the below sysctl settings:
$ sysctl -w net.ipv6.conf.all.disable_ipv6=1 $ sysctl -w net.ipv6.conf.default.disable_ipv6=1 $ sysctl -w net.ipv6.conf.lo.disable_ipv6=1
2. In order to make the above sysctl changes permanent, we need to add them to /etc/sysctl.conf confirguation file.
net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.lo.disable_ipv6 = 1
3. Use “sysctl -p” to apply the changes from /etc/sysctl.conf file.
# sysctl -p
4. An output of 1 from the below command verifies that the IPv6 has been successfully disabled.
# cat /proc/sys/net/ipv6/conf/all/disable_ipv6 1
Re-enabling IPv6 support
1. Edit /etc/default/grub and delete the entry ipv6.disable=1 from the GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT, like the following sample:
FROM:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1" GRUB_CMDLINE_LINUX="ipv6.disable=1"
TO:
GRUB_CMDLINE_LINUX_DEFAULT="" GRUB_CMDLINE_LINUX=""
2. Run the “update-grub” command to regenerate the grub.cfg file.
# update-grub
3. Delete the below entries from /etc/sysctl.conf file:
net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.lo.disable_ipv6 = 1
4. Use “sysctl -p” to apply the changes from /etc/sysctl.conf file.
# sysctl -p
5. Reboot the system if required.