学习ifconfig实战技巧,成为网络管理高手

news2024/9/23 15:52:03

文章目录

  • 前言
  • 一. ifconfig 命令介绍
  • 二. 语法格式及常用选项
  • 三. 参考案例
    • 3.1 显示网络设备信息
    • 3.2 启动和关闭指定的网卡
    • 3.3 对指定的网卡设备执行修改IP地址操作
    • 3.4 启动和关闭ARP协议
    • 3.5 使用ifconfig添加网卡
  • 总结

在这里插入图片描述

前言

大家好,又见面了,我是沐风晓月,本文是专栏【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添加网卡

  1. 查看系统中存在的网卡:
ifconfig -a

  1. 添加一块网卡及网络
[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博客
💕 曾国藩说: 一书未完,不读其他

请添加图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/382939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Neovim for Rust

之前学习 Rust 一直使用的都是 VScode rust-analyzer&#xff0c;最近看到有网友安利 Neovim 于是就试了试&#xff0c;发现确实美观&#xff0c;好用&#xff0c;而且内存占用比较小。我个人很喜欢&#xff0c;也推荐给给大家。 前提&#xff1a;得有个代理&#xff0c;不然大…

一个自学自动驾驶(决策规划控制方向)的研究生学习资料总结(附相关资料的链接)

项目仓库 欢迎访问我的Github主页 项目名称说明chhCpp学习C仓库chhRobotics学习自动驾驶、控制理论相关仓库(python实现)chhRobotics_CPP学习自动驾驶、控制理论相关仓库(c实现)chhML 、chh-MachineLearning学习机器学习仓库chhRL学习强化学习仓库chhTricks存放一些有意思的t…

Unity烘焙常见问题

本文首发于公众号洪流学堂&#xff0c;未经允许&#xff0c;不可转载。 Unity中光影烘焙经常会遇到很多莫名其妙的问题&#xff0c;大智总结了一个问题解决手册&#xff0c;本文是比较常见的一些问题&#xff0c;还有一些不那么常见的问题&#xff0c;《手册全文pdf》获取方法&…

【2023蓝桥杯】2018年第九届C/C++A组真题(解析笔记)

目录 ♥【分数】循环累乘/快速幂运算/最大公因数 ♥【星期一】闰年/周期循环 ♥【乘积尾零】遍历/取余/取整 ♥【第几个幸运数】 遍历 ♥【打印图形】dfs填空 【航班时间】字符串/思维/时间换算 【三体攻击】差分&#xff01;中等难度 ♥【全球变暖】dfs/连通块计数 *…

Python解题 - CSDN周赛第33期

本期四道题全考过&#xff0c;题解在网上也都搜得到。。。没有想法&#xff0c;顺手水一份题解吧。 第一题&#xff1a;奇偶排序 给定一个存放整数的数组&#xff0c;重新排列数组使得数组左边为奇数&#xff0c;右边为偶数。 输入描述&#xff1a;第一行输入整数n。(1<n<…

深究Java Hibernate框架下的Deserialization

写在前面 Hibernate是一个开源免费的、基于 ORM 技术的 Java 持久化框架。通俗地说&#xff0c;Hibernate 是一个用来连接和操作数据库的 Java 框架&#xff0c;它最大的优点是使用了 ORM 技术。 Hibernate 支持几乎所有主流的关系型数据库&#xff0c;只要在配置文件中设置好…

在 The Sandbox 中以全新的 Rabbids 体验庆祝兔年!

育碧(Ubisoft) 和 The Sandbox 联手为你们带来终极的农历新年体验&#xff01; 穿戴上你们新鲜出炉的 Rabbids 人物化身来参加派对吧&#xff0c;保证震撼整个元宇宙&#xff01;这个全新体验为 Rabbids 人物化身持有者专属。没有获得 Rabbids 人物化身吗&#xff1f;不要担心&…

【Java】P2 基础语法与运算符

Java 基础语法 运算符Java注释方法基本数据类型驼峰命名法Scanner类基本运算除法隐式转换逻辑运算符 以及 短路逻辑运算符三元运算符前言 上一节内容涵盖Java的基础知识&#xff0c;包含安装下载&#xff0c;JDK与JRE等。 链接&#xff1a;https://blog.csdn.net/weixin_43098…

java 多线程处理任务

首先介绍一下我的使用场景我在redis set集合中有几十万个行程id&#xff0c;我需要一个脚本来离线计算每个行程的里程&#xff0c;计算完了之后&#xff0c;将公里数填到mongodb的表中&#xff0c;并且删除set集合中这个元素。我的目录结构我们创建一个maven项目&#xff0c;然…

STM32之PWM

PWMPWM&#xff0c;英文名Pulse Width Modulation&#xff0c;是脉冲宽度调制缩写&#xff0c;它是通过对一系列脉冲的宽度进行调制&#xff0c;等效出所需要的波形&#xff08;包含形状以及幅值&#xff09;&#xff0c;对模拟信号电平进行数字编码&#xff0c;也就是说通过调…

Office 365用户报告

通过ADManager Plus的现成Office 365用户报告&#xff0c;您无需复杂的PowerShell脚本&#xff0c;即可查找Office 365环境中用户的重要信息。使用这些报告&#xff0c;您只需点击几次基于Web的控制台&#xff0c;即可提取Office 365环境中活动和不活动用户数量等信息&#xff…

Celery 分布式任务队列

1. 认识 Celery Celery 是一个 基于 Python 开发的分布式异步消息任务队列&#xff0c;可以实现任务异步处理&#xff0c;制定定时任务等。 异步消息队列&#xff1a;执行异步任务时&#xff0c;会返回一个任务 ID 给你&#xff0c;过一段时间后拿着任务 ID 去取执行结果定时…

进程的介绍

文章目录一.进程的概念1.1概念1.2进程的组成1.2.1 PCB中描述进程的特征二.进程的虚拟地址空间三.进程间的通信引入线程一.进程的概念 1.1概念 百科的介绍: 换句话说,一个跑起来的程序,就是一个进程,也就是在操作系统中运行的exe程序就是一个进程,如下图的进程列表 进程是操…

【女士,房间墙上凿个洞,看你在干嘛~】安全攻防内网渗透-绕过防火墙和安全检测,搭建DNS隐蔽隧道

作者&#xff1a;Eason_LYC 悲观者预言失败&#xff0c;十言九中。 乐观者创造奇迹&#xff0c;一次即可。 一个人的价值&#xff0c;在于他所拥有的。所以可以不学无术&#xff0c;但不能一无所有&#xff01; 技术领域&#xff1a;WEB安全、网络攻防 关注WEB安全、网络攻防。…

Java并发包提供了哪些并发工具类?

第19讲 | Java并发包提供了哪些并发工具类&#xff1f; 通过前面的学习&#xff0c;我们一起回顾了线程、锁等各种并发编程的基本元素&#xff0c;也逐步涉及了 Java 并发包中的部分内容&#xff0c;相信经过前面的热身&#xff0c;我们能够更快地理解 Java 并发包。 今天我要…

SpringBoot集成Swagger3.0(入门) 02

文章目录Swagger3常用配置注解接口测试API信息配置Swagger3 Docket开关&#xff0c;过滤&#xff0c;分组Swagger3常用配置注解 ApiImplicitParams,ApiImplicitParam&#xff1a;Swagger3对参数的描述。 参数名参数值name参数名value参数的具体意义&#xff0c;作用。required参…

mes系统核心业务流程及应用场景介绍

现在许多企业已经开始使用MES系统控制和管理工厂的生产过程&#xff0c;实时监控、诊断和控制生产过程&#xff0c;完成单元集成和系统优化。本文将为大家具体介绍一下MES系统的业务流程。 MES系统业务流程 1、计划调度MES系统承接了ERP订单&#xff0c;开始干预生产。该模块…

kaggle RSNA 比赛过程总结

引言 算算时间&#xff0c;有差不多两年多没在打kaggle了&#xff0c;自20年最后一场后&#xff08;其实之前也就打过两场&#xff0c;一场打铁&#xff0c;一场表格赛是金是银不太记得&#xff0c;当时相当于刺激战场&#xff0c;过拟合lb大赛太刺激了&#xff0c;各种trick只…

毕业设计 基于51单片机的指纹红外密码电子锁

基于51单片机的指纹红外密码电子锁1、项目简介1.1 系统框架1.2 系统功能2、部分电路设计2.1 STC89C52单片机最小系统电路设计2.2 矩阵按键电路电路设计2.3 液晶显示模块电路设计3、部分代码展示3.1 LCD12864显示字符串3.2 串口初始化实物图1、项目简介 选题指导&#xff0c;项…

动态规划|特殊的多行规划|dp[2][] 用两行元素分别记录状态变化

多行规划是我自己整理此类问题时起的名字&#xff0c;如有专属名词&#xff0c;麻烦评论告知 用于处理当动态规划中&#xff0c;需要记录多个值的状态变化时。 376. 摆动序列&#xff08;特殊的自定义二维dp&#xff09; 做惯了一般的动态规划&#xff0c;突然看到这种题目&a…