联网出现问题,详细介绍如何在Ubuntu上禁用IPv6

这篇文章详尽记录了如何在Ubuntu上禁用IPv6,如果您的Ubuntu联网出现了问题,有可能就是IPv6在作妖,可以试试禁用它。

Disable-IPv6-on-Ubuntu-Thumbnail.jpg

现在联网的设备越来越多,IPv4地址将要耗尽,IPv6主要就是为解决这个问题而生,作为未来互联网基础设施的一部分,但它还是一个正在研究中的协议,并未大规模普及使用,但互联网的未来最终将依赖于IPv6标准。

然而,现在许多服务提供商根本没有实施它,还有一些服务提供商的配置很差,导致各种连接问题层出不穷。如果在使用IPv6进行连接时遇到了问题,可以在系统上禁用它。

自Ubuntu 18.04以来,操作系统默认启用了IPv6协议。请注意,如果你在联网时没有遇到任何问题,那么就没有必要禁用IPv6。以下所有步骤都需要在终端中完成。在Ubuntu桌面版上,可以按CTRL+ALT+T键轻松打开终端。

 

在Ubuntu上使用sysctl禁用IPv6

第一个在Ubuntu上禁用IPv6的方法是利用sysctl包。

可以利用这个包来修改系统内核的属性,使IPv6永远不被启用。

暂时停用IPv6

使用这种方法,可以暂时禁用IPv6协议。

当Ubuntu设备重新启动时,IPv6模块将重新开启。

1. 在设备的终端上,运行以下两个命令。

这些命令改变了所有网络设备的IPv6配置以及默认值。

将这些值从默认的0改为1,这样IPv6就会被禁用。

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

2. 可以使用ip命令来验证Ubuntu系统是否已经禁用IPv6。

在终端中运行以下命令,输出网络接口的详细信息。

ip a

用 “a “参数告诉 “ip “命令,要打印出所有网络接口的状态。

3. 在输出结果中,应该没有了 “inet6 “条目。

如果仍然看到这个条目,可能需要尝试使用其他方法,因为这表明IPv6仍然是启用的。

在Ubuntu启动时禁用IPv6

现在已经知道如何在Ubuntu上使用sysctl禁用IPv6了,还需要把这一更改永久化。

上一节的问题是,虽然临时禁用了,但只要设备重启,这些变化就会被重置。

为了使这些变化持久化,需要修改 “sysctl.cfg “配置文件。

1. 要编辑sysctl配置文件,可以利用nano文本编辑器。

你可以使用任何你想要的文本编辑器,但我发现nano是最容易使用的一个,特别是对于初学者。

sudo nano /etc/sysctl.conf

2. 在该文件底部增加以下几行:

可以使用CTRL + W,然后CTRL + V跳到文件的底部。

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

当的Ubuntu系统重新启动时,这些设置从系统启动时就被设置,IPv6被禁用。

3. 写完这些修改后,按CTRL + X,然后按Y,再按ENTER键保存。

4. 现在,必须处理一个由/etc/init.d/propcs在启动过程中被过早调用而引起的问题。

由于它可能太早启动,一些设置,如我们的IPv6禁用选项可能永远不会被应用。

可以创建一个文件来解决这个问题,这个文件会在启动序列的后面运行,从而启动我们需要的脚本。

通过在Ubuntu设备上使用以下命令开始写入这个文件。

sudo nano /etc/rc.local

5. 在该文件中,需要输入以下几行:

这几行会调用procps,这样它就会重新加载sysctl配置。

在启动过程中稍后会调用这个功能,IPv6禁用现在应该可以按照预期的方式工作了。

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

/etc/init.d/procps restart

exit 0

完成后,请按CTRL + X,然后按Y,再按ENTER键保存文件。

6. 还没有结束,需要调整新文件的权限。

使用chmod命令为所有用户提供这个文件的执行权限。

sudo chmod 755 /etc/rc.local

如果没有执行权限,系统将无法在启动时使用该文件。

8. 最后,使用以下命令重新启动设备。

重启Ubuntu设备测试下禁用IPv6的配置是不是生效了。

sudo reboot

9. Ubuntu重新启动后,就可以验证IPv6是否已经被禁用。

要检查网络设备的状态,可以利用ip命令。

ip a

从这个命令中,应该看到输出中没有inet6值。

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether dc:a6:32:d3:28:99 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.193/24 brd 192.168.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever

在特定接口上禁用IPv6

可以修改前面两节,在特定的网络接口上禁用IPv6。

这些变化相当直接,只需要知道网络接口的名称。

1. 可以利用以下命令检索所有网络接口的名称。

ip link

2. 在这个命令中,应该看到网络接口的列表,就像下面的样子。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:2c:84:22 brd ff:ff:ff:ff:ff:ff

由于Ubuntu利用的是随机的网络名称,有两点可以说明。

首先,任何以 “en “开头的网络名称都是以太网接口。

同样,任何以 “el “开头的网络都是无线网络接口。

确定要禁用的IPv6的接口,然后进入下一步。

3. 现在,可以按照上面的步骤操作了。

不过,这次要做的事情略有不同。

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

不要使用上面的文字,而是使用下面的配置,其中 “NETWORKNAME “是要禁用的网络接口的名称。

net.ipv6.conf.NETWORKNAME.disable_ipv6-1

例如,使用下面的文本位来禁用以太网接口上的IPv6。

net.ipv6.conf.enp0s3.disable_ipv6=1

在Ubuntu上使用GRUB禁用IPv6

除了使用sysctl禁用Ubuntu系统中的IPv6之外,还可以使用GRUB。

GRUB是Ubuntu自9.10版本以来一直使用的启动加载器和管理器。

修改GRUB的设置,可以让它在启动时禁用IPv6。

1. 先来修改一下grub配置文件。

修改这个文件时要小心,因为它有可能破坏Ubuntu。

sudo nano /etc/default/grub

2. 在这个文件中,需要找到以下两行:

如果使用的是nano,可以使用CTRL+W更快地找到这些行。

GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

3. 在这两行中,需要在双引号(” “)内添加ipv6.disable=1。

例如,配置应该最终看起来像我下面的样子。

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

如果你的GRUB_CMDLINE行中已经有了文本,请确保用空格将新的值隔开。

4. 按CTRL + X,然后按Y,再按ENTER键保存你对GRUB配置文件的修改。

5. 已经对GRUB配置进行了修改,现在运行update-grub软件。

这个软件会保存对启动加载器的更改,所以下次启动设备时,应该已经禁用了IPv6。

sudo update-grub

6. 为了让改变生效,需要重新启动Ubuntu设备。

可以通过运行以下命令重新启动Ubuntu。

sudo reboot

7. 现在可以使用ip命令来验证Ubuntu设备是否禁用了IPv6。

使用以下内容列出所有网络接口的状态。

ip a

如果一切正常,应该看到这个结果中没有返回任何inet6条目。

结论

此时,您应该已经成功地禁用了Ubuntu系统上的IPv6。

禁用IPv6可以帮助各种场景,例如连接到配置错误的IPv6处理的服务。

虽然不应该禁用IPv6,但我们也无能为力,因为有时候IPv6就是没法正常访问网络。

如果你需要什么问题,欢迎在下面留言。

平均: 0 / 5. votes: 0

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 联网出现问题,详细介绍如何在Ubuntu上禁用IPv6

赞 (0)

评论

4+1=