# ifconfig ## 命令功能 ifconfig命令用来查询和设置网卡的IP地址、网络掩码、网关、硬件mac地址等参数。并能够启用/关闭网卡。 ## 命令格式 ifconfig [option] option: - [_-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:a: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左右的延时。 ## 使用实例 - ifconfig eth0 192.168.100.31 netmask 255.255.255.0 gateway 192.168.100.1 hw ether 00:49:cb:6c:a1:31 - ifconfig -a - ifconfig eth0 inet6 add 2001:a:b:c:d:e:f:d - ifconfig eth0 inet6 del 2001:a: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 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 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 ``` 输出的各参数说明如下表所示: **表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) ``` 输出的各参数说明如下表所示: **表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 NetifStatusCallback(eth0): nsc event: 0x8 NetifStatusCallback(eth0): nsc status changed: 0 NetifStatusCallback(eth0): nsc event: 0x200 NetifStatusCallback(eth0): nsc event: 0x8 NetifStatusCallback(eth0): nsc status changed: 1 NetifStatusCallback(eth0): nsc event: 0x200 NetifStatusCallback(eth0): nsc event: 0x200 OHOS:/$ ifconfig 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 eth0 ip:192.168.1.10 netmask:255.255.255.0 gateway:192.168.1.1 ip6: 2001:A:B:C:D:E:F:D/64 HWaddr 66:2f:e5:bd:24:e6 MTU:1500 Running Default Link UP ``` - **示例4** 删除IPv6的地址信息 ``` OHOS:/$ ifconfig eth0 inet6 del 2001:a:b:c:d:e:f:d NetifStatusCallback(eth0): nsc event: 0x200 OHOS:/$ ifconfig 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 eth0 ip:192.168.1.10 netmask:255.255.255.0 gateway:192.168.1.1 HWaddr 66:2f:e5:bd:24:e6 MTU:1500 Running Default Link UP ```