当前位置:   article > 正文

Ubuntu20.04开启/禁用ipv6

Ubuntu20.04开启/禁用ipv6

在这里插入图片描述

Ubuntu20.04开启/禁用ipv6

1.ipv6

IP 是互联网的核心协议。现在使用的 IP(即 IPv4)是在 20 世纪 70 年代末期设计的。互联网经过几十年的飞速发展,到 2011 年 2 月, IPv4 的地址已经耗尽, ISP 已经不能再申请到新的 IP 地址块了。我国在 2014 年至 2015 年也逐步停止了向新用户和应用分配 IPv4 地址,同时全面开始商用部署 IPv6。
在这里插入图片描述笔者在使用hasurnet进行ROS远程组网的时候,开启了ipv6,限于某些原因,需要对ipv6功能进行屏蔽。

2. 开启ipv6

step1. 编辑sysctl.conf

sudo vim /etc/sysctl.conf
  • 1

增加以下文本

net.ipv6.conf.default.disable_ipv6 = 0 
net.ipv6.conf.all.disable_ipv6 = 0
  • 1
  • 2

使用命令模式wq保存后关闭

step2. 编辑网络接口配置文件

注意,由于ubuntu托管网络接口的工具不同,此处也会相应不同,真正负责配置网络的,要么是systemd-networkd,要么是NetworkManager。前者是服务器版上的默认,后者是桌面版的默认。他们各自都有自己的配置文件。

netplan作为它俩的前端,只负责将自己的配置文件转换成它俩的配置,具体的配置工作还是由systemd-networkd或者NetworkManager来完成。
在桌面版上,默认情况下netplan往/run/NetworkManager/conf.d下生成的是个空白配置文件,不起任何作用。而在图形界面上进行的网络设置,是直接写到/etc/NetworkManager下面配置文件中的,跟netplan也没有关系

NetworkManager

nmcli conn modify eth0 ipv6.addresses IPv6-IP-Address ipv6.method manual ipv6.gateway IPv6-IP-Gateway-Address
nmcli conn up eth0
  • 1
  • 2

其中,eth0视情况而定,IPv6-IP-Address为ip6的地址IPv6-IP-Gateway-Address为指定的ip6网关
或者直接图形化操作
在这里插入图片描述
netplan

vim /etc/netplan/00-installer-config.yaml
  • 1

示例添加内容

network:
  version: 2
  ethernets:
    ens3:
      dhcp4: true
      addresses:
        - 2001:db8:30fa:5877::1/64
        - 2001:db8:30fa:5877::beef/64
      routes:
        - to: ::/0
          via: 2001:db8:30fa::1
          on-link: true
      nameservers:
        addresses:
        - 2001:4860:4860::8888
        - 2606:4700:4700::1111

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

服务启动

netplan apply
  • 1

早期server

sudo vim /etc/network/interfaces
  • 1

修改以下内容

iface eth0 inet6 static
pre-up modprobe ipv6
address IPv6-IP-Address
netmask 64
gateway IPv6-IP-Gateway-Address
  • 1
  • 2
  • 3
  • 4
  • 5

其中,eth0视情况而定,IPv6-IP-Address为ip6的地址,IPv6-IP-Gateway-Address为指定的ip6网关

service networking restart
  • 1

3. 禁用ipv6(sysctl)

命令行方式

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
  • 1
  • 2
  • 3

配置文件方式

sudo vim /etc/sysctl.conf
  • 1

添加

net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
  • 1
  • 2
  • 3

变更起效

sudo sysctl -p
  • 1

但是这种方法经常重启后可能ip6重新生效
所以,如果重启后ip6仍然存在
在指定位置创建文件

sudo touch /etc/rc.local
sudo vim /etc/rc.local
  • 1
  • 2

添加以下内容重启

#!/bin/bash
# /etc/rc.local
/etc/sysctl.d
/etc/init.d/procps restart

exit 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

记得给权限

sudo chmod 755 /etc/rc.local
  • 1

4. 禁用ipv6(grub)

终极办法
编辑/etc/default/grub

sudo vim /etc/default/grub
  • 1

修改以下行

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

更新grub

sudo update-grub
  • 1

附:总结linux网络配置

redhat等
/etc/hosts:配置主机名(域名)和IP地址的对应
/etc/sysconfig/network:配置主机名和网关
/etc/sysconfig/network-scripts/ifcfg-:eth0配置文件,eth1则文件名为ifcfg-eth1,以此类推
/etc/resolv.conf:配置DNS客户端(关于使用哪个DNS配置)

/etc/network/interfaces networking

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/137635
推荐阅读
相关标签
  

闽ICP备14008679号