从0开始学习Linux——网络配置

往期目录:

从0开始学习Linux——简介&安装

从0开始学习Linux——搭建属于自己的Linux虚拟机

从0开始学习Linux——文本编辑器

从0开始学习Linux——Yum工具

从0开始学习Linux——远程连接工具

从0开始学习Linux——文件目录

上一个教程中,我们了解了Linux系统的文件目录架构,本次教程我们将学习Linux系统基础设置中的网络设置。

一、 网络查看

对于网络查看我们可以使用ip命令。

ip addr

或者

ip addr show

现在我们来解析一下上图中的网络信息。

1、lo(Loopback)接口:lo是一个网络接口,它属于回环接口即用于本机与自己通信。

1)”lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000“:<LOOPBACK,UP,LOWER_UP>:表示的是接口的状态标志;LOOPBACK:表示这是回环接口,通常用于内部网络通信;UP表示该接口已经被启用;LOWER_UP:表示物理层状态处于“UP”状态,表明接口工作正常;”mtu 65536: MTU(Maximum Transmission Unit,最大传输单元)“表示最大允许的网络数据包大小,这里是 65536 字节(64KB),通常回环接口的MTU较大;qdisc noqueue是队列调度器(queuing discipline)的设置,表示没有配置排队队列,这通常意味着数据包直接传输,不进行排队;state UNKNOWN:指的是接口的状态,回环接口通常不需要太多的网络状态变化,因此标记为 "UNKNOWN";group default:表示该接口属于默认的接口组;qlen 1000表示接口的队列长度为1000个数据包。

2)”link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00“:link/loopback表示这是一个回环接口,没有硬件物理地址;00:00:00:00:00:00:表示这是回环接口的MAC地址,通常为全0;brd 00:00:00:00:00:00表示这是回环接口的广播地址,也为全0。

3)”inet 127.0.0.1/8 scope host lo  valid_lft forever preferred_lft forever“:inet 127.0.0.1/8是IPv4地址和子网掩码,表示该接口的IP地址是 127.0.0.1(通常被称为“localhost”),它的子网掩码是 /8,意味着子网掩码为 255.0.0.0scope host表示该地址仅在本机范围内有效,不可路由到其他主机;valid_lft forever preferred_lft forever表示该IP地址的有效期永远不会过期。

4)”inet6 ::1/128 scope host valid_lft forever preferred_lft forever“:inet6 ::1/128是IPv6回环地址,它与IPv4的 127.0.0.1 类似,表示本机的IPv6地址;scope host表示该地址仅在本机范围内有效,不可路由到其他主机。

2、ens33接口:en表示它是以太网接口,s33 可能表示网卡的某个硬件标识符,或基于设备的插槽编号等信息。

1)”inet 192.168.33.136/24 brd 192.168.33.255 scope global noprefixroute dynamic ens33
 valid_lft 1631sec preferred_lft 1631sec“:inet 192.168.33.136/24是该接口的IPv4地址即192.168.33.136,它的子网掩码是/24,意味着子网掩码为255.255.255.0;brd 192.168.33.255是该接口的广播地址,通常是该子网的最后一个地址;scope global表示该IP地址是一个全局可路由的地址,可以在网络中访问;noprefixroute表示没有为该地址指定路由前缀;dynamic表示这个IP地址是动态分配的,可能通过DHCP获取;valid_lft 1631sec preferred_lft 1631sec表示该IP地址的有效期和首选期剩余时间分别是1631秒,过期后该地址将不再有效。

上述的ip addr命令查询出两个接口即lo网络接口和ens33网络接口,其中lo是本机自身通信的回环网络接口,而ens33是一个实际的以太网网络接口,它可以和外部计算机进行相互通信。

在 Linux 操作系统中,网络接口是计算机与网络之间进行通信的媒介。网络接口不仅限于物理网络适配器,还可以包括虚拟接口、回环接口等。每个接口都有一个名称,例如 ens33lo 等,表示不同类型的网络接口。

