CentOS DHCP服务器部署指南


title: DHCP 服务器部署以及配置
search: 2024-03-21
tags:

  • “#DHCP 服务器部署以及配置”

CentOS DHCP 服务器部署指南

背景 :因上了 Linux 的实验课程,在课程中,老师要求我们自己搭建 DHCP 服务器构建局域网,在构建的时候问题百出,不过也极其有意思

一、补充网络基本概念(了解的可以直接跳过)

IP地址:通俗来讲,我认为 IP 就是相当于在互联网的身份证,是用来标识自己在互联网上的身份的,别的电脑找到你的方法就是通过 IP 地址来找到你

子网掩码:我认为子网掩码相当于学校的分班,通过子网掩码,我可以判断你和我是否在同一个网段,相当于判断我和你是否在同一个班级,怎么来进行判断呢?比如说有一个 IP 为 210.43.64.111 和 一个 IP 210.43.65.189 子网掩码是 255.255.0.0 我就知道我得看前 16 位是否相同,(这里面的16位意思是 前两个网段,因为一个网段是 8 位二进制数表示的) 在这里 我能够看到 210.43 这个都是相同的,于是默认他们在同一个网段,如果子网掩码是 255.255.255.0 我们就看前24位是否相同,显然,210.43.64210.43.65 不相同,于是他们便不在同一个网段

网关:我认为网关相当于是一个中间人,比如说 A 在 1 班(网段),B 在 2 班(网段),C 在 1 班 (网段),A 和 C 讲话,可以直接大声喊(广播),C 就能够听得到 (接受信息),但是 A 想和 B 讲话,直接讲是联系不上的,这时就有一个 D (网关) ,他能够连接 A 和 B,使得他们能够讲话。

DNS:就是一个把域名转换成为 IP 地址的机器,机器一般都是用 IP 地址来进行访问的,只有人觉得 IP 地址太难记了,就给你一个好记一点的字符串,比如说 www.baidu.com 这样你直接给计算机看,计算机是看不懂的,他要去问 DNS 服务器,DNS 服务器就在自己的数据库中找,如果没有找到 www.baidu.com 这个字段对应的 IP 他就会去问 其他的 DNS , 如果都没有,那就告诉你没有 www.baidu.com 对应的 IP 这样你就找不到百度了

二、DHCP服务器安装与配置

Ubantu

dpkg -l | grep dhcp
systemctl status dhcpd
service dhcpd status

CentOS

1、检查 DHCP 是否已经安装

以下指令是用于查找所有已经安装的软件包,并在结果中筛选出包含 dhcp 的软件包

rpm -qa | grep dhcp

2、安装 DHCP 服务

如果没装的话就装一下

yum install dhepd

3、检验是否安装完毕

安装完毕后可以在路径 /etc/dhcp 下找到以下五个文件,其他有没有都不重要,重要的是一定要有 dhcpd6.confdhcpd.conf 这两个文件,因为他们需要我们进行 DHCP 服务配置

dhclient.d  dhclient-exit-hooks.d  dhcpd6.conf  dhcpd.conf  scripts

4、查看 dhcpd.conf 配置文件

在路径 /etc/dhcp 下使用指令查看 dhcpd.conf 文件

vi dhcpd.conf

可以看到如下内容

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#

5、复制样例配置文件

仔细阅读英语后发现,DHCP 服务配置文件,可以参考在路径 /usr/share/doc/dhcp*/dhcpd.conf.example 这个文件

我们使用指令将样例文件拷贝过来,覆盖在 /etc/dhcp 路径下的 dhcpd.conf 文件

cp /usr/share/doc/dhcp*/dhcpd.conf.example  /etc/dhcp/dhcpd.conf

6、默认选y

此时,CentOS 提示我们,输入 y 即可

cp:是否覆盖"/etc/dhcp/dhcpd.conf"

7、dhcpd.conf 配置文件解读

