ifconfig 与 ip addr 命令详解 – 学习/实践

ifconfig 与 ip addr 命令详解 – 学习/实践1.应用场景 主要用于了解学习,掌握使用IP地址相关知识, 如何查看IP信息,以及各个参数代表的含义 2.学习/操作 1.文档阅读 网络协议概论|Laravel学院-不定期分享之ifconfig与ipaddr命令详解 2.整理输出 2.1如何查看机器的IP地址 我们在Linux系统查看IP地址通常有以下两种方式: 1)ifconfig 2)ipaddr

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.应用场景

主要用于了解学习,掌握使用IP地址相关知识,

如何查看IP信息,以及各个参数代表的含义

2.学习/操作

1.文档阅读

网络协议概论 | Laravel 学院 – 不定期分享之 ifconfig 与 ip addr 命令详解

2.整理输出

2.1 如何查看机器的 IP 地址

我们在 Linux 系统查看 IP 地址通常有以下两种方式:

1)ifconfig

ifconfig

2)ip addr

ip addr

注:

如果在 Windows 系统上,查看 IP 地址的命令是 ipconfig

Mac

ifconfig

ifconfig 与 ip addr 命令详解 - 学习/实践

ip addr  — 需要安装工具集

ifconfig 与 ip addr 命令详解 - 学习/实践

 

这两个命令返回的都是机器的网卡信息,其中包含了网卡的 IP 地址,有了 IP 地址才能进行网络通信。

2.2 ifconfig 与 ip addr 源起

要了解这两个命令的区别,需要先看看它们的历史起源:

ifconfig 命令归属于 net-tools 工具集。net-tools 起源于 BSD,自 2001 年起,Linux 社区已经停止对其进行维护。

而 ip 命令归属于 iproute2 工具集,iproute2 旨在取代 net-tools,并提供了一些新功能。

一些 Linux 发行版已经停止支持 net-tools,只支持 iproute2,在这些 Linux 版本中,只能使用 ip addr 命令查看 IP 地址,使用 ifconfig 会提示命名不存在。

net-tools 通过 procfs(/proc) 和 ioctl 系统调用去访问和改变内核网络配置,而 iproute2 则通过 netlink 套接字接口与内核通讯。

net-tools 中工具的名字比较杂乱,而 iproute2 则相对整齐和直观,基本是 ip 命令加后面的子命令:

iproute2命令集

2.3 网卡信息详解

了解了两个命令的区别之后,下面我们以 ip addr 命令输出为例对每个字段的含义进行解释。

网卡名称

我们先看最外层,eth0 和 eth1 都是网卡的名称,其中 eth 是以太网英文名 Ethernet 的缩写,表示数据链路是以太网,之所以有两张网卡是因为一张网卡用于内网通信,一张网卡用于外网通信。

lo 全称是 loopback,又称环回接口,往往会被分配到 127.0.0.1 这个地址。这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。

一般来说,任何主机都至少有上述三个网卡。

然后我们依次看每一行的信息。

网络设备状态标识

首先看第一行信息:

<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000

<BROADCAST,MULTICAST,UP,LOWER_UP> 叫作 net_device flags,即网络设备的状态标识。

UP 表示网卡处于启动的状态;BROADCAST 表示这个网卡有广播地址,可以发送广播包;MULTICAST 表示网卡可以发送多播包;LOWER_UP 表示 L1 是启动的,也就是网线是插着的。

mtu 1500 学院君前面介绍数据链路的时候提到过,表示以太网最大传输单元 MTU 为 1500,这是以太网的默认值。

qdisc 全称是 queueing discipline,中文叫排队规则。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的 qdisc(排队规则)把数据包加入队列。这里 lo 网卡配置的值是 noqueue 不使用队列,其它两个网卡配置的值是 fq_codel,对应的英文全名是 Fair Queueing with Controlled Delay,即具有受控延迟的公平队列,这种情况下每个网络流都有一个队列。

state UP 表示该网卡已启用,group default 表示网卡分组,qlen 1000 表示传输队列长度。

MAC 地址

接下来的每个网卡的第二行显示的是该网卡的 MAC 地址:

link/ether 08:00:27:b9:64:24 brd ff:ff:ff:ff:ff:ff

本地环回接口不需要,所以为空。