对于网络信息的查看我们也可以使用ifconfig命令。

ifconfig

从上图中的执行结果可以看出系统中没有ifconfig命令,因此我们需要先去安装net-tools(net-tools是网络配置管理工具,该工具提供了多个管理网络的命令,例如ifconfig,Centos7默认不安装该工具,在Centos7中使用的是iproute2工具,该工具提供了ip命令)。

yum install net-tools

安装好net-tools以后我们就可以使用ifconfig命令。

 二、nmtui命令

CentOS 7 默认启用NetWorkManager,它有一个命令行的文本界面工具nmtui,可以用来方便地配置网络接口。

我们可以使用nmtui命令去开启它。

nmtui

执行完这条命令后就会弹出NetWorkManager界面。

在该界面中我们可以去编辑接口(删除、添加、修改等操作)、启用接口、修改主机名等操作。

 三、nmcli命令

nmcli是一个命令行工具,用于管理和配置网络。它提供了更多的控制功能,适合自动化脚本等。

3.1 查看当前网络连接

nmcli connection show

3.2 启用/禁用网络接口

启用接口

nmcli connection up 接口名

停止接口

nmcli connection down 接口名

3.3 配置静态ip地址

上述我们使用ip addr命令查看网络信息的时候可以看到ens33接口的ip地址是DHCP动态分布的,那么ip地址是随时可以变化的,假设我们要搭建Linux集群,ip地址就必须要是固定的,因此我们可以动态ip地址给修改为静态ip地址。

nmcli connection modify 网络接口名 
ipv4.method manual ipv4.addresses ip静态地址 
ipv4.gateway ip网关 
ipv4.dns dns解析地址1、dns解析地址2...

 假设现在我们想要去将ens33接口的ip地址由DHCP动态分配修改为静态地址进行一个固定。

在此之前我们需要先简单了解一下IPV4地址。

 IPv4(Internet Protocol Version 4)是互联网协议中的一种,用于标识网络中的设备。它使用32位二进制地址,通常表示为4个十进制数(每个0-255范围内)之间用点分隔。

IPV4地址分为公网IP和私有IP,顾名思义私有IP只能在内网中使用。

这里我们就以私有IP地址192.168.33.131为例。

1、地址拆分

192.168.33.131这个地址中的每个数字(192、168、33、131)都对应8位二进制数。我们可以将每个十进制数转换成二进制:

  • 192 → 11000000
  • 168 → 10101000
  • 33 → 00100001
  • 131 → 10000011

因此,192.168.33.131 的32位二进制表示是:11000000.10101000.00100001.10000011
2、地址各个数字含义

第一部分:192

  • 所属类别: 192 处于 Class C 地址范围(192.0.0.0 到 223.255.255.255),该类别通常用于小型网络,最多可以支持254个主机。
  • 网络部分: 在Class C地址中,前24位表示网络部分。192 是网络地址的一部分,标识了该IP属于哪个特定的网络。举例来说,所有IP地址为 192.168.33.x 的设备都在同一个子网内。

第二部分:168

  • 网络地址的扩展: 168 是网络部分的一部分,继续区分子网中的不同网络。结合 192168,我们知道这属于 192.168.x.x 网络范围,通常是局域网(LAN)内部使用的私有地址。

第三部分:33

  • 子网中的特定网络: 33 是子网内的更细分部分。在子网掩码为 255.255.255.0(也就是 /24)的情况下,33 是网络的第三个字节,进一步确定了该IP属于 192.168.33.x 的子网。
  • 子网范围: 如果考虑子网掩码为 255.255.255.0,那么 192.168.33.0192.168.33.255 是这个子网的地址范围,33 代表这是 192.168.33.x 子网中的一个具体地址。

