How to Disable IPv6 in RHEL, Rocky & AlmaLinux?

In today's digital age, internet connectivity plays a crucial role in our day-to-day lives. In order to connect to the internet, we need an address that identifies us on the network.

This is where IP addresses come into play. IPv4 (Internet Protocol version 4) is the fourth version of IP addresses and has been used for many years.

However, as technology advances and more devices connect to the internet, the number of available IPv4 addresses is running out. That's why IPv6 was introduced.

Explanation of What IPv6 Is and Why Someone May Want to Disable It

IPv6 (Internet Protocol version 6) is an updated version of IP addressing that provides a larger number of available unique IP addresses than its predecessor IPv4. It uses 128-bit addressing instead of IPv4's 32-bit addressing scheme which allows for a virtually unlimited number of unique addresses for network-connected devices.

While enabling IPv6 can provide benefits like improved security, faster connection speeds, and better connectivity overall, some users may still want or need to disable it in certain situations. For instance, some applications or networks may not be compatible with IPv6 yet or may require specific settings which are not available with it enabled.

Brief Overview of Steps Needed To Disable IPV6 in RHEL, Rocky & AlmaLinux

Disabling IPv6 in RHEL (Red Hat Enterprise Linux), Rocky Linux or AlmaLinux involves modifying system configurations files either temporarily or permanently depending on your needs. The exact steps required will depend on your operating system version and release.

Generally speaking though, you will first need to check if IPV6 is currently enabled on your system using specific commands provided by each OS distribution. If it’s enabled you can then proceed with disabling it either temporarily using sysctl command or permanently by editing sysctl.conf file.

You can also disable it for specific network interfaces using nmcli command. In the following sections, we will go into more detail on each step and provide examples for each operating system.

Checking IPv6 Status

IPv6 is a protocol that provides a much larger address space than its predecessor IPv4, which is why it was introduced. It is enabled by default on most modern operating systems, however, there are cases where someone may want to disable it.

Before doing so, it's important to first check if IPv6 is currently enabled on the system. To do this, we can run the following command in the terminal: ```

$ sysctl net.ipv6.conf.all.disable_ipv6 ``` If the output of this command is `net.ipv6.conf.all.disable_ipv6 = 0`, then IPv6 is currently enabled on the system.

If the output is `net.ipv6.conf.all.disable_ipv6 = 1`, then it is disabled. It's important to note that `all` in `net.ipv6.conf.all.disable_ipv6` refers to all network interfaces on the system.

If you want to check for a specific interface, you can replace `all` with its name (e.g., `eth0`). The output of this command tells us whether or not IPv6 has been disabled and whether or not it will be active immediately upon disabling.

Disabling IPv6 Temporarily

If you need to temporarily disable IPv6 on your RHEL, Rocky or AlmaLinux system, you can do so using the sysctl command. This will disable IPv6 until the next reboot of the system.

How to temporarily disable IPv6 using sysctl command

To temporarily disable IPv6, follow these steps −

  • Open a terminal window and log in as the root user.

  • Type the following command and press Enter:# sysctl net.ipv6.conf.all.disable_ipv6=1

  • You should receive no output from this command if it was successful

This command disables the use of IPv6 for all network interfaces on your system. If you want to disable IPv6 for a specific interface, replace "all" with the name of that interface. For example: # sysctl net.ipv6.conf.eth0.disable_ipv6=1

Explanation of what this does and how long it will last

This command modifies a setting in /proc/sys/net/ipv6/conf/all/disable_ipv6 file by setting its value to 1, which means “disabled”. Since this is only a runtime modification rather than a permanent one, this setting will last until the next reboot of your system.

Note that disabling IPv6 may cause issues with some applications or services that rely on it. Therefore, it is recommended that you only disable it temporarily if necessary and re-enable it once you have resolved any compatibility issues.

Disabling IPv6 Permanently

How to permanently disable IPv6 by modifying sysctl.conf file

If you want to disable IPv6 permanently on your RHEL, Rocky or AlmaLinux system, you need to modify the sysctl.conf file. Sysctl is a command-line utility that allows you to configure kernel parameters at runtime. To start, open the sysctl.conf file in a text editor.

The file is usually located in /etc/sysctl.conf. In some cases, you may need root privileges to edit this file.

Once you have opened the sysctl.conf file, add the following lines at the end of the file: ``` # Disable IPv6

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

