每天一个 Linux 命令(2)—— ifconfig

823 阅读3分钟

这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战

命令简介

ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。

语法格式


ifconfig [-a] [interface]

ifconfig interface [aftype] [address] [keys [args]]

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

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

参数

  • up:启动指定网络设备/网卡;

  • down:关闭指定网络设备/网卡;该参数可以有效地阻止通过指定接口的 IP 信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除;

  • arp:设置指定网卡是否支持 ARP 协议;

  • -promisc:设置是否支持网卡的 promiscuous 模式,如果选择此参数,网卡将接收网络中发给它所有的数据包;

  • -allmulti:设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包;

  • -a:显示全部接口信息;

  • -s:显示摘要信息(类似于 netstat -i);

  • add:给指定网卡配置 IPv6 地址;

  • del:删除指定网卡的 IPv6 地址;

  • mtu<字节数>:设置网卡的最大传输单(bytes);

  • netmask<子网掩码>:设置网卡的子网掩码。掩码可以是有前缀 0x 的 32 位十六进制数,也可以是用点分开的 4 个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码;

  • tunel:建立隧道;

  • dstaddr:设定一个远端地址,建立点对点通信;

  • -broadcast<地址>:为指定网卡设置广播协议;

  • -pointtopoint<地址>:为网卡设置点对点通讯协议;

  • multicast:为网卡设置组播标志;

  • address:为网卡设置 IPv4地址;

  • txqueuelen<长度>:为网卡设置传输列队的长度;

应用实例

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

ifconfig -a

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

ifconfig eth1 192.168.90.200

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

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

参考文档