配置 dhcpd.conf 文件,这个是我的样例 dhcpd.conf,此时不进行配置,直接启动 dhcp 服务,也能够执行,为了能够让大家理解每个配置的意义,我将对每个配置进行讲解

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
## option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;default-lease-time 600;
max-lease-time 7200;# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;# No service will be given on this subnet, but declaring it helps the 
# DHCP server to understand the network topology.subnet 10.152.187.0 netmask 255.255.255.0 {
}# This is a very basic subnet declaration.subnet 10.254.239.0 netmask 255.255.255.224 {range 10.254.239.10 10.254.239.20;option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.subnet 10.254.239.32 netmask 255.255.255.224 {range dynamic-bootp 10.254.239.40 10.254.239.60;option broadcast-address 10.254.239.31;option routers rtr-239-32-1.example.org;
}# A slightly different configuration for an internal subnet.
subnet 10.5.5.0 netmask 255.255.255.224 {range 10.5.5.26 10.5.5.30;option domain-name-servers ns1.internal.example.org;option domain-name "internal.example.org";option routers 10.5.5.1;option broadcast-address 10.5.5.31;default-lease-time 600;max-lease-time 7200;
}# Hosts which require special configuration options can be listed in
# host statements.   If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.host passacaglia {hardware ethernet 0:0:c0:5d:bd:95;filename "vmunix.passacaglia";server-name "toccata.fugue.com";
}# Fixed IP addresses can also be specified for hosts.   These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP.   Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
host fantasia {hardware ethernet 08:00:07:26:c0:a5;fixed-address fantasia.fugue.com;
}# You can declare a class of clients and then do address allocation
# based on that.   The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.class "foo" {match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
}shared-network 224-29 {subnet 10.17.224.0 netmask 255.255.255.0 {option routers rtr-224.example.org;}subnet 10.0.29.0 netmask 255.255.255.0 {option routers rtr-29.example.org;}pool {allow members of "foo";range 10.17.224.10 10.17.224.250;}pool {deny members of "foo";range 10.0.29.10 10.0.29.230;}
}
1. DHCP 全局配置
  • option domain-name "example.org"; 这行配置指示DHCP服务器在向客户端分配IP地址的同时,也将域名“example.org”作为DHCP选项中的domain-name发送出去。这意味着连接到该网络的客户端计算机将自动将其DNS后缀设置为“example.org”,从而简化主机名到FQDN(完全限定域名)的转换过程.

  • option domain-name-servers ns1.example.org, ns2.example.org; 这行配置指定了DHCP客户端应使用的DNS服务器地址。当客户端请求网络配置时,它们将会收到这两个DNS服务器的IP地址,以便进行名称解析。ns1.example.orgns2.example.orgDNS服务器的主机名,实际使用时这些名字需要能被解析为有效的DNS服务器IP地址。

  • default-lease-time 600; 这行设置了DHCP客户端默认的租约时间(lease time)。这意味着如果没有特别指定,DHCP服务器将为每个客户端分配一个IP地址的有效时间为600秒(即10分钟)。

  • max-lease-time 7200; 这里定义了DHCP客户端可以请求的最大租约时间。当客户端请求一个IP地址时,它可以请求比默认租约时间更长的有效期,但最长不能超过7200秒(即2小时)。如果客户端请求了一个较长的租约,而该值在有效范围内,DHCP服务器会尊重这个请求;否则,它将仅提供默认租约时间或小于最大租约时间的有效租期.

  • log-facility local7; 这条配置将DHCP服务器的日志记录级别设置为local7,这是syslog的一种日志设施级别。这意味着DHCP服务器的事件和错误信息将被发送到syslog服务,并标记为本地设施7,管理员可以根据syslog配置将这部分日志定向到特定的文件或其他处理方式