net.ipv6.conf.lo.disable_ipv6 = 1 ``` These lines will disable IPv6 for all network interfaces on your system.

After adding these lines, save and close the sysctl.conf file. You can then apply the changes by running the following command: ```

sudo sysctl -p ``` This will reload the kernel parameters from the sysctl.conf file and apply them immediately.

Explanation of what this does and how it affects the system

Disabling IPv6 permanently using sysctl disables all traffic over IPv6 protocols for all network interfaces on your system. This means that any application or service that relies solely on IPv6 will no longer function properly.

However, most applications today are designed to work with both IPv4 and IPv6 protocols. Therefore, disabling IPv6 should not cause any noticeable impact on most systems or applications.

In addition, disabling IPv6 can help mitigate some security concerns related to potential vulnerabilities in older versions of certain software stacks that only support up to IPV4 protocols. Overall, if you don't use or need IPv6 on your system, disabling it can help improve network performance by reducing unnecessary protocol overhead.

Disabling IPv6 for Specific Network Interfaces

How to disable IPv6 for specific network interfaces using nmcli command

In some cases, a system administrator may want to disable IPv6 on specific network interfaces rather than globally. To do this, one can use the nmcli command. The first step is to list all available connections with the following command −

```nmcli connection show``` This will output a list of all available connections, including wired and wireless connections.

From here, identify the name of the connection you wish to modify and use the following command to modify it: ```nmcli connection modify CONNECTION_NAME ipv6.method disabled```

Replace "CONNECTION_NAME" with the name of the connection that you want to modify. This will disable IPv6 specifically for that connection.

Explanation of why someone may want to do this and how it can be useful

There are several situations where disabling IPv6 on specific network interfaces may be useful. For example, if there is a compatibility issue with a particular application or device that doesn't support IPv6, disabling it on that interface can resolve the issue without having to disable it globally on the entire system.

Additionally, disabling IPv6 on certain interfaces can also improve network performance by reducing unnecessary traffic. By selectively disabling IPv6 only where needed, administrators can ensure better control over their network traffic while still maintaining compatibility with legacy applications and devices that don't support this newer protocol.


Common issues that may arise when disabling IPv6

Disabling IPv6 on RHEL, Rocky, and AlmaLinux is a relatively straightforward process; however, there are some common issues that you may encounter while attempting to do so. One of the primary issues that users face is the loss of connectivity to the network. This can be caused by a misconfiguration in the network settings or a failure to disable IPv6 on all network interfaces.

Another issue that some users encounter is an increase in DNS resolution times. This can be due to the fact that some DNS servers prefer to use IPv6 over IPv4 when available, and if IPv6 is disabled, it can cause a delay in DNS lookups.

Solutions for these issues

If you are experiencing connectivity issues after disabling IPv6, make sure that you have disabled it on all network interfaces. You can do this by using the nmcli command with the appropriate options. Another potential solution is to check your network settings and make sure they are configured correctly.

To address the issue of slow DNS resolution times, you can try switching your DNS server to one that does not prefer IPv6 or configure your current server to use both protocols equally. Additionally, you can try adding an entry for your local hostname in your /etc/hosts file as this could help speed up local DNS resolution.

If these solutions do not work for you or if you encounter different issues altogether, there are many resources available online where you can find answers and solutions from other users who have faced similar problems before. Don't hesitate to reach out for help!


Disabling IPv6 in RHEL, Rocky, and AlmaLinux can be a useful option for various reasons. It may improve network performance and security, especially in situations where IPv6 is not being used.

The steps to disable IPv6 are relatively straightforward and can be completed using a few simple commands or by modifying the sysctl.conf file. Remember that disabling IPv6 may cause issues with some applications or network configurations, so it is essential to test thoroughly before implementing changes on a production system.

Updated on: 10-Jul-2023


Kickstart Your Career

Get certified by completing the course

Get Started