ifconfig 是Linux下十分常用的命令,十分有必要掌握如何使用。
由于之前接触网络这块较少十分不熟悉,现在必须熟悉一下了。
一、介绍
ifconfig 是 Linux 中用来查询和配置网络接口卡(网卡)的命令,英文全称是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
6、设置网卡的MAC地址(临时)
这里以 enp0s3 网卡为例。
注意:需要将网卡down掉后才能设置,否则会提示 “SIOCSIFHWADDR: 设备或资源忙 - you may need to down the interface”
//修改网卡的MAC地址
sudo ifconfig enp0s3 hw ether 08:00:27:bd:61:3d
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