如何在Ubuntu Server 18.04/16.4 LTS中禁用IPv6

时间:2020-07-27 12:59:34  来源:igfitidea点击:

默认在Ubuntu中启用了IPv6.
但是我们可能希望有很多原因禁用IPv6.
某些程序可能会导致启用IPv6时出现问题,因此如果我们不打算使用IPv6,只需禁用它并且不担心任何潜在的问题。

本教程解释了如何在Ubuntu 18.04/16.04中禁用IPv6(与Ubuntu Server和桌面版本兼容)。
我们有几种方法可以在Ubuntu服务器上禁用IPv6.
一种方法是使用SYSCTL关闭IPv6,第二种方法是编辑GRUB配置文件。

使用SYSCTL永久禁用Ubuntu 18.04/16.04上的IPv6

最简单和最安全的方法是将配置添加到/etc/sysctl.conf文件。
要使用Sysctl禁用IPv6,请打开Ubuntu终端并执行以下步骤:

打开/etc/sysctl.conf文件:

vim /etc/sysctl.conf

在sysctl.conf文件末尾添加以下行:

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

在Ubuntu Server 18.04中,我们需要为要禁用IPv6的每个接口添加其他行:

net.ipv6.conf.<ifname>.disable_ipv6 = 1

例如,如果接口名称是ENP0S3,那么:

net.ipv6.conf.enp0s3.disable_ipv6 = 1

要执行更改,请运行sysctl -p命令。

sysctl -p

然后,运行以下命令以检查IPv6状态:

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

如果输出为1,则禁用IPv6,当启用IPv6时,命令将输出0。

如果要重新启用IPv6地址,请从sysctl.conf删除上面的配置并执行sysctl -p命令。

说明

当系统重新启动时,内核会创建处理内核参数的/proc文件系统。
通过编辑sysctl.conf,我们可以编辑/proc文件系统中的内核参数。

通过将以下行添加到sysctl.conf,我们禁用/proc文件系统中的IPv6.

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

使用grub禁用IPv6

使用Root Privileges执行以下步骤,以永久地使用GRUB方法禁用Ubuntu 18.04/16.04中的IPv6.

  • 打开/etc/default/grub,modify grub_cmdline_linux和grub_cmdline_linux_default以append ipv6.disable = 1:
GRUB_CMDLINE_LINUX="ipv6.disable=1"
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
  • 更新GRUB配置:
update-grub
  • 重新启动服务器:
systemctl reboot

什么是IPv6以及对IPv6地址的需求

自互联网的开始以来,IPv4已经存在了一段时间。
IPv4使用32位地址空间,可以提供几乎4.3b的IP地址。
但是,到1992年它实现了IPv4地址方案,不足以快速发展互联网。

所以我们转向IPv6的主要原因是因为我们已经耗尽了IP地址。
IPv6使用以十六进制写入的128位地址空间。
IPv6具有较大的地址空间,可以提供340个未占地地址。

为什么要禁用IPv6?

没有单一的原因,为什么要在Ubuntu服务器中禁用IPv6,也不应该是它必须的。
这取决于你的要求。

据报道,ubuntu中的IPv6导致DNS相关问题。
例如,APT包管理器偶尔试图在IPv6上启动连接并失败。