[译文]如何在Ubuntu系统上禁用IPV6

一颗蔬菜 2019-06-28 AM 204℃ 0条

Last updated May 21, 2019 By Sergiu 8 Comments

镜像问题:如何在Centos系统上禁用IPV6

你正在寻找一种在你的 Ubuntu 机器上禁用 IPv6连接的方法吗? 在本文中,我将确切地教您如何做到这一点,以及为什么您会考虑这个选项。 我还将向您展示如何启用或重新启用 IPv6,以防您改变主意。
disable_ipv6_ubuntu.png

什么是IPV6以及你为什么想要在Ubuntu机器上禁用IPV6?

IPV6是IP协议的最新版本,IP协议是一种通信协议,为网络上的计算机提供识别和定位系统,并通过因特网传送信息。 它是在1998年开发的,以取代 IPv4协议。

Ipv6旨在提高安全性和性能,同时确保我们不会耗尽地址。 它为每个设备分配全局唯一的地址,以128位的形式存储,而 IPv4只使用32位。

尽管 IPv4的目标是被 IPv6所取代,但是还有很长的路要走。 互联网上只有不到30% 的网站能够向用户提供 IPv6连接(数据来源于Google统计)。 Ipv6同时也会导致一些应用程序出现问题
ipv6使用量.png
由于 vpn 提供全球服务,IPv6使用全球路由地址(唯一分配的地址) ,而且仍然有 isp 不提供 IPv6支持,这使得该特性的优先级降低。 通过这种方式,他们可以关注对 VPN 用户来说最重要的东西: 安全性。
全球ipv6连接的可用性.png
另一个可能的原因是你想在你的系统上禁用 IPv6是不想让你自己暴露在各种威胁之下。 虽然 IPv6本身比 IPv4更安全,但我所指的风险是另一种性质的。 如果你没有积极使用 IPv6及其特性,启用 IPv6会使你容易受到各种攻击,为黑客提供另一种可利用的工具。

同样,配置基本的网络规则是不够的。 你必须像关注 IPv4一样关注调整你的 IPv6配置。 这可以证明是一个相当麻烦的事情(也是维护)。 Ipv6带来了一系列与 IPv4不同的问题(在这个互联网发年代,许多问题可以在线参考) ,给您的系统增加了另一层复杂性。

建议阅读 如何在Ubuntu和其他发行版上修改主机名

在 Ubuntu 上禁用 IPv6[仅供高级用户使用]

在这一部分,我将介绍如何在你的 Ubuntu 机器上禁用 IPv6协议。 打开一个终端(默认: ctrl + alt + t) ,让我们开始吧!

注意: 对于要在终端中输入的大多数命令,您将需要 root 特权(sudo)。

警告:如果您是一个普通的桌面 Linux 用户,并且更喜欢稳定的工作系统,请避免使用本教程。 这是为高级用户准备的,他们知道自己在做什么,为什么要这么做。

  1. 使用 Sysctl 禁用 IPv6

首先,你可以检查你是否启用了IPV6:

ip a

ipv6_address_ubuntu.png
你可以在关于在 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

你可以再次检查是否启用IPV6

ip a

你应该看不到 IPv6条目:
ipv6_disabled_ubuntu.png

然而,这只是暂时禁用 IPv6。 下次您的系统启动时,将再次启用 IPv6。

持久化禁用IPV6的方法是修改/etc/sysctl.conf文件我将使用 vim 来编辑文件,但是您可以使用任何您喜欢的编辑器。 确保您拥有管理员权限(使用 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,则必须创建(具有 root 特权)文件/etc/rc.local, 然后在里面填上:

#!/bin/bash
# /etc/rc.local

/etc/sysctl.d
/etc/init.d/procps restart

exit 0

现在使用 chmod 命令使文件可执行:

sudo chmod 755 /etc/rc.local

这样做的目的是从 sysctl 配置文件中手动读取(在引导期间)内核参数。

建议阅读 如何解决子进程 /usr/bin/dpkg 在 Ubuntu 中返回一个错误代码1′的错误

  1. 使用Grub禁用IPV6

另一种方法是将 GRUB 配置为在启动时传递内核参数。 你必须编辑 / etc / default / grub。 再一次,确保您拥有管理员权限:

现在你需要修改 GRUB_CMDLINE_LINUX_DEFAULTGRUB_CMDLINE_LINUX来禁止启用IPV6:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1"
GRUB_CMDLINE_LINUX="ipv6.disable=1"

grub_configuration-1.jpg
保存文件并执行:

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地址:
ipv6_address_ubuntu.png

你可以选择删除/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以及为什么要禁用它。

你觉得这篇文章有用吗? 你关闭了 IPv6连接吗? 请在评论区告诉我们!

标签: 计算机网络

非特殊说明,本博所有文章均为博主原创。