文章目录
前言
大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第55篇文章。
专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业,阿里云社区专家博主😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
一. ifconfig 命令介绍
ifconfig命令是Linux和Unix操作系统中用于配置和显示网络接口信息的命令。该命令可用于查看、配置、启用和禁用网络接口,以及设置网络接口的IP地址、子网掩码、广播地址等等。
二. 语法格式及常用选项
依据惯例,我们还是先查看帮助,使用 man ifconfig
IFCONFIG(8) Linux Programmer's Manual IFCONFIG(8)
NAME
ifconfig - 配置网络接口
总览
ifconfig[接口]ifconfig 接口 [aftype] options | address ...
描述
ifconfig 用于配置常驻内核的网络接口。它用于在引导成功时设定网络接口。 此后,只在需要调试及系统调整时才使用。
如没有给出参数, ifconfig 显示当前有效接口的状态。如给定单个 接口 作为参数,它只显示给出的那个接口的状态; 如果给出一个 -a
参数,它会显示所有接口的状态,包括那些停用的接口。 否则就对一个接口进行配置。
地址族
如果跟在接口名称后的第一个参数是它支持地址族的名称, 那么这个地址族被用于翻译和显示所有的协议地址。 当前支持的地址族包括 inet ( TCP/IP
,缺省), inet6 ( IPv6 ) , ax25 ( AMPR 无线分组 ), ddp ( Appletalk 2 代), ipx ( Novell IPX ) 和 netrom ( AMPR 无线分组)。
选项
接口 接口名称。通常是一个后跟单元号的驱动设备名, 例如第一个以太接口 eth0 。
up 此选项激活接口。如果给接口声明了地址,等于隐含声明了这个选项。
down 此选项使接口驱动设备关闭。
[-]arp 允许或禁止在接口上使用 ARP 协议。
[-]promisc
允许或禁止接口置于混杂模式。 如果选用,则接口可以接收网络上的所有分组。
[-]allmulti
允许或禁止 组播模式(all-multicast) 。 如果选用,则接口可以接收网络上的所有组播分组。
metric N
将接口度量值设置为整数 N。 (译注:度量值表示在这个路径上发送一个分组的成本,就是通过多少个路由)
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 (在 IPv4 中的 IPv6 )设备,为给定的目的地址建立通道。
irq addr
为接口设定所用的中断值。 并不是所有的设备都能动态更改自己的中断值。
io_addr addr
为接口设定起始输入/输出地址。
mem_start addr
设定接口所用的共享内存起始地址。只有少数设备需要。
media type
设定接口所用的物理端口或介质类型。并不是所有设备都会 更改这项值,而且它们支持的类型可能并相同。典型的 type 是 10base2
(细缆以太网), 10baseT (双绞线 10Mbps 以太网), AUI (外部收发单元接口)等等。介质类型为 auto 则用于让设备自动判断介质。
同样,并非所有设备都可以这样工作。
[-]broadcast [addr]
如果给出了地址参数, 则可以为接口设定该协议的广播地址。 否则,为接口设置(或清除) IFF_BROADCAST 标志。
[-]pointopoint [addr]
此选项允许接口置为 点到点 模式,这种模式在两台主机间建立一条无人可以监听的直接链路。
如果还给出了地址参数,则设定链路另一方的协议地址,正如废弃的 dstaddr 选项的功能。否则,为接口设置(或清除) IFF_POINTOPOINT 标志。
hw class address
如接口驱动程序支持,则设定接口的硬件地址。 此选项必须后跟硬件的类型名称和硬件地址等价的可打印 ASCII 字符。当前支持的硬件类型包括
ether (以太网), ax25 (AMPR AX.25), ARCnet 和 netrom (AMPR NET/ROM)。
multicast
为接口设定组播标志。 通常无须用此选项因为接口本身会正确设定此标志。
address
为接口分配的 IP 地址。
txqueuelen length
为接口设定传输队列的长度。可以为具有高时延的低速接口设定 较小值以避免在象 telnet 这样烦人的交互通信时大量高速的传输。
为了更直观一些,我们把常用的参数用表格显示:
参数描述ifconfig不带任何参数的ifconfig命令将显示所有活动的网络接口及其配置信息。ifconfig 显示指定网络接口的配置信息,例如ifconfig eth0将显示eth0网络接口的配置信息。ifconfig up启用指定的网络接口,例如ifconfig eth0 up将启用eth0网络接口。ifconfig down禁用指定的网络接口,例如ifconfig eth0 down将禁用eth0网络接口。ifconfig <IP_address>设置指定网络接口的IP地址,例如ifconfig eth0 192.168.1.100将设置eth0网络接口的IP地址为192.168.1.100。ifconfig netmask <subnet_mask>设置指定网络接口的子网掩码,例如ifconfig eth0 netmask 255.255.255.0将设置eth0网络接口的子网掩码为255.255.255.0。ifconfig broadcast <broadcast_address>设置指定网络接口的广播地址,例如ifconfig eth0 broadcast 192.168.1.255将设置eth0网络接口的广播地址为192.168.1.255。ifconfig -a显示所有网络接口的配置信息,包括未启用的接口。
三. 参考案例
3.1 显示网络设备信息
此时无需加任何参数,代码如下:
[root@mufeng ~]# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.55 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fee5:167 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e5:01:67 txqueuelen 1000(Ethernet)
RX packets 361152 bytes 493086748(470.2 MiB)
RX errors 0 dropped 327 overruns 0 frame 0
TX packets 30315 bytes 12808447(12.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000(Local Loopback)
RX packets 52188 bytes 3196155(3.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 52188 bytes 3196155(3.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
注释:
- ens32 表示网卡
- UP 表示开启状态
- Running 代表网卡的网线被连上
- MULTICAST 表示支持组播
- mut 1500 表示最大传输单元为1500个字节
- inet 后面跟的是IP地址
- broadcast(广播地址):172.16.143.255。
- netmask(掩码地址):255.255.240.0。
- RX表示接收数据包的情况,TX表示发送数据包的情况。
- lo表示主机的回环网卡,是一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现,子网掩码为8位,表示本机。
3.2 启动和关闭指定的网卡
启动用up, 关闭用down
[root@mufenggrow ~]# ifconfig ens32 up[root@mufenggrow ~]# ifconfig ens32 down[root@mufenggrow ~]# ping www.baidu.com
ping: www.baidu.com: 未知的名称或服务
从下图中可以看到如果关闭了网卡,你使用ifconfig就无法获网卡信息了:
3.3 对指定的网卡设备执行修改IP地址操作
修改临时IP,可以使用ifconfig命令,代码如下:
[root@mufenggrow ~]# ifconfig |grep inet
inet 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::d524:3f3e:45ed:79c3 prefixlen 64 scopeid 0x20<link>
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
[root@mufenggrow ~]# ifconfig ens32 19.168.1.44 netmask 255.255.255.0[root@mufenggrow ~]# ifconfig |grep inet
inet 19.168.1.44 netmask 255.255.255.0 broadcast 19.168.1.255
inet6 fe80::d524:3f3e:45ed:79c3 prefixlen 64 scopeid 0x20<link>
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
3.4 启动和关闭ARP协议
什么是ARP协议?
ARP(Address Resolution Protocol)协议是用于将网络层地址(如IP地址)解析为数据链路层地址(如MAC地址)的协议。它的作用是在同一局域网中将目标IP地址映射为对应的MAC地址,以便实现数据包的正确传递。
当一个主机需要向另一个主机发送数据时,它需要知道目标主机的MAC地址,而只知道目标主机的IP地址是不够的。
此时,源主机会在本地的ARP高速缓存中查找目标IP地址对应的MAC地址,如果找到了,则直接将数据包发送到目标主机的MAC地址;如果没有找到,则发送一个ARP请求广播,请求所有主机告知目标主机的MAC地址。当目标主机接收到ARP请求后,会返回一个包含自己MAC地址的ARP响应包,源主机再将数据包发送到目标主机的MAC地址。
ARP协议是一个非常基础的网络协议,它在局域网内广泛应用,可以使不同的设备在同一个局域网内正常通信。
开启ARP:
ifconfig ens32 arp
关闭ARP:
ifconfig ens32 -arp
这个命令将会关闭ens32接口的ARP功能,使其无法在局域网上解析其他设备的IP地址.需要注意的是,ARP是一种非常重要的网络协议,它用来在局域网上将IP地址映射到MAC地址。在大多数情况下,我们不建议关闭ARP功能,除非你有特殊的需求或者需要进行某些网络测试。
3.5 使用ifconfig添加网卡
- 查看系统中存在的网卡:
ifconfig-a
- 添加一块网卡及网络
[root@mufenggrow ~]# ifconfig ens32:1 192.168.1.100 netmask 255.255.255.0[root@mufenggrow ~]# ifconfig -a
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 19.168.1.44 netmask 255.255.255.0 broadcast 19.168.1.255
inet6 fe80::d524:3f3e:45ed:79c3 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:07:39:cc txqueuelen 1000(Ethernet)
RX packets 661445 bytes 959373325(914.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 177831 bytes 12962207(12.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens32:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:07:39:cc txqueuelen 1000(Ethernet)
总结
ifcofnig 命令在日常工作中,应用的比较广泛,一定要认真学习,记熟记牢常用参数。
💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
💕 博客主页:mufeng.blog.csdn.net
💕 本文由沐风晓月原创,首发于CSDN博客
💕 曾国藩说: 一书未完,不读其他
版权归原作者 我是沐风晓月 所有, 如有侵权,请联系我们删除。