Unix/Linux网络接口管理相关命令介绍
Unix/Linux 网络接口管理相关命令介绍
获取网络适配器列表信息
在获知网络接口使用状态之前,你可能需要知道你当前的系统使用的网络适配器,在 Linux 和 AIX 中查看网络设备器的属性使用不同的命令,下面的例子给出了在不同系统上如何查看网络设备器的属性。
Linux 系统启动加载网卡驱动会输出识别到的所有网络适配器信息。dmesg 显示系统开机信息。所以可以利用该命令取得系统网络适配器列表。清单 1 命令输出显示共有 2 块网卡,eth0 与 eth1,其中仅 eth1 被启用。
在 RHEL5.3 系统上查看网络适配器
IBM eHEA ethernet device driver (Release EHEA_0092-03)
ehea: eth0: Jumbo frames are enabled
ehea: eth0 -> logical port id #1
ehea: eth1: Jumbo frames are enabled
ehea: eth1 -> logical port id #2
ehea: eth1: Physical port up
eth1: no IPv6 routers present
查看网络接口状态
网络接口状态包括接口是否启用,是否设置 IP 地址、MTU 大小、收发的包数等,查询的命令为 ifconfig, 在不同操作系统其输出格式略有不同。
清单 3 为在 RHEL5.3 上的输出,其显示两个以太网络接口,eth0 未配置 ip 地址,未被启用;eth1 配置了 IP 地址并被启用。
eth0 Link encap:Ethernet HWaddr 00:1A:64:44:AC:34
BROADCAST 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)
eth1 Link encap:Ethernet HWaddr 00:1A:64:44:AC:35
inet addr:9.114.70.151 Bcast:9.114.70.255 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12337126 errors:0 dropped:0 overruns:0 frame:0
TX packets:6250179 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:17295472097 (16.1 GiB) TX bytes:673204981 (642.0 MiB)
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:16436 Metric:1
RX packets:20168 errors:0 dropped:0 overruns:0 frame:0
TX packets:20168 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1989243 (1.8 MiB) TX bytes:1989243 (1.8 MiB)
查看网络接口连接属性
网络接口连接属性包括连接模式、连接速度、链路状态、协商方式等。
Linux 上用于查询及设置以太网卡参数的一个常用命令是 ethtool,它可以获取网卡的各种详细的诊断信息,包括连接模式(全双工 / 半双工)、连接速度(10M/100M/1000M 等)、是否支持自动协商等、链路状态、驱动版本、总线位置等等。ethtool 的查询以及配置功能需要相应网卡设备驱动的支持,从本质上说,ethtool 的功能是调用驱动提供的 ethtool 接口,来实现用户所要求的操作。基本上,Linux 2.4 以上内核的网卡驱动均支持这个命令。但根据具体驱动的不同,显示的信息可能大同小异。
在 RHEL5.3 系统上查看网络适配器连接属性
Settings for eth1:
Supported ports: [ FIBRE ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Current message level: 0x000000cc (204)
Link detected: yes
主要字段含义:
Supported link modes 支持的连接模式
Supports auto-negotiation 是否支持自动协商
Speed 当前的连接速度
Duplex 当前的双工状态
Port 端口类型
Auto-negotiation 自动协商状态
Link detected 链路状态
显示网络接口流量
Linux 上,/proc 文件系统提供了大量的信息反映系统的各种运行状态,包括许多网络相关的统计信息。其中文件 /proc/net/dev 实时反映了网络接口的流量信息。清单7显示了 eth1 当前共接收了 17295646453 字节,发送了 673360865 字节。
在 RHEL5.3 系统上查看网络流量
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed
multicast|bytes packets errs drop fifo colls carrier compressed
lo: 1989443 20172 0 0 0 0 0 0
1989443 20172 0 0 0 0 0 0
eth0: 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
eth1:17295646453 12338767 0 0 0 0 0 1406
673360865 6251399 0 0 0 0 0 0
主要字段含义:
packets 发送或接受的报文总数
errs 被设备驱动监测到发送或接受的错误报文总数
drop 由于系统资源限制,被设备驱动丢弃的报文总数
fifo FIFO 缓存错误数
frame 帧错误数
compressed 发送或接受的压缩报数
multicast 接受到的多播报数
colls 接口检测到的冲突数
carrier 连接介质出现故障次数 , 如 : 网线接触不良