ifconfig 是Linux下十分常用的命令,十分有必要掌握如何使用。
由于之前接触网络这块较少十分不熟悉,现在必须熟悉一下了。


一、介绍

ifconfigLinux 中用来查询和配置网络接口卡(网卡)的命令,英文全称是network interfaces configuring。
使用 ifconfig 命令对网卡所做的配置都是临时配置,重启之后都会被还原的。如果要永久配置网卡则需要通过修改配置文件的方式。

二、命令实践

1、显示网卡信息
(1)显示激活的网卡信息
ifconfig

如果网卡被关闭了则不会被显示出来。

(2)显示所有的网卡信息
ifconfig -a
(3)显示网卡的简要信息
ifconfig -s
(4)显示指定网卡的信息
ifconfig [网卡名称]
//例:ifconfig enp0s3
(5)网卡信息解释
hrx@@@:~$ ifconfig
enp0s3    Link encap:Ethernet  HWaddr 08:00:27:bd:61:3c  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::7035:2dfa:8d80:ea7e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:115 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:930 (930.0 B)  TX bytes:14560 (14.5 KB)
          Interrupt:19 Base address:0xd020 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2386 (2.3 KB)  TX bytes:2386 (2.3 KB)
  • 网卡名称:enp0s3、lo
  • Link encap:网卡接口类型,Ethernet(以太网)、Local Loopback (本地环回)
  • HWaddr:网卡的硬件地址,即MAC地址
  • inet addr:IPv4地址
  • Bcast:广播地址
  • Mask:子网掩码地址
  • inet6 addr:IPv6地址
  • Scope:是用来限制 IPv6 组播的作用范围,Host(主机本地范围)、Link(链路本地范围)、Site(站点本地范围,已废弃)、Global(全局范围)
  • UP:表示网卡开启状态,如果网卡关闭时则不显示。
  • BROADCAST:表示网卡支持广播
  • RUNNING:表示网卡正在运行
  • MULTICAST :表示网卡支持组播,如果网卡不支持则不显示
  • MTU:最大传输单元,详细的参考:https://developer.aliyun.com/article/222535
  • Metric:跃点数,通常是指到达目的地址所需的跃点数量,一个跃点代表一个路由器。另外,跃点值越大表示优先级越大
  • RX一行:分别表示网卡从启动到现在所接收的 总包数、错误数、丢弃数、过载数、帧数
  • TX一行:分别表示网卡从启动到现在所发送的 总包数、错误数、丢弃数、过载数、帧数
  • collisions:数据包发生冲突、碰撞的次数,次数多了说明网络不太好。
  • txqueuelen:发送队列长度
  • RX bytes:接收到的字节数
  • TX bytes:发送出的字节数
  • Interrupt:IRQ中断地址
  • Base address:基本地址
2、指定网卡的开关

这里以 enp0s3 网卡为例。当网卡被关闭后使用 ifconfig 是不会显示出来的。

//启动enp0s3网卡
sudo ifconfig enp0s3 up
//关闭enp0s3网卡
sudo ifconfig enp0s3 down
3、指定网卡的ARP协议开关

这里以 enp0s3 网卡为例。
ARP协议是地址解析协议(Address Resolution Protocol),每台主机或路由器都维护着一份ARP缓存表(ARP table),这个表包含IP地址到MAC地址的映射关系,表中记录了<IP地址,MAC地址>对,从而实现IP地址与MAC地址的查询与转换。
详细的查看:

//启动enp0s3网卡的ARP协议
sudo ifconfig enp0s3 arp
//关闭enp0s3网卡的ARP协议
sudo ifconfig enp0s3 -arp
4、设置网卡的IPv4地址及子网掩码(临时)

这里以 enp0s3 网卡为例。
子网掩码换算: 24 与 255.255.255.0 是相等的,24意思是按二进制算,从左开始的24位全部取1,其余为0。
即 11111111 11111111 11111111 00000000,也就是255.255.255.0

//修改网卡 enp0s3 的 IPv4地址
sudo ifconfig enp0s3 10.0.2.16
//修改网卡 enp0s3 的 IPv4地址及子网掩码,方法一
sudo ifconfig enp0s3 10.0.2.16/24
//修改网卡 enp0s3 的 IPv4地址及子网掩码,方法二
sudo ifconfig enp0s3 10.0.2.16 netmask 255.255.255.0
5、配置网卡的虚拟接口(临时)

这里以 enp0s3 网卡为例。
相当于给网卡再配置一个IP地址。

sudo ifconfig enp0s3:0 10.0.2.16/24
sudo ifconfig enp0s3:1 10.0.2.17/24
sudo ifconfig enp0s3:2 10.0.2.18/24

android app使用ifconfig命令 ifconfig命令怎么使用_ifconfig

6、设置网卡的MAC地址(临时)

这里以 enp0s3 网卡为例。
注意:需要将网卡down掉后才能设置,否则会提示 “SIOCSIFHWADDR: 设备或资源忙 - you may need to down the interface”

//修改网卡的MAC地址
sudo ifconfig enp0s3 hw ether 08:00:27:bd:61:3d

android app使用ifconfig命令 ifconfig命令怎么使用_子网掩码_02

7、设置网卡的最大传输单元(临时)

这里以 enp0s3 网卡为例。
单位是字节。

//设置网卡的最大传输单元
sudo ifconfig enp0s3 mtu 1480
8、增加及删除网卡的IPv6地址

这里以 enp0s3 网卡为例。

//增加网卡的IPv6地址
sudo ifconfig enp0s3 add fe80::7035:2dfa:8d80:ea7d/64
//删除网卡的IPv6地址
sudo ifconfig enp0s3 del fe80::7035:2dfa:8d80:ea7d/64