第四部分:131

  • 主机地址: 131 是网络中某台设备的地址,标识该地址是 192.168.33.131 子网中的具体主机。对于这个IP地址,131 表示该地址在这个网络中的唯一标识符。
  • 主机可用地址: 在一个子网中,0 通常作为网络地址,255 用作广播地址,其他的数字(1到254)可以分配给具体的设备。131 就是该子网中的一个有效主机地址,可能对应着局域网中的某台计算机、打印机、路由器等设备。 

我们在修改ip地址之前需要先明确我们的Linux的网络模式是NAT模式还是桥接模式。

当然我们在安装Linux系统教程中选择的网络模式是NAT模式,可能我们在公司开发的时候公司会选择桥接模式,不过不影响,因为配置流程大差不差,这里我们以NAT模式为例。

在 NAT模式 下,虚拟机的 IP 地址通常来自 VMware 提供的虚拟子网(通常是vmnet8),宿主机会充当虚拟机与外部网络之间的网关。因此,当你在虚拟机(Linux)中配置网卡的 IP 地址时,需要确保该地址与宿主机的 虚拟网络 子网地址和网关保持一致。

那么我们怎么去查看虚拟子网呢?

首先打开我们的VM虚拟机,然后在头部导航栏中有个编辑下拉菜单,点击该按钮,然后点击下拉菜单里面的”虚拟网络编辑器“,点击后就会有一个模态框弹出用于配置虚拟网络。

当然打开后可能是下面这个页面。

 如果打开是这个页面,我们只需要点击更改设置按钮就可以了,点击后便可以进入到上述的页面。

从上图中我们可以看到有三张虚拟网卡,其中vmnet0用于桥接模式、vmnet1用于仅主机模式、vmnet8用于nat模式,由于我们Linxu系统是NAT模式,因此我们选择vmnat8网卡。

进来之后我们就可以去更改信息或者查看信息,在这里我们可以看到这里分配得到的子网值是33,我们也可以去修改成其它值,这里我们就先不去修改。

我们打开该页面的NAT设置选项。

我们记住里面的子网IP地址、子网掩码、网关信息,待会我们要用到,记住这些信息以后就可以关闭VM的虚拟网络编辑器。

当然对于vmnet1、vmnet8、vmnet0信息也可以直接在我们的windows系统中查看。

现在我们就开始将ens33接口的ip地址进行固定,并且固定为192.168.33.131。

nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.33.131/24 ipv4.gateway 192.168.33.2 ipv4.dns 8.8.8.8,8.8.4.4

配置完成以后我们可以重新启用ens33接口以使该配置生效。

nmcli connection down ens33
nmcli connection down ens33

重启ens33接口以后我们可以使用ip命令查看一下ip是否被修改成功。

ip addr show

这里我们看一下修改以后是否能成功连接到外网。

ping www.baidu.com

 我们可以看到虚拟机能够正常访问外网,那么说明我们刚才的配置是成功的。

3.4 配置DHCP动态获取ip

上述我们讲解了如何固定ens33接口的IP地址,那么假设现在我们还是想让VM给ens33动态分配的话,可以执行下述命令。

nmcli connection modify eth0 ipv4.method ens33

执行完上述命令以后,为了让设置生效,我们可以重启ens33这个接口。

nmcli connection down ens33 && nmcli connection up ens33

四、network配置文件、

上述我们使用nmcli完成了对网络信息的修改,当然我们也可以使用最传统的方式即修改network服务的配置文件也是可以的。

在上一个教程中,我们讲过/etc/sysconfig/network-scripts/目录下就存放在网络接口配置文件。在 CentOS 7 中,每个网络接口都会有一个配置文件,文件命名格式为:ifcfg-接口名,例如我们要配置ens33接口,那么文件名就是ifcfg-ens33。

 我们要去修改ens33接口的话就可以使用文本编辑器去编辑ens33接口配置文件。

vim  /etc/sysconfig/network-scripts/ifcfg-ens33

