介绍
互联网协议第六版 (IPv6) 是互联网协议 (IP) 的最新版本。该通信协议提供了一个系统,用于识别和定位网络上的计算机,并负责在互联网上路由流量。它于 1998 年开发,旨在取代 IPv4 协议。.
IPv6旨在提高安全性和性能,同时确保地址资源不会耗尽。它为每个设备分配全球唯一的地址,并以128位存储,而IPv4仅使用32位。.
尽管目标是用 IPv6 取代 IPv4,但目前还有很长的路要走。互联网上只有不到 30% 的网站向用户提供 IPv6 连接(谷歌的统计数据显示)。此外,IPv6 也可能给某些应用程序带来问题。.
由于 VPN 提供全球服务,而 IPv6 使用全球分配(唯一分配)的路由地址,并且目前仍有一些 ISP 不提供 IPv6 支持,这使得该功能在 ISP 的优先级列表中排名靠后。这样,他们就可以专注于 VPN 用户最关心的问题:安全性。.
您可能想要在系统中禁用 IPv6 的另一个原因是,您不想让自己暴露于各种威胁之下。虽然 IPv6 本身比 IPv4 更安全,但我所指的风险性质有所不同。如果您不经常使用 IPv6 及其功能,启用 IPv6 反而会使您容易受到各种攻击,并为黑客提供另一种可利用的工具。.
然而,仅仅配置基本的网络规则是不够的。您需要像对待 IPv4 配置一样重视 IPv6 配置的变更。这样做(以及维护)可能很麻烦。IPv6 与 IPv4 存在一系列不同的问题(考虑到该协议的悠久历史,问题确实很多),这为您的系统增加了另一层复杂性。.
也有研究发现,在某些情况下,禁用 IPv6 有助于提高 Ubuntu 系统中的 WiFi 速度。.
如何在Ubuntu中禁用IPv6(仅限高级用户)
在本节中,我将解释如何在 Ubuntu 系统上禁用 IPv6 协议。打开终端(默认快捷键:CTRL+ALT+T),让我们开始吧!
注意:您需要拥有 root (sudo) 权限才能在终端中输入大多数命令。.
如果您是普通的 Linux 桌面用户,并且更喜欢稳定的操作系统,请跳过本教程。本教程面向高级用户,他们清楚自己在做什么以及为什么要这样做。.
1. 使用 Sysctl 禁用 IPv6
首先,您需要确保系统已启用 IPv6。在 Ubuntu 系统中,您可以使用以下命令检查您的 IP 地址:
ip a
如果 IPv6 地址已激活,您应该会看到(您的网卡名称可能有所不同):
您可能在 Ubuntu 网络重启教程中见过 sysctl 命令。这里我们也会用到它。要禁用 IPv6,您只需要输入 3 个命令:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1您可以使用以下方法进行检查:
ip a
您不应该看到 IPv6 条目:
但是,这只是暂时禁用 IPv6。下次系统启动时,IPv6 将重新启用。.
要使此选项生效,一种方法是修改 /etc/sysctl.conf 文件。我将使用 vim 编辑器来编辑该文件,但您可以使用任何您喜欢的编辑器。请确保您拥有 root 权限(使用 sudo 命令):
将以下几行添加到文件中:
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1要应用以下设置:
sudo sysctl -p
如果重启后 IPv6 仍然启用,则需要创建 /etc/rc.local 文件(需要 root 权限)。.
⚠️ 对于较新版本的 Ubuntu,文件内容有所不同。.
对于 Ubuntu 22.04 及更早版本,请在 /etc/rc.local 文件中使用以下内容:
#!/bin/bash
# /etc/rc.local
/etc/sysctl.d
/etc/init.d/procps restart
exit 0对于 Ubuntu 24.04 及更高版本,请改用以下方法:
#!/bin/bash
# /etc/rc.local
/sbin/sysctl -p/etc/sysctl.conf
/etc/init.d/procps restart
exit 0现在使用 chmod 命令使文件可执行:
sudo chmod 755 /etc/rc.local
这会手动(在启动时)从您的 sysctl 配置文件中读取内核参数。.
2. 使用 GRUB 禁用 IPv6
另一种方法是配置 GRUB 在启动时发送内核参数。您需要编辑 /etc/default/grub 文件。再次提醒,请确保您拥有管理员权限:
现在您需要修改 GRUB_CMDLINE_LINUX_DEFAULT 和 GRUB_CMDLINE_LINUX 以在启动时禁用 IPv6:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1"
GRUB_CMDLINE_LINUX="ipv6.disable=1"保存文件并运行 update-grub 命令:
sudo update-grub
这些设置现在应该会在重启后仍然保留。.
在 Ubuntu 中重新启用 IPv6
要重新启用 IPv6,您必须撤销所做的更改。要启用 IPv6 直到重启,请输入:
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否则,如果您修改了 /etc/sysctl.conf 文件,您可以删除添加的行或将其更改为:
net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.default.disable_ipv6=0
net.ipv6.conf.lo.disable_ipv6=0您可以选择重新加载这些值:
sudo sysctl -p
您应该会再次看到 IPv6 地址:
您也可以选择删除 /etc/rc.local 文件:
sudo rm /etc/rc.local
如果您修改了 /etc/default/grub 中的内核参数,请删除添加的选项:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""立即行动:
sudo update-grub
结果
在本指南中,我为您提供了在 Linux 中禁用 IPv6 的方法,并让您了解了 IPv6 是什么以及为什么要禁用它。.














