今天做项目时需要通过ifconfig -a命令统计网卡数量,就想知道ifconfigifconfig -a的区别。结果在网上找了半天,也没有找到。正好同一天在docker中启用网卡时,发现了两个命令的区别,特此记录。

先上结论

ifconfig:显示up状态(激活状态)的网卡信息

ifconfig -a:显示所有网卡的信息,包含未up的

发现过程

1.首先创建两个docker容器并启动,过程略,记得开启--privileged=true
2.使用ip link命令sudo ip link add eth1 netns 【pid1】 type veth peer name eth1 netns 【pid2】向两个容器添加网卡eth1,数字为容器pid,可通过sudo docker inspect -f '{{.State.Pid}}' 【容器id】命令获取。
在这里插入图片描述
3.进入容器,执行ifconfig命令
在这里插入图片描述
4.执行ifconfig -a命令
在这里插入图片描述
可以看到未up的网卡只有在ifconfig -a命令执行后才会显示
5.在docker容器内执行ifconfig eth1 10.0.0.10 up激活eth1,然后执行ifconfig,发现已经可以显示eth1的信息
在这里插入图片描述
在这里插入图片描述
PS:最后一步容器id变了是因为我做到这一步发现创docker时忘记开启--privileged=true选项了,又重新创了个docker来了一遍…

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