---
title: "How to Disable IPv6 on Ubuntu: A Step-by-Step Guide"
source: "https://support.tools/disable-ipv6-ubuntu/"
published: 2024-02-18
categories: ["System Administration"]
tags: ["Ubuntu","Disable IPv6","Linux Networking","sysctl","GRUB","IPv6 Security"]
---


IPv6 is the future of networking, but there are many scenarios where disabling it on Ubuntu servers might be necessary. Whether you're troubleshooting network issues, improving security, or ensuring compatibility with legacy applications, turning off IPv6 can be beneficial.

# [Why Disable IPv6 on Ubuntu?](#why-disable-ipv6-on-ubuntu)
Disabling IPv6 might be necessary for:
- **Simplifying network troubleshooting** by reducing dual-stack complexity.
- **Enhancing security** by limiting the attack surface.
- **Fixing application compatibility issues** for software that doesn't handle IPv6 properly.
- **Meeting security compliance standards** that require IPv6 deactivation.

# [Method 1: Disable IPv6 Using sysctl (Recommended)](#method-1-disable-ipv6-using-sysctl)
The safest way to disable IPv6 is by configuring `sysctl` settings.

## Steps:
1. **Create a sysctl configuration file:**
   ```bash
   sudo cat << EOF > /etc/sysctl.d/99-disable-ipv6.conf
   net.ipv6.conf.all.disable_ipv6 = 1
   net.ipv6.conf.default.disable_ipv6 = 1
   net.ipv6.conf.lo.disable_ipv6 = 1
   EOF
   ```
2. **Apply the changes immediately:**
   ```bash
   sudo sysctl -p /etc/sysctl.d/99-disable-ipv6.conf
   ```
3. **Verify the changes:**
   ```bash
   cat /proc/sys/net/ipv6/conf/all/disable_ipv6
   ```
   If the output is `1`, IPv6 is successfully disabled.

# [Method 2: Disable IPv6 via GRUB (Persistent at Boot)](#method-2-disable-ipv6-via-grub)
Another approach is to disable IPv6 at boot time using GRUB.

## Steps:
1. **Edit the GRUB configuration file:**
   ```bash
   sudo nano /etc/default/grub
   ```
2. **Modify the GRUB_CMDLINE_LINUX_DEFAULT line to include `ipv6.disable=1`:**
   ```bash
   GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1"
   ```
3. **Update GRUB to apply changes:**
   ```bash
   sudo update-grub
   ```
4. **Reboot the system:**
   ```bash
   sudo reboot
   ```
5. **Confirm IPv6 is disabled:**
   ```bash
   ip addr
   ```
   If no IPv6 addresses (e.g., `fe80::` prefixes) appear, the configuration is successful.

# [Re-enabling IPv6 (Temporary)](#re-enabling-ipv6)
If you need to re-enable IPv6 without rebooting, run:
```bash
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
```

# [Considerations Before Disabling IPv6](#considerations)
1. **Application Compatibility:** Some modern applications expect IPv6. Test thoroughly before disabling.
2. **System Updates:** If package managers slow down, configure them to prefer IPv4.
3. **Security Trade-Offs:** While disabling IPv6 reduces attack vectors, it's not a substitute for strong security policies.
4. **Future Readiness:** IPv6 adoption is increasing. Consider the long-term impact on your infrastructure.

# [Conclusion](#conclusion)
Disabling IPv6 on Ubuntu is straightforward and can be done using sysctl (recommended) or GRUB. While this change can improve network stability and security, it's important to evaluate your needs and test applications before implementing it in a production environment.

Want more Linux administration tips? [Visit our blog](https://support.tools).