由于上述我们使用nmcli命令已经修改ens33接口,因此配置文件中的值已经被修改了。该配置文件中主要属性的含义如下所示:

  • BOOTPROTO=none:表示没有使用 DHCP,当然将该值设置为static也是一样的,如果我们要dhcp动态分配,那么就将该选项的值设置为dhcp就可以了。
  • IPADDR:设置静态 IP 地址。
  • NETMASK:设置子网掩码。
  • GATEWAY:设置默认网关。
  • DNS1, DNS2:配置 DNS 服务器。

我们把配置文件修改好以后需要对network服务进行重启。

systemctl restart network

补充:systemctl stop 服务名:表示停止服务;systemctl start 服务名:表示启动服务;systemctl restart 服务名:表示重启服务。

1、ls命令

ls(list)是 Linux 系统中最常用的命令之一,用于列出指定目录中的文件和子目录。

ls [选项] [路径]

具体选项如下所示:

  • -l:长格式(long listing format),显示更多的信息,包括文件的权限、所有者、大小和修改时间等。
  • -a:显示所有文件,包括以点(.)开头的隐藏文件。
  • -h:以人类可读的格式显示文件大小(例如,KB、MB、GB)。
  • -R:递归列出目录及其子目录中的文件。
  • -t:按修改时间排序,最近的文件排在前面。
  • -S:按文件大小排序。

2、ll命令

ll命令其实是ls -l命令的别名。

ll [文件路径]

五 、ip命令查看&管理网络接口

在这里我们学习使用ip命令去管理网络接口。

查看所有网络接口状态

ip link show

启用网络接口

ip link set 接口名 up

禁用网络接口

ip link set 接口名 down

查看网络接口路由表

ip route show

六、主机名

主机名(hostname)是系统的网络标识符之一,通常用于在网络中识别和与其他计算机进行通信。主机名不仅对本地机器有意义,还能影响系统的网络配置、服务标识等多个方面。

主机名(Hostname)是计算机在网络中用来标识自己的名字,通常与域名系统(DNS)或本地网络环境中的其他设备相关联。常见形式如下所示:

  • 静态主机名:系统启动时固定的主机名。
  • 动态主机名:在某些情况下可以改变的主机名,通常由 DHCP 或其他网络配置管理工具来动态分配。
  • FQDN(Fully Qualified Domain Name):完全合格的域名,通常包含主机名和域名。

现在我们知道了什么是主机名,那么我们可以想一下主机名的作用到底是啥?

主机民的作用如下所示:

  • 网络通信:主机名是网络中各计算机通信的标识之一。例如,在通过 SSH 连接远程主机时,通常是通过主机名或 IP 地址来访问。
  • 系统服务标识:许多服务和应用程序(如数据库、Web 服务器等)可能会根据主机名来配置和标识机器。
  • 日志管理:日志文件通常会记录主机名,帮助管理员识别不同主机上的活动。
  • DNS解析:当计算机连接到互联网时,DNS服务器会将主机名解析为 IP 地址。主机名是一个 DNS 解析过程中的关键部分。

6.1 主机名配置文件

/etc/hostname是存储主机名的核心文件。它包含了一个单一的主机名字段,通常就是计算机的静态主机名。

我们可以使用文本编辑器去修改我们的主机名。

/etc/hosts文件用于将主机名映射到 IP 地址,类似于 DNS 的作用。

 我们可以在/etc/hosts文件里面去映射ip地址和主机名。该文件相当于一个通讯录,前面的教程我们学习ssh的时候是通过ip地址进行访问,假设我们在hosts文件里面配置了映射的话,那么我们可以直接使用主机名就可以了,好比与李四给张三打电话,那么李四可以选择直接拨打张三的电话号码,久而久之,李四发现这样很麻烦,于是就将张三的电话号码保存在通讯录里面,那么下次李四给张三打电话就可以直接在通讯录里面找到张三的名字拨出去就可以了,就不用像以前一样要去记住张三的电话号码。

hosts中的ip地址和主机名映射也是很重要的,假如后面我们学习了虚拟机集群搭建,那么不同的虚拟机之间互相通信一方面可以直接使用ip地址,当然也可以根据hosts中的映射关系使用主机名完成通信。

