配置网络接口
命令语法格式
ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address …
命令描述
命令ifconfig用于配置内核驻留网络接口。在引导时,它用于根据需要设置接口。 之后,通常只在调试或需要系统调整时才需要它。
如果没有给出参数,ifconfig将显示当前活动接口的状态。如果给出单个接口参数,则仅显示给定接口的状态;如果给出单个-a参数,它将显示所有接口的状态,甚至是那些已关闭的接口。 否则,它配置一个接口。
地址族
如果接口名称后面的第一个参数被识别为支持的地址族名,则该地址族用于解码和显示所有协议地址。 当前支持的地址族包括inet(TCP/IP,默认),inet6(IPv6),ax25(AMPR分组无线电),ddp(Appletalk Phase 2),ipx(Novell IPX),netrom(AMPR分组无线电)。 作为IPv4点分十进制表示法中的每个部分提供的所有数字可以是十进制、八进制、十六进制,如ISO C标准中所指定的(即,前导0x或0X表示十六进制;否则,前导’0’表示八进制;否则,数字被解释为十进制)。十六进制和八进制数字的使用不符合RFC,因此不鼓励使用它。
命令支持的选项及含义
-a
显示当前可用的所有接口,即使已关闭
-s
显示一个短名单(如netstat -i)
-v
对于某些错误条件更加冗长的信息。
interface
接口的名称。 这通常是“驱动程序名”后跟“单元号”的形式,例如第一个以太网接口的eth0。如果您的内核支持别名接口,则可以使用像eth0:0这样语法为eth0指定第一个别名。您可以使用它们分配更多地址。要删除别名接口,请使用ifconfig eth0:0 down。注意:对于每个范围(即具有地址/网络掩码组合的相同网络),如果删除第一个(主),则删除所有别名。
up
该标志使接口被激活。 如果为接口分配地址,则隐式地激活该接口;通过在别名后附加“-”(例如eth0:0-),可以在使用别名接口时抑制此行为。 使用IPv4地址0.0.0.0时也会被禁止,因为内核将使用它来隐式删除别名接口。
down
此标志导致此接口的驱动程序关闭。
[-]arp
在此接口上启用或禁用ARP协议。
[-]promisc
启用或禁用接口的混杂模式。 如果选中,则接口将接收网络上的所有数据包。
[-]allmulti
启用或禁用全组播模式。 如果选中,则接口将接收网络上的所有组播数据包。
mtu N
此参数设置接口的最大传输单元(MTU)。
dstaddr addr
设置点对点链路(例如PPP)的远程IP地址。 此关键字现已过时;请改用pointopoint关键字。
netmask addr
设置此接口的IP网络掩码。 此值默认为通常的A,B,C类网络掩码(从接口IP地址派生),但可以设置为任何值。
add addr/prefixlen
添加IPv6地址到接口。
del addr/prefixlen
从接口中删除IPv6地址。
tunnel ::aa.bb.cc.dd
创建新的SIT(IPv6-in-IPv4)设备,隧道连接到给定目标。
irq addr
设置此设备使用的中断线。 并非所有设备都可以动态更改其IRQ设置。
io_addr addr
在此设备的I/O空间中设置起始地址。
mem_start addr
设置此设备使用的共享内存的起始地址。 只有少数设备需要这个。
media type
设置设备使用的物理端口或介质类型。 并非所有设备都可以更改此设置,并且可以更改它们支持的任何值。 典型type值为10base2(薄型以太网),10baseT(双绞线10Mbps以太网),AUI(外部收发器)等。自动特殊介质类型可用于告诉驾驶员自动感应媒体。 同样,并非所有驱动都能做到这一点。
[-]broadcast [addr]
如果给出了address参数,请设置此接口的协议广播地址。 否则,设置(或清除)接口的IFF_BROADCAST标志。
[-]pointopoint [addr]
此关键字启用接口的点对点模式,这意味着它是两台计算机之间的直接链接,没有其他人在监听它。
如果还给出了address参数,请设置链接另一端的协议地址,就像过时的dstaddr关键字一样。 否则,设置或清除接口的IFF_POINTOPOINT标志。
hw class address
如果设备驱动程序支持此操作,请设置此接口的硬件地址。关键字后面必须跟“硬件类名”和“硬件地址”的可打印ASCII等效项。 目前支持的硬件类(class)包括ether(Ethernet),ax25(AMPR AX.25),ARCnet,netrom(AMPR NET/ROM)。
multicast
在接口上设置组播标志。 通常不需要这样做,因为驱动程序自己正确设置了标志。
address
要分配给此接口的IP地址。
txqueuelen length
设置设备传输队列的长度。 对于具有高延迟的较慢设备(调制解调器链路,ISDN),将此值设置为较小值非常有用,以防止快速批量传输过多地影响telnet等交互式流量。
注意事项
从内核版本2.2开始,别名接口不再有明确的接口统计信息。为原始地址打印的统计信息与同一设备上的所有别名地址共享。如果需要按地址统计,则应使用iptables(8)命令为地址添加显式统计规则。
由于net-tools 1.60-4的ifconfig是打印字节计数器和人类可读的IEC 60027-2单位计数器。所以1KiB是2^10字节。注意,这些数字被截断为一个十进制数(如果你认为0.1 PiB是112.589.990.684.262字节,可能会出现相当大的误差 🙂
以太网设备驱动程序的中断问题因EAGAIN(SIOCSIIFLAGS:资源暂时不可用)而失败,很可能是中断冲突。有关更多信息,请参见 http://www.scyld.com/expert/irq-conflict.html
命令ifconfig使用ioctl访问方法获取完整的地址信息,这将硬件地址限制为8个字节。由于Infiniband硬件地址有20个字节,因此只能正确显示前8个字节。请使用iproute2包中的ip link命令显示链接层信息,包括硬件地址。
虽然将显示appletalk DDP和IPX地址,但此命令无法更改它们。
相关文件
/proc/net/dev
网络设备的统计信息。
/proc/net/if_inet6
网络接口设备的IP6地址信息。
相关手册
route(8), netstat(8), arp(8), rarp(8), iptables(8), ifup(8), interfaces(5).
http://physics.nist.gov/cuu/Units/binary.html – Prefixes for binary multiples
参考文献
- man 8 ifconfig, Version 1.60+git20161116.90da8a0-2
更新日志
- 10/25/2018 创建文章