千家信息网

如何在Linux下禁用IPv6

发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,这篇文章主要讲解了"如何在Linux下禁用IPv6",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何在Linux下禁用IPv6"吧!Pv6被认为是IP
千家信息网最后更新 2025年01月28日如何在Linux下禁用IPv6

这篇文章主要讲解了"如何在Linux下禁用IPv6",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何在Linux下禁用IPv6"吧!

Pv6被认为是IPv4——互联网上的传统32位地址空间——的替代产品,它用来解决现有IPv4地址空间即将耗尽的问题。然而,由于已经有大量主机、设备用IPv4连接到了互联网上,所以想在一夜之间将它们全部切换到IPv6几乎是不可能的。许多IPv4到IPv6的转换机制(例如:双协议栈、网络隧道、代理) 已经被提出来用来促进IPv6能被采用,并且很多应用也正在进行重写,如我们所提倡的,来增加对IPv6的支持。有一件事情可以确定,就是在可预见的未来里IPv4和IPv6势必将共存。
理想情况下,向IPv6过渡的进程不应该被最终的用户所看见,但是IPv4/IPv6混合环境有时会让你碰到各种源于IPv4和IPv6之间不经意间的相互碰撞的问题。举个例子,你会碰到应用程序超时的问题,比如apt-get或ssh尝试通过IPv6连接失败、DNS服务器意外清空了IPv6的AAAA记录、或者你支持IPv6的设备不兼容你的互联网服务提供商遗留下的IPv4网络,等等等等。

当然这不意味着你应该盲目地在你的Linux机器上禁用IPv6。鉴于IPv6许诺的种种好处,作为社会的一份子我们最终还是要充分拥抱它的,但是作为给最终用户进行故障排除过程的一部分,如果IPv6确实是罪魁祸首,那你可以尝试去关闭它。

这里有一些让你在Linux中部分(例如:对于某个特定的网络接口)或全部禁用IPv6的小技巧。这些小贴士应该适用于所有主流的Linux发行版包括Ubuntu、Debian、Linux Mint、CentOS、Fedora、RHEL以及Arch Linux。
查看IPv6在Linux中是否被启用

所有现代Linux发行版默认都自动启用IPv6。为了能看到IPv6在你的Linux中是否被激活,可以使用ifconfig或ip命令。如果你在输入这些命令之后看到"inet6"字样的输出,那就意味着你的Linux系统启用了IPv6。

代码如下:

$ ifconfig

代码如下:

$ ip addr

临时禁用IPv6

如果你想要在你的Linux系统上临时关闭IPv6,你可以用 /proc 文件系统。"临时"的意思是我们所做的禁用IPv6的更改在系统重启后将不被保存。IPv6会在你的Linux机器重启后再次被启用。

要将一个特定的网络接口禁用IPv6,使用以下命令:

代码如下:

$ sudo sh -c 'echo 1 > /proc/sys/net/ipv6/conf//disable_ipv6'

举个例子,将eth0接口禁用IPv6:

代码如下:

$ sudo sh -c 'echo 1 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6'

重新启用eth0接口的IPv6:

代码如下:

$ sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6'

如果你想要将整个系统所有接口包括回环接口禁用IPv6,使用以下命令:

代码如下:

$ sudo sh -c 'echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6'

永久禁用IPv6

以上方法是不能永久禁用IPv6的,你一旦重启系统IPv6还是会被启用。如果你想要永久关闭它,有几个方法你可以试试。
方法一

第一种方法是通过 /etc/sysctl.conf 文件对 /proc 进行永久修改。

换句话说,就是用文本编辑器打开 /etc/sysctl.conf 然后添加以下内容:

代码如下:

# 禁用整个系统所有接口的IPv6
net.ipv6.conf.all.disable_ipv6 = 1
# 禁用某一个指定接口的IPv6(例如:eth0, lo)
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1

在 /etc/sysctl.conf 使这些更改生效,运行以下命令:


代码如下:

$ sudo sysctl -p /etc/sysctl.conf

或者直接重启。
方法二

另一个永久禁用IPv6的方法是在开机的时候传递一个必要的内核参数。

用文本编辑器打开 /etc/default/grub 并给GRUBCMDLINELINUX变量添加"ipv6.disable=1"。

代码如下:

$ sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX="xxxxx ipv6.disable=1"

上面的"xxxxx"代表任何已有的内核参数,在它后面添加"ipv6.disable=1"。

最后,不要忘记用以下方法保存对GRUB/GRUB2的修改:

Debian、Ubuntu或Linux Mint系统:

代码如下:

$ sudo update-grub

Fedora、CentOS/RHEL系统:

代码如下:

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

现在只要你重启你的Linux系统,IPv6就会完全被禁用。
禁用IPv6之后的其它可选步骤

这里有一些在你禁用IPv6后需要考虑的可选步骤,这是因为当你在内核里禁用IPv6后,其它程序也许仍然会尝试使用IPv6。在大多数情况下,应用程序的这种行为不太会影响到什么,但是出于效率或安全方面的原因,你可以为他们禁用IPv6。
/etc/hosts

根据你的设置, /etc/hosts 会包含一条或多条IPv6的hosts和它们的地址。用文本编辑器打开 /etc/hosts 并注释掉包含IPv6 hosts的脚本行。

代码如下:

$ sudo vi /etc/hosts

# comment these IPv6 hosts
# ::1 ip6-localhost ip6-loopback
# fe00::0 ip6-localnet
# ff00::0 ip6-mcastprefix
# ff02::1 ip6-allnodes
# ff02::2 ip6-allrouters

Network Manager

如果你在用NetworkManager来管理你的网络设置,你可以在NetworkManager里禁用IPv6。在NetworkManager打开wired connection,点击"IPv6 Settings"选项并在"Method"一栏选择"Ignore",保存退出。

SSH服务

默认情况下,OpenSSH服务(sshd)会去尝试捆绑IPv4和IPv6的地址。

要强制sshd只捆绑IPv4地址,用文本编辑器打开 /etc/ssh/sshd_config 并添加以下行。inet只适用于IPv4,而inet6是适用于IPv6的。

代码如下:

$ sudo vi /etc/ssh/sshd_config

AddressFamily inet

然后重启sshd服务。

感谢各位的阅读,以上就是"如何在Linux下禁用IPv6"的内容了,经过本文的学习后,相信大家对如何在Linux下禁用IPv6这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

代码 系统 接口 方法 命令 地址 网络 永久 服务 情况 文本 编辑器 问题 尝试 内容 内核 就是 程序 互联 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 在网络安全的概念中信息安全包括 兰州的软件开发公司有哪些 代理服务器能获取密码吗 win10上的代理服务器是什么 西青金蝶软件开发选哪家 服务器放家里安全吗 信息软件开发商家 java 数据库查询 目前网络技术采用的模型是 亚马逊服务器永久免费 服务器网卡如何接路由器 不同服务器的原神可以一起玩吗 软件开发技术岗位考核 超融合服务器价格查询 王者荣耀定西市安定区的服务器 unity收不到服务器消息 怎么远程链接数据库 servlet数据库注册 贵州软件开发 网站开发 行情管家分仓软件开发 局域网服务器安全设置 自助餐线上点餐软件开发 腾讯云怎么加数据库 服务器在别的电脑上怎么样连接 河北智慧校园管理平台软件开发 河南网络时间同步服务器云空间 徐州个人软件开发资费 碳排放一般在哪个数据库搜 云端服务器防护 电脑某软件停止服务器
0