MAC 地址是一个网卡的物理地址,具体概念我们在链路层已经详细介绍过,使用十六进制表示,用冒号分隔,总共是六个字节。MAC 地址只能再同一个网段内通信,跨网段通信需要借助 IP 地址,所以接下来就是网卡的 IP 地址。

IPv4 地址

首先是 IPv4 地址:

inet 192.168.10.10/24 brd 192.168.10.255 scope global eth1

valid_lft forever preferred_lft forever

192.168.10.10/24 表示IP地址以及网络地址位数. 192.168.10.255 表示广播地址。

在 IP 地址的后面有个 scope,对于 eth1 这张网卡来讲,是 global,说明这张网卡是可以对外通信的,可以接收来自各个地方的包(如果还有 dynamic 表示该 IP 地址是动态分配的)。

对于 lo 来讲,是 host,说明这张网卡仅仅可以供本机相互通信。

valid_lft 表示该 IP(IPv4) 地址的有效使用期限,这里配置为 forever 表示永久有效;preferred_lft 表示该 IP 地址的首选生存期,也是配置为 forever 表示永久有效。

IPv6 地址

最后是 IPv6 地址:

inet6 fe80::a00:27ff:feb9:6424/64 scope link

valid_lft forever preferred_lft forever

IPv6 地址表示的地址区间非常之大,所以不需要区分网络号和主机号,也就不需要子网掩码了,IPv6 地址也是通过十六进制表示,需要注意的是这里 scope 配置为 link 表示只在此设备生效。其它配置和 IPv4 地址一样,不再赘述。

后续补充

3.问题/补充

TBD

4.参考

网络协议概论 | Laravel 学院 – 不定期分享之 ifconfig 与 ip addr 命令详解

后续补充

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164683.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Set集合详解

    Set集合详解定义:一个set集合不能包含重复的元素,set实现Collection并增加了hashCode和equals方法。set不允许存储值相同的元素,原因为在取值的时候set依靠的是元素本身取值。由于set提供了hashCode和Equals方法,所以set支持比较。set主要实现HashSet,TreeSet,LinkedHashSet(后面会分别以不同的文章介绍着三种实现)set允许存储一个null…

    2022年6月3日
    141
  • 搭建SpringBoot源码环境的正确姿势(避坑必备)

    搭建SpringBoot源码环境的正确姿势(避坑必备)最近打算拉取SpringBoot源码,各种编译报错,各种问题。参考很多网上的教程,仍然是各种错误。最终研究出来了搭建SpringBoot源码环境的正确姿势。SpringBootGithub地址:https://github.com/spring-projects/spring-boot0、环境准备安装maven3.5或者以上版本。安装JDK8或者以上。1、fork到自…

    2022年6月11日
    27
  • ECCV 2020 的对抗相关论文(对抗生成、对抗攻击)

    ECCV 2020 的对抗相关论文(对抗生成、对抗攻击)

    2020年11月14日
    233
  • Linux系统安装,教你安装一个属于自己的Linux系统

    Linux系统安装,教你安装一个属于自己的Linux系统一、Linux的简介1.Linux抽象解释肯定有人和我一样,很早就听说过Linux的这个词,但是又没接触过。然后随手百度一下看着满满的命令惊呆了,不知道从哪里开始学习。这种状况一直维持到我面试的时候,我不怕跟你们说,我拿着写着“熟悉Linux的系统”的简历去面试,其实当时的我都没有了解Linux的到底是什么!我相信大家肯定都用过的Windo…

    2022年6月2日
    40
  • php 开启opcode,php 开启 opcode 测试

    php 开启opcode,php 开启 opcode 测试php 开启 opcode 测试 合理使用 实验环境系统信息 Linuxlocalho localdomain3 10 0 514 10 2 el7 x86 64 1SMPFriMar30 04 05UTC2017x86 64×86 64×86 64GNU Linux 内存 512MCPU1 核 PHP 版本 PHP7 0 21 amp ZendOPcach

    2025年7月3日
    1
  • Hadoop面试题总结「建议收藏」

    Hadoop面试题总结「建议收藏」Hadoop面试题总结1.hadoop的TextInputFormat作用是什么?如何自定义实现?InputFormat会在map操作之前对数据进行两方面的预处理:gitSplits,返回的是InputSplit数组,对数据进行split切片,每一个切片都需要一个map任务去处理。getRecordReader,返回的是RecordReader对象,将每个切片中的数据转换为<k…

    2022年6月16日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号