关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » HTML5 »如何在Linux下禁用IPv6

    如何在Linux下禁用IPv6

    2015-05-09 00:00:00 出处:linux.cn
    分享

    问题:我发现我的一个应用程序在尝试通过IPv6建立连接,但是由于我们本地网络不允许分配IPv6的流量,IPv6连接会超时,应用程序的连接会回退到IPv4,这样就会造成不必要的延迟。由于我目前对IPv6没有任何需求,所以我想在我的Linux主机上禁用IPv6。有什么比较合适的方法呢?

    IPv6被认为是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

    Linux有问必答:如何在Linux下禁用IPv6

    $ ip addr

    Linux有问必答:如何在Linux下禁用IPv6

    临时禁用IPv6

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

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

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

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

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

    Linux有问必答:如何在Linux下禁用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″。

    Linux有问必答:如何在Linux下禁用IPv6

    最后,不要忘记用以下方法保存对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”,保存退出。

    Linux有问必答:如何在Linux下禁用IPv6

    SSH服务

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

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

    $ sudo vi /etc/ssh/sshd_config
    AddressFamily inet

    然后重启sshd服务。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    正版 Windows 11产品密钥怎么查找/查看?

    还有3个月,微软将停止 Windows 10 的更新

    Windows 10 终止支持后,企业为何要立即升级?

    Windows 10 将于 2025年10 月终止技术支持,建议迁移到 Windows 11

    Windows 12 发布推迟,微软正全力筹备Windows 11 25H2更新

    Linux 退出 mail的命令是什么

    Linux 提醒 No space left on device,但我的空间看起来还有不少空余呢

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术热点

    商业智能成CIO优先关注点 技术落地方显成效(1)

    用linux安装MySQL时产生问题破解

    JAVA中关于Map的九大问题

    windows 7旗舰版无法使用远程登录如何开启telnet服务

    Android View 事件分发机制详解

    MySQL用户变量的用法

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。