6.2 更改主机名

6.2.1 查看主机名

方式一

 方式二

方式三

6.2.2 修改主机名

方式一

sudo hostnamectl set-hostname 主机名

 上述命令执行后会更新主机名并修改/etc/hostname文件。

方式二

使用文本编辑工具直接去修改/etc/hostname文件。

注意:上述两种方式修改的都是静态主机名。

6.2.3 修改临时主机名

sudo hostname 主机名

注意:该命令执行完成以后修改的主机名只是临时的即会话结束以后主机名还是会使用/etc/hostname文件里面的主机名。

 这节教程的内容就到此结束,更多内容将在后续教程中讲解。

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

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

相关文章

Spring中的 InitializingBean、BeanPostProcessor、@PostConstruct 等初始化动作的执行时机分析

初始化Bean的时序图如下&#xff1a; 小结说明&#xff1a; 1、相同点&#xff1a;InitializingBean 的(afterPropertiesSet方法)、BeanPostProcessor、PostConstruct 都是在bean的属性注入完毕之后才执行&#xff0c;都可以用来进行bean的初始化动作 2、初始化执行顺序优先级…

【初阶数据结构与算法】沉浸式刷题之顺序表练习(顺序表以及双指针两种方法)

文章目录 顺序表练习1.移除数组中指定的元素方法1&#xff08;顺序表&#xff09;方法2&#xff08;双指针&#xff09; 2.删除有序数组中的重复项方法1&#xff08;顺序表&#xff09;方法2&#xff08;双指针&#xff09; 3.双指针练习之合并两个有序数组方法1&#xff08;直…

996引擎 - 活捉NPC

996引擎 - 活捉NPC 引擎触发 - 引擎事件(QF)事件处理模块 GameEvent测试文件参考资料 引擎触发 - 引擎事件(QF) cfg_game_data 配置 ShareNpc1 可以将QM和机器人的触发事件全部转到 QF 引擎触发是通用的,TXT的所有触发转换成小写后在LUA中就可使用,如说明书中缺省可反馈至对接群…

第十三届交通运输研究(上海)论坛┆新发展格局下高铁物流运输模式分析

0. 简介 交通运输研究&#xff08;上海&#xff09;论坛&#xff08;简称为TRF&#xff09;是按照国际会议的组织原则&#xff0c;为综合交通运输领域学者们构建的良好合作交流平台。交通运输研究&#xff08;上海&#xff09;论坛已经成功举办了十二届&#xff0c;凝聚了全国…

Qos基本原理+园区网络

解决网络拥塞最直接就是增加带宽&#xff0c;但是费钱。可以用Qos解决 Qos( Quality of Service) 设置不同流量不同优先级 1. QoS技术概述 延迟 v.s. 延迟抖动 延迟 vs 延迟抖动 延迟&#xff1a;指一个数据包从源端传输到目的端所需要的时间。延迟是一个静态的值&#xff0…

SQL用一个字段查询出数据的交集

出个SQL查询的题吧&#xff0c;有兴趣的可以看看 1、问题 下面有一份数据&#xff08;图1&#xff09;&#xff0c;由两部分组成&#xff1a;分析数据和基准数据 分析数据标识列为1&#xff0c;基准数据标识列为1&#xff0c;两字段0,1互斥 要求&#xff1a;按找出两部分数据…

【后端】javaweb过滤器Filter

过滤器Filter 实现敏感词、只能通过登录进入页面。 原理 当我们使用过滤器时&#xff0c;过滤器会对游览器的请求进行过滤&#xff0c;过滤器可以动态的分为3个部分&#xff0c;1.放行之前的代码&#xff0c;2.放行&#xff0c;3.放行后的代码&#xff0c;这3个部分分别会发挥…

C++初阶(十一)--STL--string类

