ifconfig 是 network interfaces configuring 的缩写。
在 Linux 操作系统中,ifconfig 用于显示或配置网络设备的参数信息。
$ ifconfig # 显示激活状态(up 状态)的网卡信息
eth0 Link encap:Ethernet HWaddr 00:0c:29:75:8c:97
inet addr:192.168.58.128 Bcast:192.168.58.255 Mask:255.255.255.0
inet6 addr: fe80::6ae2:c35e:aa62:2b95/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1110 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:72987 (72.9 KB) TX bytes:12448 (12.4 KB)
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:204 errors:0 dropped:0 overruns:0 frame:0
TX packets:204 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15378 (15.3 KB) TX bytes:15378 (15.3 KB)
以 eth0 为例,其网卡信息含义如下所示:
名称 | 含义 |
---|---|
eth0 | 网卡名称 |
Link encap | 网卡连接类型 |
HWaddr | 网卡 MAC 地址 |
inet addr | IPv4 的 IP 地址 |
Bcast | 广播地址 |
Mask | 子网掩码 |
inet6 addr | IPv6 的 IP 地址 |
Scope | IPv6 的域范围 |
UP | 表示网卡已经启用 |
BROADCAST | 表示主机支持广播 |
RUNNING | 表示网卡正在运行中 |
MULTICAST | 表示主机支持多播 |
MTU | 最大传输单元 |
Metric | 表示接口度量值 |
RX packets: | 接收的数据包数 |
errors: | 接收时错误的数据包数 |
dropped | 接收时丢弃的数据包数 |
overruns: | 接收时由于 buffer 溢出而丢弃的数据包数 |
frame: | 接收时由于 frame 错位而丢弃的数据包数 |
TX packets | 发送的数据包数 |
errors: | 发送时错误的数据包数 |
dropped: | 发送时丢弃的数据包数 |
overruns: | 发送时由于 buffer 溢出而丢弃的数据包数 |
carrier: | 发送时由于 carrier 错误而丢弃的数据包数 |
collisions: | 表示冲突信息的数据包数目 |
txqueuelen: | 表示网卡设置传输队列的大小 |
RX bytes: | 接收的数据包字节数 |
TX bytes: | 发送的数据包字节数 |
$ 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>] [metric <NN>] [mtu <NN>]
[[-]trailers] [[-]arp] [[-]allmulti]
[multicast] [[-]promisc]
[mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]
[txqueuelen <NN>]
[[-]dynamic]
[up|down] ...
...
$ ifconfig -a
$ ifconfig -s
$ ifconfig eth0 #查看 eth0 网卡
$ ifconfig eth0 up #启用 eth0 网卡
$ ifconfig eth0 down #禁用 eth0 网卡
$ ifconfig eth0 arp #启用 eth0 ARP
$ ifconfig eth0 -arp #关闭 eth0 ARP
$ ifconfig eth0 broadcast 192.168.1.255 # 启用 eth0 广播功能
$ ifconfig eth0 -broadcast # 禁用 eth0 广播功能
$ ifconfig eth0 192.168.1.123 #配置 eth0 IP 地址
$ ifconfig eth0 192.168.1.123 network 255.255.255.0 #配置 eth0 IP 地址和子网掩码
$ ifconfig eth0 192.168.1.123 network 255.255.255.0 broadcast 192.168.1.255 #配置 eth0 IP 地址、子网掩码和广播地址
$ ifconfig eth0:0 192.168.0.123 network 255.255.255.0 up #添加 IP
$ ifconfig eth0:1 192.168.0.100 network 255.255.255.0 up #添加 IP
$ ifconfg eth0:0 down #删除 IP
$ ifconfg eth0:1 down #删除 IP
$ ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 #为网卡设置 IPv6 地址
$ ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 #为网卡删除 IPv6 地址
$ ifconfig eth0 hw ether FF:AA:BB:CC:DD:EE #修改 eth0 MAC 地址
$ ifconfig eth0 mtu 1500 #设置 eth0 能通过的最大数据包大小为 1500 bytes
$ ifconfig eth0 promisc #开启混杂模式
$ ifconfig eth0 -promisc #关闭混杂模式
$ ifconfig eth0 metric 1