ifconfig命令

ifconfig代表interface configuration,其用于查看和更改系统上网络接口的配置。

语法

ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
  [add <address>[/<prefixlen>]]
  [del <address>[/<prefixlen>]]
  [[-]broadcast [<address>]]  [[-]pointopoint [<address>]]
  [netmask <address>]  [dstaddr <address>]  [tunnel <address>]
  [outfill <NN>] [keepalive <NN>]
  [hw <HW> <address>]  [mtu <NN>]
  [[-]trailers]  [[-]arp]  [[-]allmulti]
  [multicast]  [[-]promisc]
  [mem_start <NN>]  [io_addr <NN>]  [irq <NN>]  [media <type>]
  [txqueuelen <NN>]
  [[-]dynamic]
  [up|down] ...

参数

  • (none), -a: 显示所有网络接口的信息,即使它们已关闭。
  • -s: 以与命令netstat -i相同的格式显示简短列表。
  • -v: 详细模式,显示某些错误情况的详细信息。
  • interface: 接口名称,通常是驱动程序名称,后跟一个单元号,例如第一个以太网接口的eth0,如果内核支持别名接口,则可以为eth0的第一个别名使用eth0:0指定它们,可以使用它们来分配第二个地址,要删除别名接口,可以使用ifconfig eth0:0 down,注意如果删除第一个(主接口),则对于每个范围即具有地址/网络掩码组合的同一网络,所有别名都将被删除。
  • up: 该标志导致接口被激活,如果为接口分配了地址,则隐式指定。
  • down: 该标志导致该接口的驱动程序被关闭。
  • [-]arp: 在此接口上启用(指定了-前缀则禁用)ARP协议的使用。
  • [-]promisc: 启用(指定了-前缀则禁用)接口的混杂模式,如果启用混杂模式,接口将接收网络上的所有数据包。
  • [-]allmulti: 启用(指定了-前缀则禁用)全组播模式,启用组播模式后,该接口将接收网络上所有的组播报文。
  • metric N: 此参数设置接口度量,接口使用该度量做出路由决策,N必须是介于04294967295之间的整数。
  • mtu N: 该参数用于设置接口的最大传输单元,该设置用于限制接口传输的最大数据包大小。
  • dstaddr address: 为点到点链路(如PPP)设置远程IP地址,此关键字现在已过时,请改用pointopoint关键字。
  • netmask address: 设置接口的IP网络掩码,该值默认为通常的ABC类网络掩码(从接口IP地址派生),但它可以设置为任何值。
  • add address/prefixlen: 在接口上添加IPv6地址。
  • del address/prefixlen: 从接口移除IPv6地址。
  • tunnel aa.bb.cc.dd: 创建一个新的SIT (IPv6-in-IPv4)设备,通过隧道传送到给定的目的地。
  • irq address: 设置此设备使用的中断线,并非所有设备都可以动态更改其IRQ设置。
  • io_addr address: 在此设备的I/O空间中设置起始地址。
  • mem_start address: 设置此设备使用的共享内存的起始地址,仅少数设备需要此功能。
  • media type: 设置设备要使用的物理端口或介质类型,并非所有设备都可以更改此设置,并且某些设备可以更改其支持的值,类型的典型值是10base2(细缆网)、10baseT(双绞线10 Mbps以太网)、AUI外部收发器等,auto的特殊介质类型告诉驱动程序自动感知介质,同样并非所有驱动程序都可以执行此操作。
  • [-]broadcast [address]: 如果指定了地址参数,则将为此接口设置协议广播地址,否则它将设置(指定了-前缀则清除)接口的IFF_BROADCAST标志。
  • [-]pointopoint [address]: 这个关键字启用了接口的点对点模式,这意味着它是两台机器之间的直接链接,没有其他人监听它,如果还提供了address参数,请设置链接另一端的协议地址,就像过时的dstaddr关键字一样,否则,设置或清除接口的IFF POINTOPOINT标志。
  • hw class address: 如果设备驱动程序支持此操作,则设置此接口的硬件地址,关键字之后必须是硬件类的名称以及与硬件地址等效的可打印ASCII。当前支持的硬件类别包括以太ether (Ethernet)ax25 (AMPR AX.25)ARCnet and netrom (AMPR NET/ROM)
  • multicast: 在接口上设置多播标志,由于驱动程序自己会正确设置该标志,因此通常不需要这样做。
  • address: 分配给该接口的IP地址。
  • txqueuelen length: 设置设备发送队列的长度,对于具有较高延迟的较慢设备(例如通过调制解调器或ISDN进行的连接)将其设置为较小的值非常有用,以防止快速的批量传输过多地干扰诸如telnet之类的交互式通信。

硬体类型

loop (Local Loopback)slip (Serial Line IP)cslip (VJ Serial Line IP)slip6 (6-bit Serial Line IP)cslip6 (VJ 6-bit Serial Line IP)adaptive (Adaptive Serial Line IP)ash (Ash)ether (Ethernet)ax25 (AMPR AX.25)netrom (AMPR NET/ROM)rose (AMPR ROSE)tunnel (IPIP Tunnel)ppp (Point-to-Point Protocol)hdlc ((Cisco)-HDLC)lapb (LAPB)arcnet (ARCnet)dlci (Frame Relay DLCI)frad (Frame Relay Access Device)sit (IPv6-in-IPv4)fddi (Fiber Distributed Data Interface)hippi (HIPPI)irda (IrLAP)ec (Econet)x25 (generic X.25)eui64 (Generic EUI-64)

地址族

unix (UNIX Domain)inet (DARPA Internet)inet6 (IPv6)ax25 (AMPR AX.25)netrom (AMPR NET/ROM)rose (AMPR ROSE)ipx (Novell IPX)ddp (Appletalk DDP)ec (Econet)ash (Ash)x25 (CCITT X.25)

示例

显示网络设备信息。

ifconfig

启动关闭指定网卡。

ifconfig eth0 down
ifconfig eth0 up

为网卡配置和删除IPv6地址。

ifconfig eth0 add 33ffe:3240:800:1005::2/ 64
ifconfig eth0 del 33ffe:3240:800:1005::2/ 64

修改MAC地址,需要首先关闭网卡并修改MAC地址,之后再开启网卡。

ifconfig eth1 hw ether 00:1D:1C:1D:1E
ifconfig eth1 up

为网卡配置IP地址,并加上子掩码以及广播地址。

ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255

启用和关闭ARP协议。

ifconfig eth0 arp
ifconfig eth0 -arp

设置最大传输单元MTU

ifconfig eth0 mtu 1500

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.computerhope.com/unix/uifconfi.htm https://www.runoob.com/linux/linux-comm-ifconfig.html https://www.geeksforgeeks.org/ifconfig-command-in-linux-with-examples/