2. DHCP 子网配置
  • subnet 10.152.187.0 netmask 255.255.255.0 {}; 这个子网配置不提供任何DHCP服务,但它有助于DHCP服务器理解网络拓扑结构。实际上,在这个配置下,DHCP服务器不会对属于这个子网的设备分配IP地址。

  • subnet 10.254.239.0 netmask 255.255.255.224 { ... } 对于这个子网,DHCP服务器将为请求IP地址的客户端提供一个范围内的静态IP地址。范围是从 10.254.239.1010.254.239.20,并且设置了网关路由器为 rtr-239-0-1.example.orgrtr-239-0-2.example.org

  • subnet 10.254.239.32 netmask 255.255.255.224 { ... } 对于这个子网,DHCP服务器将为BOOTP客户端提供动态分配的IP地址,范围是从 10.254.239.4010.254.239.60。虽然现代环境中通常推荐使用DHCP而非BOOTP,但这里仍然支持了BOOTP协议。此外,还指定了广播地址为 10.254.239.31,并设置网关路由器为 rtr-239-32-1.example.org

  • subnet 10.5.5.0 netmask 255.255.255.224 {range 10.5.5.26 10.5.5.30;option domain-name-servers ns1.internal.example.org;option domain-name "internal.example.org";option routers 10.5.5.1;option broadcast-address 10.5.5.31;default-lease-time 600;max-lease-time 7200;
    }
    /* 这个配置定义了一个子网 `10.5.5.0`(由`netmask 255.255.255.224` 指定),在这个子网内,`DHCP`服务器将为客户端分配`IP`地址范围 `10.5.5.26``10.5.5.30`。此外,还为`DHCP`客户端指定了`DNS`服务器 `(ns1.internal.example.org)`、域名 `(internal.example.org)`、默认网关 `(10.5.5.1)` 以及广播地址 `(10.5.5.31)`。最后,设定了默认租约时间为600秒,最大租约时间为7200秒。*/
    
3. DHCP特定主机配置
  • host passacaglia {hardware ethernet 0:0:c0:5d:bd:95;filename "vmunix.passacaglia";server-name "toccata.fugue.com";
    }
    /* 此配置为具有`MAC`地址 `0:0:c0:5d:bd:95` 的主机 `passacaglia` 提供了特殊配置。当这个特定主机请求`DHCP`服务时,服务器将返回预设的配置,包括引导文件名 "vmunix.passacaglia" 和服务器名称 "toccata.fugue.com"。如果未指定固定`IP`地址,`DHCP`服务器会从子网范围中动态分配一个地址给这个主机。*/
    
  • host fantasia {hardware ethernet 08:00:07:26:c0:a5;fixed-address fantasia.fugue.com;
    }
    /*对于主机 `fantasia`,其`MAC`地址为 `08:00:07:26:c0:a5``DHCP`服务器为其分配固定的`IP`地址 `fantasia.fugue.com`。这意味着无论何时主机`fantasia`启动并向`DHCP`服务器请求`IP`地址,它都将始终获取到预先设定的固定`IP`地址。*/
    
4. DHCP类定义
  • class "foo" {match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
    }定义了一个名为“`foo`”的`DHCP`客户端类别`(class)`,其中成员资格匹配条件是`DHCP`请求中的`vendor-class-identifier`选项的前四个字符必须等于"SUNW"`Vendor-class-identifier`是一个客户端可以用来`标识自身类型``DHCP`选项,这里可能是某个特定厂商或设备类型(如Sun Microsystems的设备)的标识符。
    
5. DHCP共享网络(shared-network)配置
  • shared-network 224-29 {subnet 10.17.224.0 netmask 255.255.255.0 {option routers rtr-224.example.org;}subnet 10.0.29.0 netmask 255.255.255.0 {option routers rtr-29.example.org;}pool {allow members of "foo";range 10.17.224.10 10.17.224.250;}pool {deny members of "foo";range 10.0.29.10 10.0.29.230;}
    }
    在共享网络“`224-29`”中,包含了两个子网:`10.17.224.0/24``10.0.29.0/24`,分别指定了各自的默认网关(`router`)。接下来定义了两个`IP`地址池(`pool`)。第一个池允许属于类"foo"的客户端从中获取`IP`地址,范围是从 `10.17.224.10``10.17.224.250`。第二个池则是拒绝属于类"foo"的客户端,也就是说,属于"foo"类别的客户端不能从 `10.0.29.10``10.0.29.230``IP`地址范围内获取`IP`地址。
    

8、启动 DHCP 服务

service dhcpd start

9、启动失败情况

失败情况报错如下

