ifconfig

查询与配置网络接口


语法格式

ifconfig [-a] [interface]
ifconfig interface [aftype] [address] [keys [args]]
ifconfig [--help]

命令简介

ifconfig命令用于配置驻留在系统内核的网络接口程序,以便在系统引导期间设置网络接口。之后,仅当在系统调试或性能调整时才需要修改网络接口的设置。

第一种语法格式主要用于查询网络接口的当前配置与工作状态。如果未指定任何选项与参数,ifconfig将会显示当前活动网络接口的信息。如果给定了网络接口参数interface,仅显示指定网络接口的当前状态。如果指定了“-a”选项,ifconfig将会显示所有网络接口的状态信息,包括已关闭的网络接口。

第二种语法格式主要用于配置网络接口。其中,interface是网络接口的名字。网络接口名通常是驱动程序的名字,后面跟一个网络接口设备的编号。例如,for example eth0表示第一个以太网接口设备。aftype是地址类型(即网络协议类型),如inet(默认的IPv4)或inet6(IPv6)等。address是分配给网络接口的IP地址。其中,IPv4地址由4组十进制数值组成,中间加句点“.”分隔符。keys是一个或多个关键字,详见“关键字与参数”一节的说明,args是关键字选用的参数。

注意,ifconfig命令将会逐渐隐退,替换的命令是“ip addr”与“ip link”。此外,当需要查询网络统计数据时,可以使用“ip -s link”命令。

命令选项

-a  显示所有网络接口的配置与工作状态信息,包括已关闭的网络接口。

--help  显示命令的语法格式等帮助信息,然后退出。

关键字与参数

add addr/prefixlen  设置网络接口的IPv6地址。

[-]allmulti  启用或禁用全广播模式。如果启用了全广播模式,网络接口能够收到网络中的所有广播分组数据。注意,在关键字之前增加连字符“-”前缀,表示禁用或清除之意,下同。

[-]arp  在当前网络接口上启用或禁用ARP地址解析协议,实现网络地址与物理地址间的映射。如果禁用ARP,ifconfig命令的输出信息中将存在一个NOARP标志。

[-]broadcast [addr]  如果指定了addr参数,可用于设置网络接口的广播地址,同时设置网络接口的BROADCAST标志。否则,设置或清除网络接口的IFF_BROADCAST标志。如果未指定这个关键字,默认的广播地址是网号不变,主机地址部分全为1的IP地址。

del addr/prefixlen  删除网络接口的IPv6地址。

down  关闭网络接口,同时把网络接口的状态设置为DOWN。注意,选用这个关键字时也会自动删除使用这个网络接口的所有路由表项。

dstaddr addr  设置PPP协议远程主机的IP地址。关键字dstaddr即将废弃,可以使用pointopoint取而代之。

hw class addr  如果设备驱动程序支持,可以设置网络接口的硬件地址。其中,class是网络的类型,如ether(以太网)等,addr是用ASCII字符表示的硬件地址,如以太网的MAC地址。

io_addr addr  设置网络接口设备I/O空间的起始地址。

irq addr  设置网络接口使用的中断。注意,并非所有的网络接口设备都能够动态修改其IRQ设置。

media type  设置网络接口设备使用的介质类型。注意,并非所有的网络接口设备都能修改这个设置。典型的介质类型是10baseT(双绞线10Mbps以太网)等,通常可由驱动程序自动检测介质类型,当然也可以使用特殊的介质类型auto,其效果是一样的。

mem_start addr  设置网络接口设备使用的共享内存起始地址。通常,很少网络接口设备需要设置共享内存起始地址。

metric n  设置路由表项的度量值,默认的度量值为0。路由信息协议(RIP)使用此度量值建立路由表。GNU/Linux不支持这个参数。

mtu N  设置网络接口的最大传输单位(Maximum Transmission Unit,MTU),即一次数据传输最多能够处理的字符数量,这个数值也限制了分组数据的最大尺寸。不同类型的网络接口,MTU的上限值也不相同。例如,Ethernet默认的MTU数值为1500,IEEE 802.3接口MTU数值为1492。

multicast  设置网络接口的广播标志。通常,驱动程序自会正确地设置,不需要用户手工设置。

netmask addr  指定网络接口的IP子网掩码。通常,这是一个A类、B类或C类的子网掩码,但可以任意设置。子网掩码是一个32位的二进制数值,其中1表示网络地址部分,0表示主机地址部分。可以采用8个十六进制数值,加上0x或0X前缀;也可以采用4组十进制数值,中间加句点“.”分隔符。注意,addr至少应当包括标准的网络地址部分。

[-]pointopoint [addr]  启用网络接口的点对点连接模式,意味着本地与远程主机网络接口的直接连接。如果指定了地址参数addr,表示设置链路另一端的IP地址。否则,设置或清除网络接口的IFF_POINTOPOINT标志。

[-]promisc  在当前网络接口上启用或禁用混杂工作模式。如果启用了混杂模式,网络接口能够收到网络中的所有分组数据,不管分组数据的最终目的是否是本地主机。基于这一技术,网络管理员能够利用分组数据过滤器或探测仪分析网络数据,从中找出网络问题。tcpdump等工具就是在此基础上实现的。这个关键字也会同时设置网络接口的PROMISC标志。

txqueuelen length  设置网络接口设备传输队列的长度。当网络速度较慢时,可以设置一个较小的值,防止快速的批量传输干扰网络应用(如telnet)的交互会话。

up  启用网络接口,同时把相应的网络接口设置为UP和RUNNING状态。当利用ifconfig命令为网络接口分配IP地址时,也蕴含着启用相应的网络接口。在使用关键字down临时关闭一个网络接口之后,也可以使用关键字up重新启用网络接口。

应用实例

1. 查询系统当前配置的所有网络接口及其设置。

$ ifconfig -a

2. 设置第二个网络接口的IP地址,子网掩码与广播地址采用默认设置。

# ifconfig eth1 192.168.90.200
#

3. 删除已设置的IPv6地址,从而提高网络接口的性能。

# ifconfig eth0 del fe80::20f:feff:fe22:29d2/64
#

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z