目录 一、string类的概述 二、string类的创建与初始化 1. 直接初始化 2. 无参初始化 3. 从字符数组初始化 三、string类的基本操作 1.string的定义方式 2.string的插入 3.string的拼接 4.string的删除 5.string的查找 6.string的比较 7.string的大小和容量 8.st…

C#笔记 —— 事件

事件的语法 访问修饰符 event 委托类型 事件名&#xff1b; 例&#xff1a; public event Action myEvent; 事件的使用 事件的使用跟委托基本上一模一样&#xff0c; 1.但是事件不能在类外部直接赋值&#xff0c;只能使用 或 - 添加或删除函数&#xff1b; 2.事件不能在类…

Pandas | 理性判断数据是否存在缺失值的一种方法

理性判断 一般思路进一步思考df[B].explode() 一般思路 tcc.info()上述信息info显示没有缺失值 但是真实的情况还是要根据业务实际分析tcc.isnull().sum() # 和tcc.info()作用和tcc.info() 其实是一样的 进一步思考 在此过程中&#xff0c;我们需要检验是否存在采用别的值来表…

leetcode 382.链表随机结点

1.题目要求: 2.题目代码: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x)…

Java Development Kit (JDK) 详解

什么是 JDK&#xff1f; JDK 是 Java Development Kit 的缩写&#xff0c;是一组用于开发 Java 应用程序的软件开发工具和库的集合。JDK 包含了 Java 运行时环境&#xff08;JRE&#xff09;和 Java 虚拟机&#xff08;JVM&#xff09;&#xff0c;以及一系列开发工具和库。 …

【5.8】指针算法-双指针验证回文串

一、题目 给定一个字符串&#xff0c;验证它是否是回文串&#xff0c; 只考虑字母和数字字符 &#xff0c;可以忽略字母的大小写。 说明&#xff1a; 本题中&#xff0c;我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man , a plan , a canal : Panama " 输…

多功能 Web 应用渗透测试系统

系统简介 本项目命名为SecurityEye&#xff0c;是一款基于 Python-Django 的多功能 Web 应用渗透测试系统&#xff0c;包含漏洞检测、目录识别、端口扫描、指纹识别、域名探测、旁站探测、信息泄露检测、网站权重探测等功能。 项目功能 本系统通过旁站探测、域名探测、、域名…

libstdc++/so.6: version ‘GLIBCXX_3.4.29‘ not found (required by

matlab使用过程中提示库文件版图过低&#xff0c;如图 1. 网上或者其他eda的工具目录里面找一个libstdc.so.6.29文件&#xff0c;里面包含了glibcxx3.4.29 2. 复制文件到/usr/lib64目录下面 3. libstdc.so.6连接到新的库文件 unlink libstdc.so.6 ln -s libstdc.so.6.0.29 l…

有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 基础使用先平方&#xff0c;后排序的思想 class Solution {public int[] sortedSquares(int[] nums) {for(int i0;i<nums.length;i){nums…

flutter 专题七 Flutter面试之渲染流程

一、 简介 Flutter面试中必问的一个面试题就是渲染相关的话题。作为Google在2018年发布的一款跨平台UI框架&#xff0c;使用Dart作为其开发语言&#xff0c;底层使用Skia图形库进行视图渲染&#xff0c;渲染速度和用户体验堪比原生。 二、Flutter渲染流程 总的来说&#xff…

深入理解 TCP 的握手与挥手机制:为何握手 3 次,挥手 4 次?

在网络通信的世界里&#xff0c;TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种非常重要的协议&#xff0c;它确保了数据在网络中的可靠传输。而 TCP 的连接建立&#xff08;握手&#xff09;和连接断开&#xff08;挥手&#xff09…

Python-数据爬取(爬虫)

在数据驱动的时代&#xff0c;Python以其强大的数据处理能力和丰富的库资源&#xff0c;成为数据爬取的首选语言。通过Python&#xff0c;你可以轻松地从网页中抓取所需的数据&#xff0c;无论是价格信息、新闻内容还是用户评论&#xff0c;都能一一收入囊中。使用requests库发…