[root@hdfs004 dhcp]# service dhcpd start
Redirecting to /bin/systemctl start dhcpd.service
Job for dhcpd.service failed because the control process exited with error code. See "systemctl status dhcpd.service" and "journalctl -xe" for details.

阅读英语后可知服务并未成功启动,控制进程以错误代码退出

为了解决问题,提示提供了两个命令供进一步排查问题详情

  1. systemctl status dhcpd.service:该命令将显示dhcpd服务当前的状态以及最后一次启动尝试的详细信息,包括任何错误消息。这有助于识别为何服务无法启动的原因。
  2. journalctl -xe:该命令会显示系统的最新日志消息,其中包括服务启动时可能产生的错误日志。通常,错误信息会出现在这里,帮助您找出导致服务启动失败的具体原因。

遇到的具体问题,请实际百度之后各自解决,所有人遇到的问题并不一致,请找到标红的信息,将其复制上百度搜索即可

10、读取日志

启动成功后,可以在路径 /var/log/message 中读取到 DHCP 服务器接受到客户端的分配请求日志,还可以在路径 /var/lib/dhcpd/dhcpd.leases 中读取到其他客户端的租借信息。

11、附加指令

比较新版本的 CentOS 支持
  • 重启dhcpd服务
systemctl restart dhcpd.service
  • 检查dhcpd服务的状态
systemctl status dhcpd.service
  • 关闭dhcpd服务
systemctl stop dhcpd.service
  • 开启dhcpd服务
systemctl start dhcpd.service 
老版本的 CentOS 支持
  • 关闭dhcpd服务:

    service dhcpd stop
    
  • 开启dhcpd服务:

    service dhcpd start
    
  • 重启dhcpd服务:

    service dhcpd restart
    
  • 检查dhcpd服务:

    service dhcpd status
    

12、卸载 DHCP 服务

提供两种可行方案

强制卸载

列出已经安装的dhcp软件包所包含的所有文件列表

rpm -ql dhcp
  • rpmRed Hat Package Manager(红帽软件包管理器)命令。

  • -q 表示查询(query)模式。

  • -l 参数意味着列出(list)与软件包相关的所有文件及其安装路径。

如果你担心删除不干净,可以直接将查询列出来的东西全部删掉,这样就强制卸载掉了 DHCP 服务

正常卸载

Step-1:停止 DHCP 服务,可使用指令 systemctl stop dhcpdservice dhcpd stop

Step-2:禁用 DHCP 服务开机启动,可使用指令 systemctl disable dhcpdchkconfig dhcpd off

Step-3:检查是否还有 DHCP 服务的相关进程还在执行,如果有,应该 kill 进程,可使用指令 pkill dhcpd

Step-4:卸载 DHCP 软件包,可尝试使用指令 rpm -e dhcpyum remove dhcp

