ifconfig命令
ifconfig
代表interface configuration
,其用于查看和更改系统上网络接口的配置。
语法
代码语言:javascript复制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
必须是介于0
和4294967295
之间的整数。mtu N
: 该参数用于设置接口的最大传输单元,该设置用于限制接口传输的最大数据包大小。dstaddr address
: 为点到点链路(如PPP
)设置远程IP
地址,此关键字现在已过时,请改用pointopoint
关键字。netmask address
: 设置接口的IP
网络掩码,该值默认为通常的A
、B
或C
类网络掩码(从接口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)
示例
显示网络设备信息。
代码语言:javascript复制ifconfig
启动关闭指定网卡。
代码语言:javascript复制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
每日一题
代码语言:javascript复制https://github.com/WindrunnerMax/EveryDay
参考
代码语言:javascript复制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/