ifconfig

About 12 min

ifconfig

命令功能

ifconfig命令用来查询和设置网卡的IP地址、网络掩码、网关、硬件mac地址等参数。并能够启用/关闭网卡。

命令格式

ifconfig

[-a]

<interface> <address> [netmask <mask>] [gateway <address>]

[hw ether <address>] [mtu <size>]

[inet6 add <address>]

[inet6 del <address>]

[up|down]

参数说明

表 1 参数说明

参数

参数说明

取值范围

不带参数

打印所有网卡的IP地址、网络掩码、网关、硬件mac地址、MTU、运行状态等信息。

N/A

-a

打印协议栈收发数据信息。

N/A

interface

指定网卡名,比如eth0。

N/A

address

设置IP地址,比如192.168.1.10,需指定网卡名。

N/A

netmask

设置子网掩码,后面要掩码参数,比如255.255.255.0。

N/A

gateway

设置网关,后面跟网关参数,比如192.168.1.1。

N/A

hw ether

设置mac地址, 后面是MAC地址,比如00:11:22:33:44:55。目前只支持ether硬件类型。

N/A

mtu

设置mtu大小,后面是mtu大小,比如1000。

  • 仅支持ipv4情况下的范围为

    [68,1500]。

  • 支持ipv6情况下的范围为

    [1280,1500]。

add

设置ipv6的地址,比如2001🅰️b:c:d:e:f:d,需指定网卡名和inet6。

N/A

del

删除ipv6的地址,需指定网卡名和inet6。

N/A

up

启用网卡数据处理,需指定网卡名。

N/A

down

关闭网卡数据处理,需指定网卡名。

N/A

使用指南

  • 命令需要启动TCP/IP协议栈后才能使用。
  • 由于IP冲突检测需要反应时间,每次使用ifconfig设置IP后会有2S左右的延时。

使用实例

  1. ifconfig eth0 192.168.100.31 netmask 255.255.255.0 gateway 192.168.100.1 hw ether 00:49:cb:6c:a1:31
  2. ifconfig -a
  3. ifconfig eth0 inet6 add 2001🅰️b:c:d:e:f:d
  4. ifconfig eth0 inet6 del 2001🅰️b:c:d:e:f:d

输出说明

  1. 设置网络参数

    OHOS # ifconfig eth0 192.168.100.31 netmask 255.255.255.0 gateway 192.168.100.1 hw ether 00:49:cb:6c:a1:31
    OHOS # ifconfig
    eth0     ip:192.168.100.31 netmask:255.255.255.0 gateway:192.168.100.1
    HWaddr 00:49:cb:6c:a1:31 MTU:1500 Running Default Link UP
    lo         ip:127.0.0.1 netmask:255.0.0.0 gateway:127.0.0.1
    ip6: ::1/64
    HWaddr 00 MTU:0 Running Link UP
    
    1
    2
    3
    4
    5
    6
    7

    输出的各参数说明如下表所示:

    表 2 参数说明

    参数

    说明

    ip

    板子IP地址。

    netmask

    网络掩码。

    gateway

    网关。

    HWaddr

    板子硬件mac地址。

    MTU

    网络最大传输单元。

    Running/Stop

    网卡是否正在运行。

    Default

    有这项说明此网卡连接到默认网关。

    Link UP/Down

    网卡连接状态。

  2. 获取协议栈统计信息

    OHOS # ifconfig -a
    RX packets:6922  errors:0        ip dropped:4312         link dropped:67         overrun:0       bytes:0 (0.0 B)
    RX packets(ip6):3     errors:0        dropped:0       overrun:0       bytes:0 (0.0 B)
    TX packets:1394  errors:0        link dropped:67         overrun:0       bytes:0(0.0 B)
    TX packets(ip6):3     errors:0        overrun:0       bytes:0(0.0 B)
    
    1
    2
    3
    4
    5

    输出的各参数说明如下表所示:

    表 3 ifconfig -a 参数说明

    参数

    说明

    RX packets

    IP层已接收的正常数据包的个数。

    RX error

    IP层已接收的错误数据包的个数,错误类型包括长度错误,校验错误,IP option错误,IP首部protocol错误等。

    RX dropped

    IP层已丢弃的数据包的个数,丢弃原因包括数据包错误,封包无法转发,本地网卡处于关闭状态等。

    RX overrun

    MAC层向上层协议栈投递封包失败的个数,失败原因主要是协议栈资源不足。

    RX bytes

    IP层已接收的正常数据包的总长度,不包括重组未完成的分片的长度。

    TX packets

    IP层已正常发送或转发的数据包的个数。

    TX error

    IP层发送失败的数据包的个数,失败原因包括封包无法路由,封包在协议栈内处理失败等。

    TX dropped

    MAC层由于发送失败而丢弃的数据包个数,失败原因包括网卡驱动处理封包失败等。

    TX overrun

    暂未使用。

    TX bytes

    IP层已正常发送或者转发的数据包的总长度。

  3. 设置IPv6的地址信息

    OHOS # ifconfig eth0 inet6 add 2001:a:b:c:d:e:f:d
    OHOS # ifconfig
    eth1    ip:192.168.3.60 netmask:255.255.255.0 gateway:0.0.0.0
    HWaddr 00:0e:c6:a8:5a:c2 MTU:1500 Running Link UP
    eth0    ip:192.168.2.60 netmask:255.255.255.0 gateway:0.0.0.0
    ip6: 2001:A:B:C:D:E:F:D/64
    HWaddr 46:44:02:02:03:03 MTU:1500 Running Link UP
    lo        ip:127.0.0.1 netmask:255.0.0.0 gateway:127.0.0.1
    ip6: ::1/64
    HWaddr 00 MTU:16436 Running Link UP
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
  4. 删除IPv6的地址信息

    OHOS # ifconfig eth0 inet6 del 2001:a:b:c:d:e:f:d
    OHOS # ifconfig
    eth1    ip:192.168.3.60 netmask:255.255.255.0 gateway:0.0.0.0
    HWaddr 00:0e:c6:a8:5a:c2 MTU:1500 Running Link UP
    eth0    ip:192.168.2.60 netmask:255.255.255.0 gateway:0.0.0.0
    HWaddr 46:44:02:02:03:03 MTU:1500 Running Link UP
    lo        ip:127.0.0.1 netmask:255.0.0.0 gateway:127.0.0.1
    ip6: ::1/64
    HWaddr 00 MTU:16436 Running Link UP
    
    1
    2
    3
    4
    5
    6
    7
    8
    9