Step-5:可选操作,删除DHCP相关的配置文件和数据(根据需要决定是否保留配置以便将来重新安装时恢复)可尝试使用指令 rm -rf /etc/dhcp/*

Step-6清理缓存和其他相关数据 可尝试使用指令 rm -f /var/lib/dhcp/*

注意细节 pkill dhcpd 指令

  • 这条指令是在Linux系统中使用的,用于向名为 dhcpd 的进程发送一个信号,默认情况下通常是发送 SIGTERM 信号,目的是请求该进程终止运行。
  • 当你运行 pkill dhcpd 时,系统将会寻找所有 名称 中含有dhcpd的进程,并尝试立即结束它们。
  • 需要注意的是,pkill命令是根据进程名来杀死进程的,所以它会杀死所有符合条件的进程实例。
  • 如果只想终止特定的 dhcpd 进程而不影响其他可能 同样命名 的进程,应首先确定要终止的进程PID,并使用kill命令替代,例如kill <PID>
  • 另外,pkill命令可以接受不同的信号作为参数,如果想要强制立即结束进程(不等待其自行清理资源),可以加上 -9 参数,例如 pkill -9 dhcpd,这时会发送 SIGKILL 信号,该信号不可被捕获或忽略,进程会被立即终结。但这种方式较为粗暴,一般情况下不建议除非必要情况。

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

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

相关文章

2024年云服务器ECS价格表出炉——腾讯云

腾讯云服务器多少钱一年&#xff1f;61元一年起。2024年最新腾讯云服务器优惠价格表&#xff0c;腾讯云轻量2核2G3M服务器61元一年、2核2G4M服务器99元一年可买三年、2核4G5M服务器165元一年、3年756元、轻量4核8M12M服务器646元15个月、4核16G10M配置32元1个月、312元一年、8核…

用Python做一个植物大战僵尸

植物大战僵尸是一个相对复杂的游戏&#xff0c;涉及到图形界面、动画、游戏逻辑等多个方面。用Python实现一个完整的植物大战僵尸游戏是一个大工程&#xff0c;但我们可以简化一些内容&#xff0c;做一个基础版本。 以下是一个简化版的植物大战僵尸游戏的Python实现思路&#…

成功案例|全基因组测序+GWAS联合分析揭示不同种族帕金森病的遗传同质性和异质性

发表期刊&#xff1a;npj Parkinson’s Disease 影响因子&#xff1a;8.7 测序方式&#xff1a;WGS 研究对象&#xff1a;人 1 研究背景 帕金森病&#xff08;PD&#xff09;是一种常见的与年龄相关的神经退行性疾病&#xff0c;其特征是运动迟缓、姿势不稳定、僵硬和静息…

Redis中的过期键删除策略

过期键删除策略 概述 数据库键的过期时间都保存在过期字典中&#xff0c;并且知道根据过期时间去判断一个键是否过期,剩下的问题是&#xff1a;如果一个键过期了&#xff0c;那么它什么时候会被删除呢? 这个问题有三种可能的答案&#xff0c;它们分别代表了三种不同的删除策…

【linux】进程的地址空间

1.代码看现象引入 #include<stdio.h>#include<unistd.h>#include<string.h> #include<stdlib.h>int val100;int main (){ printf("i am father,pid:%d,ppid:%d,val:%d&#xff0c;&val:%p\n",getpid(),getppid(),val,&val);size_t…

vue2 和 vue3 配置路由有什么区别

vue2 和 vue3 配置路由有什么区别 初始化路由器实例&#xff1a;注入到应用中&#xff1a;动态路由参数和捕获所有路由&#xff1a;编程式导航 API&#xff1a;异步加载组件&#xff1a; vue2 如何 使用路由 第一步&#xff1a;安装 vue-router第二步&#xff1a;创建路由组件第…

【k8s】kubeasz 3.6.3 + virtualbox 搭建本地虚拟机openeuler 22.03 三节点集群 离线方案

kubeasz项目源码地址 GitHub - easzlab/kubeasz: 使用Ansible脚本安装K8S集群&#xff0c;介绍组件交互原理&#xff0c;方便直接&#xff0c;不受国内网络环境影响 拉取代码&#xff0c;并切换到最近发布的分支 git clone https://github.com/easzlab/kubeasz cd kubeasz gi…

<Linux> 模拟实现文件流 - 简易版

目录 1. FILE 结构设计 2、函数使用及分析 3、文件打开 fopen 4. 缓冲区刷新fflush 5. 数据写入fwrite 6. 文件关闭 fclose 7. 测试 8. 小结 1. FILE 结构设计 在设计 FILE 结构体前&#xff0c;首先要清楚 FILE 中有自己的缓冲区及冲刷方式 缓冲区的大小和刷新方式因…

JVM监控工具

JVM监控工具 文章目录 JVM监控工具jpsjmapjmap -histo 进程idjmap -heap 进程id (查看堆信息)jmap -dump:formatb,filefilename.hprof 进程id (将堆当前时刻快照信息dump到文件中) JSTACKjstack 查看死锁信息jstack找出占用cpu最高的线程堆栈信息 jinfo查看jvm参数查看java系统…

Perfetto Trace抓取

1. Perfetto简介 Perfetto 是一个用于 Android 系统的性能跟踪工具&#xff0c;可以帮助开发者分析系统性能和调试问题。 Perfetto 是 Android 10 中引入的全新平台级跟踪工具。这是适用于 Android、Linux 和 Chrome 的更加通用和复杂的开源跟踪项目。 在低于Android R的版本上…

量子计算新“尺度”:用经典计算机评估复杂量子系统!

未来的量子计算机有望在计算机科学、医疗、商业、化学、物理学等多个领域解决难题&#xff0c;从而超越传统计算机。然而&#xff0c;目前的量子计算机仍存在局限&#xff0c;主要是由于它们固有的错误率。为此&#xff0c;研究者正致力于降低这些错误率。 一种研究量子计算机误…

Linux系统部署Paperless-Ngx文档管理系统结合内网穿透实现公网访问

文章目录 1. 部署Paperless-ngx2. 本地访问Paperless-ngx3. Linux安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 Paperless-ngx是一个开源的文档管理系统&#xff0c;可以将物理文档转换成可搜索的在线档案&#xff0c;从而减少纸张的使用。它内置…

机械硬盘与固态硬盘究竟该适合选用哪种,看完本文你就了解了!

随着科技的发展,计算机存储技术经历了从传统的机械硬盘(HDD)到现代固态硬盘(SSD)的革新变迁。在这篇文章中,我们将深入探讨机械硬盘与固态硬盘在功能特点上的显著区别,帮助用户更好地理解这两种存储设备的核心优势与不足。 一、存储原理与结构差异 1. 机械硬盘(HDD) …

微服务架构的实现:选择最佳方案,构建未来的应用生态(二)

本系列文章简介&#xff1a; 在本系列文章中&#xff0c;我们将探讨微服务架构的实现&#xff0c;并提供一些实用的建议和最佳实践。我们将从架构设计开始&#xff0c;介绍各种微服务架构模式和组件&#xff0c;包括服务发现、负载均衡、服务网关、事件驱动等。我们还将讨论微服…

ffmpeg开发异步AI推理Filter

ffmpeg开发异步AI推理Filter 1.环境搭建、推理服务及客户端SDK2.编译原版ffmpeg3.测试原版ffmpeg的filter功能4.准备异步推理filter5.修改点6.重新编译ffmpeg7.测试异步推理filter本文旨在阐述如何开发一个FFmpeg Filter,该模块利用gRPC异步通信机制调用远程视频处理服务。这一…

Midjourney AI绘图工具介绍及使用

介绍 Midjourney是一款目前被誉为最强的AI绘图工具。只要输入想到的文字&#xff0c;就能通过人工智能产出相对应的图片。 官网只是宣传和登录入口&#xff0c;提供个人主页、订阅管理等功能&#xff0c;Midjourney实际的绘画功能&#xff0c;是在另外一个叫discord的产品中实…

网络电视盒子哪个品牌好?2024畅销电视盒子排行榜

电视盒子的品牌和产品非常多&#xff0c;让新手在选购时难度增大&#xff0c;大部分消费者在此时会选择参考销量排名情况&#xff0c;小编这次结合各个电商平台的销量和用户评价整理了电视盒子排行榜&#xff0c;想买电视盒子不知道网络电视盒子哪个品牌好可以收藏。 TOP 1.泰捷…

论文导读 | 漫谈图神经网络

本文主要介绍图神经网络相关内容&#xff0c;包括图神经网络的基本结构以及近期研究进展。 背景 在实际生活中&#xff0c;许多数据都可以用图的形式表达&#xff0c;比如社交网络、分子模型、知识图谱、计算机网络等。图深度学习旨在&#xff0c;显式利用这些数据中的拓扑结…

3.18_C++_day6_作业

作业要求&#xff1a; 程序代码&#xff1a; #include <iostream>using namespace std;class Animal { private:string name;string color;int *age; public://无参构造函数Animal(){cout << "Animal::无参构造函数" << endl;}//有参构造函数Anim…

ElementPlus布局出现“xx/index.vue“. Does the file exist?

复制页面&#xff0c;加入后出现index.vue". Does the file exist? 问题&#xff1a; [plugin:vite:import-analysis] Failed to resolve import "element-plus/es/components/head/style/css" from "src\views\MyFrontTest\Test1\index.vue". Does…