1 简介
ifconfig
是 linux 中用于显示或配置网络设备(网络接口卡)的命令,英文全称是 network interfaces configuring
.
使用 ifconfig
命令配置的网卡信息,在设备重启后,配置就不存在了,需要重新配置。如果想永久修改网卡配置信息,需要修改对应的配置文件。
2 用法
通过 ifconfig --help
获取该命令的用法如下:
Usage:
ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
[add <address>[/<prefixlen>]]
[del <address>[/<prefixlen>]]
[[-]broadcast [<address>]] [[-]pointopoint [<address>]]
[netmask <address>] [dstaddr <address>] [tunnel <address>]
[outfill <NN>] [keepalive <NN>]
[hw <HW> <address>] [mtu <NN>]
[[-]trailers] [[-]arp] [[-]allmulti]
[multicast] [[-]promisc]
[mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]
[txqueuelen <NN>]
[[-]dynamic]
[up|down] ...
说明如下:
-a 显示全部网络接口信息
-s 显示摘要信息
<interface> address 为指定网卡配置IPv4地址
<interface> add <address> 为指定网卡配置IPv6地址
<interface> del <address> 删除指定网卡的IPv6地址
<interface> [-]broadcast [<address>] 为指定网卡设置是否支持广播及配置广播地址
<interface> [-]pointopoint [<address>] 为网卡设置点对点通讯协议
<interface> netmask <address> 为指定网卡配置子网掩码
<interface> dstaddr <address> 设定一个远端地址,建立点对点通信
<interface> tunnel <address> 建立隧道
<interface> outfill <NN>
<interface> keepalive <NN>
<interface> hw <address> 为指定网卡配置硬件(MAC)地址
<interface> mtu <NN> 为指定网卡配置最大传输单元
<interface> [[-]trailers]
<interface> [-]arp 设置网卡是否支持ARP协议。 - arp 表示不支持
<interface> [[-]allmulti] 设置网卡是否支持多播模式。- allmulti 表示不支持
<interface> multicast 为网卡设置组播标志
<interface> [-]promisc 设置是否支持网卡的混杂模式,如果选择此参数,网卡将接收网络中发给它所有的数据包。- promisc 表示关闭混杂模式
<interface> mem_start <NN>
<interface> io_addr <NN>
<interface> irq <NN> 设置网络设备的IRQ
<interface> media <type>
<interface> txqueuelen <NN> 为网卡设置传输列队的长度
<interface> [-]dynamic 动态获取IPv4地址
<interface> up 启动指定网卡
<interface> down 关闭指定网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除
3 常用
-
显示当前开启的网络接口信息
$ ifconfig
enp0s3 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fd00:ce:aef6::1/60 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
名词介绍:
- enp0s3 网卡名称 - Link encap 网卡的接口类型,Ethernet是以太网 - HWaddr 网卡的硬件地址,即MAC地址 - inet addr IPv4地址 - Bcast 广播地址 - Mask 子网掩码 - inet6 addr IPv6地址 - UP 表示网卡为开启状态 - BROADCAST 表示网卡支持广播 - RUNNING 表示网卡的网线已接上 - MULTICAST 表示网卡支持组播 - MTU 网络最大传输单元 - Metric 到达网关的度量值 - RX packets 网络从启动到目前为止接收的数据包大小,单位是字节 - RX errors 接收时,发生错误的数据包大小 - RX dropped 接收时,被丢弃的数据包大小 - RX overruns 接收时,由于速度过快而丢失的数据包大小 - RX frame 接收时,发生frame错误而丢失的数据包大小 - TX packets 网络从启动到目前为止发送的数据包大小,单位是字节 - TX errors 发送时,发生错误的数据包大小 - TX dropped 发送时,被丢弃的数据包大小 - TX overruns 发送时,由于速度过快而丢失的数据包大小 - TX carrier 发送时,发生carrier错误而丢失的数据包大小 - collisions 发生碰撞的数据包,如果发生太多次,表明网络状况不太好 - txqueuelen 传输数据的缓冲区的储存长度 - RX bytes 总接收字节量 - TX bytes 总发送字节量
-
显示所有可用的网络接口信息
$ ifconfig -a
-
显示简要的网络接口信息
$ ifconfig -s
-
开启/关闭网络接口
$ ifconfig eth0 up #开启 $ ifconfig eth0 down #关闭
-
配置/删除 IPv6 地址
$ ifconfig eth0 add 33ffe:3240:800:1005::2/64 #配置IPv6地址 $ ifconfig eth0 del 33ffe:3240:800:1005::2/64 #删除IPv6地址
-
配置网络接口的 IPv4 地址/子网掩码/广播地址
$ ifconfig eth0 192.168.1.1 #配置IPv4地址 $ ifconfig eth0 netmask 255.255.255.0 #配置子网掩码 $ ifconfig eth0 broadcast 192.168.1.255 #配置广播地址 $ ifconfig eth0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 #可以将上述操作组成一个命令
-
单网卡添加多个 IPv4 地址
$ ifconfig eth0:0 192.168.1.1 $ ifconfig eth0:1 192.168.2.1
-
删除 IPv4 地址
$ ifconfig eth0 del 192.168.1.1
在单网卡拥有多个 IPv4 地址时,可以删除指定 IP,若网卡只有一个 IPv4 地址则无法删除。
-
配置 MAC 地址
$ ifconfig eth0 hw ether aa:bb:cc:dd:ee:ff
-
配置网络接口为混杂模式
$ ifconfig eth0 promisc #开启混杂模式 $ ifconfig eth0 -promisc #取消混杂模式
当启用时,会出现
PROMISC
字段,如:enp0s3 Link encap:Ethernet HWaddr 00:01:02:03:04:05 ... UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 ...
-
启用/关闭 ARP 协议
$ ifconfig eth0 arp #开启arp协议 $ ifconfig eth0 -arp #关闭arp协议
禁用 arp 时,会出现
NOARP
字段,如:enp0s3 Link encap:Ethernet HWaddr 00:01:02:03:04:05 ... UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1 ...
-
设置最大传输单元
$ ifconfig eth0 mtu 1500 #设置能通过的最大数据包大小为 1500 bytes
-
设置网卡的多播模式
$ ifconfig eth0 allmulti #启用 $ ifconfig eth0 -allmulti #禁用
如果选择此参数,网卡将接收网络中所有的多播数据包。当启用时会出现
ALLMULTI
字段,如:enp0s3 Link encap:Ethernet HWaddr 00:01:02:03:04:05 ... UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1 ...