文章目录
- Ubuntu20.04开启/禁用ipv6
- 1.ipv6
- 2. 开启ipv6
- step1. 编辑`sysctl.conf`
- step2. 编辑网络接口配置文件
- 3. 禁用ipv6(sysctl)
- 4. 禁用ipv6(grub)
- 附:总结linux网络配置
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
增加以下文本
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.all.disable_ipv6 = 0
使用命令模式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
其中,eth0
视情况而定,IPv6-IP-Address
为ip6的地址,IPv6-IP-Gateway-Address
为指定的ip6网关
或者直接图形化操作
netplan
vim /etc/netplan/00-installer-config.yaml
示例添加内容
network:version: 2ethernets:ens3:dhcp4: trueaddresses:- 2001:db8:30fa:5877::1/64- 2001:db8:30fa:5877::beef/64routes:- to: ::/0via: 2001:db8:30fa::1on-link: truenameservers:addresses:- 2001:4860:4860::8888- 2606:4700:4700::1111
服务启动
netplan apply
早期server
sudo vim /etc/network/interfaces
修改以下内容
iface eth0 inet6 static
pre-up modprobe ipv6
address IPv6-IP-Address
netmask 64
gateway IPv6-IP-Gateway-Address
其中,eth0
视情况而定,IPv6-IP-Address
为ip6的地址,IPv6-IP-Gateway-Address
为指定的ip6网关
service networking restart
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
配置文件方式
sudo vim /etc/sysctl.conf
添加
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
变更起效
sudo sysctl -p
但是这种方法经常重启后可能ip6重新生效
所以,如果重启后ip6仍然存在
在指定位置创建文件
sudo touch /etc/rc.local
sudo vim /etc/rc.local
添加以下内容重启
#!/bin/bash
# /etc/rc.local
/etc/sysctl.d
/etc/init.d/procps restartexit 0
记得给权限
sudo chmod 755 /etc/rc.local
4. 禁用ipv6(grub)
终极办法
编辑/etc/default/grub
sudo vim /etc/default/grub
修改以下行
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1"
GRUB_CMDLINE_LINUX="ipv6.disable=1"
更新grub
sudo update-grub
附:总结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