ifconfig命令使LINUX核心知道软件回送和网卡这样一些网络接口,这样Linux就可以使用它们。除了上面介绍的这些用法之外,ifconfig命令用来监控和改变网络接口的状态,并且还可以带上很多命令行参数。下面是一个ifconfig的通用调用语法:
#ifconfig interface [[-net|-host] address [parameters]]
其中interface是网络接口名:address是分配给指定接口的主机名或IP地址。这里使用的主机名被解析成它们的对等IP地址,这个参数是必须的。-net和-host参数分别告诉ifconfig将这个地址作为网络号或者是主机地址。
如果调用ifconfig命令时后面只跟上端口设备名,那么它将显示这个端口的配置情况;如果不带任何参数,ifconfig命令将显示至今为止所配置的接口的所有信息;如果带上-a选项,那么还可以显示当前不活跃的接口。
一个检查以太网接口eth0的ifconfig调用可以得到如下的输出:
#ifconfig eth0
eth0 Link encap 10Mbps Ethernet HWaddr 00:00:C0:90:B3:44
inet addr xxx.xxx.xxx.xxx Bcast xxx.xxx.xxx.255 Mask 255.255.255.0
UP BROADCAST RUNNING MTU 1500 Metric 0
RX packets 3136 errors 217 dropped 7 overrun 26
TX packets 1752 errors 25 dropped 0 overrun 0
(注意:其中XXX.XXX.XXX.XXX是IP地址)
MTU和Metric这两列显示了当前eth0接口的最大数据传送值和接口度量值。接口度量值表示在这个路径上发送一个分组的成本。目前内核中还没有使用路由,但可能以后会用。RX(接收分组数)和TX(传送分组数)这两行显示出了接收、传送分组的数目,以及分组出错数、丢失分组数(一个可能原因是内存较少)和超限数(通常在接收器接收数据的速度快于核心的处理速度的时候发生)。
Parameters 表示ifconfig所支持的各种参数,使用这些参数就可以便方便地监控和改变网络接口的状态。
ifconfig的命令行参数:
up 激活指定的接口
down 关闭指定接口。该参数可以有效地阻止通过指定接口的IP信息
流,如果想永久地关闭一个接口,我们还需要从核心路由表中
将该接口的路由信息全部删除
netmask mask 为接口设置IP网络掩码。掩码可以是有前缀0x的32位十六进制
数,也可以是用点分开的4个十进制数。如果不打算将网络分成
子网,可以不管这一选项;如果要使用子网,那么请记住,网络
中每一个系统必须有相同子网掩码。
pointpoint 打开指定接口的点对点模式。它告诉核心该接口是对另一台机
器的直接连接。当包含了一个地址时,这个地址被分配给列表另
一端的机器。如果没有给出地址,就打开这个指定接口的
POINTPOINT选项。前面加一个负号表示关闭pointpoint选项。
broadcast address 当使用了一个地址时,设置这个接口的广播地址。如果
没有给出地址,就打开这个指定接口的IFF_BROADCAST选项。
前面加上一个负号表示关闭这个选项。
metric number 将接口度量值设置为整数number。度量值表示在这个路径上发
送一个分组的成本。目前内核中还没有使用路由成本,但将来会。
mtu bytes 将接口在一次传输中可以处理的最大字节数设置为整数bytes。
目前核心网络代码不处理IP分段,因此一定要把MTU(最大数据
传输单元) 值设置得足够大
arp 打开或关闭指定接口上使用的ARP协议。前面加上一个负号用于
关闭该选项。
allmuti 打开指定接口的无区别模式。打开这个模式让接口把网络上的
所有信息流都送到核心中,而不仅仅是把你的机器的信息发送给
核心。前面加上一个负号表示关闭该选项
hw 为指定接口设置硬件地址。硬件类型名和次硬件地址对等的
ASCII字符必须跟在这个关键字后面。目前支持以太网
(ether)、AMPR、AX.25和PPP
traliers 打开以太网帧上的跟踪器。目前还未在LINUX网络中实现
通常不需要使用所有的这些配置。Ifconfig可以仅由接口名、网络掩码和分配IP地址来设置所需的一切。当ifconfig疏漏了或者有一个复杂的网络时,只要重新设置大多数参数。
使用netstat检查网络状态
接下来的这一节将介绍一个很有用的命令——netstat,使用netstat命令可以监控TCP/IP网络配置和工作状况。它可以显示内核路由表、
活动的网络状态以及每个网络接口的有用的统计数字。欲得详情请阅man page。
-a 显示所有Internet连接的有关信息,包括那些正在监听的信息
-i 显示所有网络设备的统计数字
-c 不断显示网络的更新状态。这个参数使用netstat每秒一次的输出网络状态
列表,直到该程序被中断
-n 以数字/原始形式显示远程地址、本地地址和端口信息,而不是解析主机名
和服务器
-o 显示计数器的终止时间和每个网络连接的回退(back off)情况
-r 显示内核路由表
-t 只显示TCP socket信息,包括正在监听的信息
-u 只显示UDP socket信息
-v 显示netstat版本信息
-w 显示原始(raw)socket信息
-x 显示UNIX域socket信息