前言:
       在Linux网络服务体系架构中,​DHCP(Dynamic Host Configuration Protocol)​​ 作为核心服务之一,承担着局域网内主机网络参数动态分配的关键任务。其设计初衷是解决传统手动配置IP地址的效率瓶颈与错误风险——通过C/S(客户端/服务器)模型实现IP地址、子网掩码、网关及DNS等配置的自动化分发。随着网络规模扩大与终端设备激增,DHCP的集中化管理能力显著提升了IP资源的利用效率,同时避免了地址冲突,成为企业网络、云环境及家庭局域网不可或缺的基础服务。本模块将系统剖析DHCP在Linux环境中的工作原理、配置实践及故障排查策略,为构建高效可靠的网络运维体系奠定基础。

目录

一、 概述

DHCP协议

DHCP的优势

DHCP的分配方式

应用场景

注意

工作流程

何时更新租约

当客户端重启后

客户端类型

二、DCHP安装与配置

部署

基础环境

安装DHCP软件包

配置

三、企业级实战

实战拓扑:

实战要求

手动配置实验

实验拓扑结构:

 1.虚拟机配置

 2.初始化部署

3.安装DHCP服务

4.配置DHCP服务:

5. 路由器配置

 6.实战验证

四、常见故障

总结


一、 概述

DHCP协议

Dynamic Host Configuration Protocol ,动态主机配置协议

作用:动态的进行IP地址分配

服务端的监听端口 67/udp

客户端监听端口 68/udp

网络架构 C/S:client/server

DHCP的优势

  • 提高配置效率

  • 减少配置错误

DHCP的分配方式

  • 手动分配:固定不变,工程师进行地址绑定

  • 自动分配:但是不进行地址回收

  • 动态分配:进行地址回收

应用场景

  • 更加准确的配置网络参数的情况下

  • 网络环境较大时

注意

同一个网络环境下不允许存在多个DHCP服务器

工作流程

1、当客户端配置为自动获得IP地址时,客户端发送discover广播包(发现),用来寻找网络中的DHCP服务器

2、假如网络存在DHCP服务器,此时服务器给出回应,向客户端发送Offer广播包(邀约),携带了IP地址的信息,询问客户端是否使用该IP地址

3、假如客户端使用上述IP地址,向服务端发送Request广播包(请求),并将请求信息写入到该包内。

4、服务端向客户端发送Ack广播包(确认),并确定IP地址的租约期。

何时更新租约

当租约期达到50%时

当客户端重启后

客户端直接发送Request包:

A、IP地址空闲 服务端直接回应Ack

B、IP地址被占用 服务端回应noAck 客户端需要将上述“工作流程”完整执行一遍

客户端类型

Linux DHCP服务器不存在,没有IP

Windows DHCP不存在,会启用备用IP地址 169.254.0.0/16 ~ 168.254.255.255/16

二、DCHP安装与配置

部署

基础环境

配置yum源

关闭防火墙及SElinux

[root@dhcpserver ~]# systemctl  stop  firewalld  && systemctl disable firewalld

查看SElinux状态

 [root@dhcpserver ~]# getenforce###设置宽容模式[root@dhcpserver ~]# setenforce  0###关闭SElinux,重启才能生效[root@dhcpserver ~]# vim  /etc/selinux/configSELINUX=enforcing  改为 SELINUX=disabled

配置静态IP

 ###关闭网络图形化工具[root@dhcpserver ~]# systemctl  stop NetworkManager ; systemctl disable NetworkManager[root@dhcpserver ~]# cd /etc/sysconfig/network-scripts/[root@dhcpserver ~]# cp ifcfg-ens33 ifcfg-ens34[root@dhcpserver ~]# cat ifcfg-ens34TYPE=EthernetBOOTPROTO=staticNAME=ens34DEVICE=ens34ONBOOT=yesIPADDR=192.168.100.254PREFIX=24[root@dhcpserver ~]# systemctl restart network
安装DHCP软件包
 [root@localhost ~]# yum install -y dhcp-server

配置

配置文件存储路径 /etc/dhcp

默认配置文件副本路径 /usr/share/doc/dhcp-4.2.5/

数据文件存储路径 /var/lib/dhcpd

核心配置文件 /etc/dhcp/dhcpd.conf

 [root@dhcpserver ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/[root@dhcpserver ~]# cd /etc/dhcp/[root@dhcpserver ~]# cp dhcpd.conf.example dhcpd.conf[root@dhcpserver ~]# cat dhcpd.conf# dhcpd.conf## Sample configuration file for ISC dhcpd#​# option definitions common to all supported networks...option domain-name "example.org";    ##指定DNS服务器域名option domain-name-servers ns1.example.org, ns2.example.org;  ##指定DNS服务器域名​default-lease-time 600;  ##默认租约。单位smax-lease-time 7200; ##最大租约时间,单位s​# 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;  ##日志输出通道,交给syslog服务管理​# No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology.#######每一个subnet都是一个分配地址段的定义######################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都是进行地址绑定的配置项###############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;  ###固定分配地址的主机的MAC地址fixed-address fantasia.fugue.com;  ###需要进行分配的IP地址}​# 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服务器能够为两个网络分别分配IP地址。
 2. 内部客户机设置为固定获得某一个IP地址。

手动配置实验
实验拓扑结构:
设备网络接口网络IP地址
DHCP服务器ens160VMnet1192.168.1.1
路由器内部接口ens160VMnet1192.168.1.254
路由器外部接口ens224VMnet2192.168.2.254
内部客户机ens160VMnet1固定:192.168.1.100
外部客户机ens160VMnet2DHCP自动获取:192.168.2.X

 1.虚拟机配置
(1)网络适配器连接设置
①DHCP服务器连接内部网络VMnet1

②内部客户机连接内部网络VMnet1

③路由器内部接口连接内部网络VMnet1,外部接口连接外部网络VMnet2

④外部客户机连接外部网络VMnet2

 2.初始化部署
(1)关闭防火墙及SElinux
[root@DHCP-server ~]# systemctl disable --now firewalld

(2)查看SElinux状态

 [root@DHCP-server ~]# getenforce###设置宽容模式[root@DHCP-server ~]# setenforce  0###关闭SElinux,重启才能生效[root@DHCP-server ~]# vim  /etc/selinux/configSELINUX=enforcing  改为 SELINUX=disabled

(3)DHCP服务器配置静态IP (ens160)

[root@DHCP-server ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 
TYPE=Ethernet
BOOTPROTO=static
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.1.1
PREFIX=24

 (4)重启网络

[root@DHCP-server ~]# systemctl restart NetworkManager
3.安装DHCP服务
[root@DHCP-server ~]# yum install -y dhcp-server
4.配置DHCP服务:

 将默认配置文件副本拷贝到当前配置文件的存储路径并修改配置文件

[root@DHCP-server dhcp]# cp /usr/share/doc/dhcp-server/dhcpd.conf.example ./
[root@DHCP-server dhcp]# ls
dhclient.d  dhcpd6.conf  dhcpd.conf  dhcpd.conf.example
[root@DHCP-server dhcp]# cp dhcpd.conf.example dhcpd.conf
cp:是否覆盖'dhcpd.conf'? y
[root@DHCP-server dhcp]# ls
dhclient.d  dhcpd6.conf  dhcpd.conf  dhcpd.conf.example
[root@DHCP-server dhcp]# vim dhcpd.conf

(1)编辑配置文件并注释掉没有用的地址段

 

(2)协议名也进行注释(没用) 并配置分配地址段和地址绑定

[root@PC1 ~]# ip link show ens160 | awk '/ether/{print $2}'
00:0c:29:f7:04:38    #获取内部客户机 MAC 地址

①配置内部客户机subnet,host声明中添加内部客户机 MAC 地址00:0c:29:f7:04:38,以及绑定固定分配的IP地址192.168.1.100

②配置外部客户机subnet

③启动服务

[root@DHCP-server dhcp]# systemctl enable --now dhcpd   
Created symlink /etc/systemd/system/multi-user.target.wants/dhcpd.service → /usr/lib/systemd/system/dhcpd.service.[root@DHCP-server dhcp]# systemctl status dhcpd    
● dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor prese>Active: active (running) since Tue 2025-06-17 13:46:46 CST; 16s agoDocs: man:dhcpd(8)man:dhcpd.conf(5)Main PID: 10515 (dhcpd)Status: "Dispatching packets..."Tasks: 1 (limit: 22875)Memory: 5.4MCGroup: /system.slice/dhcpd.service└─10515 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -gro>[root@DHCP-server dhcp]# netstat -antptu | grep dhcpd    #查看监听
udp        0      0 0.0.0.0:67              0.0.0.0:*                           10515/dhcpd  
5. 路由器配置

(1)配置内部接口和外部接口的网卡IP

[root@router ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens160
UUID=171713aa-bd74-4320-9ec1-6e7872ac63a4
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.1.254
PREFIX=24
[root@router ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens224 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=default
NAME=ens224
UUID=b280db6b-2c16-4d93-8464-2892adaa0985
DEVICE=ens224
ONBOOT=yes
IPADDR=192.168.2.254
PREFIX=24

(2)开启路由转发功能并DHCP测试网络连通性

[root@router network-scripts]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@router network-scripts]# sysctl -p
net.ipv4.ip_forward = 1[root@DHCP-server ~]# ping 192.168.1.254
PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data.
64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=0.230 ms
64 bytes from 192.168.1.254: icmp_seq=2 ttl=64 time=0.257 ms[root@DHCP-server ~]# ping 192.168.2.254
PING 192.168.2.254 (192.168.2.254) 56(84) bytes of data.
64 bytes from 192.168.2.254: icmp_seq=1 ttl=64 time=0.358 ms
64 bytes from 192.168.2.254: icmp_seq=2 ttl=64 time=0.283 ms

(3)安装dhcrelay命令 

[root@router mnt]# yum install -y dhcp-relay

(4)使用dhcrelay命令进行DHCP广播的中继转发

[root@router mnt]# dhcrelay 192.168.1.1     #DHCP服务器IP
Dropped all unnecessary capabilities.
Internet Systems Consortium DHCP Relay Agent 4.3.6
Copyright 2004-2017 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/ens256/00:0c:29:59:5c:5e
Sending on   LPF/ens256/00:0c:29:59:5c:5e
Listening on LPF/virbr0/52:54:00:ef:f1:eb
Sending on   LPF/virbr0/52:54:00:ef:f1:eb
Listening on LPF/ens224/00:0c:29:59:5c:54
Sending on   LPF/ens224/00:0c:29:59:5c:54
Listening on LPF/ens160/00:0c:29:59:5c:4a
Sending on   LPF/ens160/00:0c:29:59:5c:4a
Sending on   Socket/fallback

(5)重启DHCP服务器

[root@DHCP-server ~]# systemctl restart dhcpd

(6)设置DHCP服务器的网关并验证网关

[root@DHCP-server ~]# cat /etc/sysconfig//network-scripts/ifcfg-ens160 
TYPE=Ethernet
BOOTPROTO=static
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.1.1
PREFIX=24
GATEWAY=192.168.1.254
[root@DHCP-server ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.254   0.0.0.0         UG    100    0        0 ens160
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens160
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
 6.实战验证
(1)内部客户机验证DHCP服务器是否为其分配的固定IP地址192.168.1.100以及验证网关
[root@PC1 ~]# systemctl restart NetworkManager[root@PC1 ~]# ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255inet6 fe80::20c:29ff:fef7:438  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:f7:04:38  txqueuelen 1000  (Ethernet)RX packets 358  bytes 46196 (45.1 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 184  bytes 19475 (19.0 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@PC1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.254   0.0.0.0         UG    100    0        0 ens160
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 ens160
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0[root@PC1 ~]# cat /etc/resolv.conf    
# Generated by NetworkManager      ​#NetworkManager 动态管理
search example.org
nameserver 192.168.1.1          #DHCP 分配的 DNS[root@PC1 ~]# ping 192.168.2.2    #ping外部客户机IP地址跨网络通信测试
PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data.
64 bytes from 192.168.2.2: icmp_seq=1 ttl=63 time=0.639 ms
64 bytes from 192.168.2.2: icmp_seq=2 ttl=63 time=0.489 ms[root@PC1 ~]# ping 192.168.1.1   #测试网络连通性
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.286 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.272 ms

(2) 外网客户机验证DHCP服务器是否为其分配以192.168.2.X随机的IP地址以及验证网关

[root@PC2 ~]# systemctl restart NetworkManager[root@PC2 ~]# ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.2.2  netmask 255.255.255.0  broadcast 192.168.2.255inet6 fe80::20c:29ff:fe84:3dad  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:84:3d:ad  txqueuelen 1000  (Ethernet)RX packets 70  bytes 10136 (9.8 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 457  bytes 75142 (73.3 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@PC2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.2.254   0.0.0.0         UG    100    0        0 ens160
192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 ens160
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0[root@PC2 ~]# cat /etc/resolv.conf
# Generated by NetworkManager    ​#NetworkManager 动态管理
search example.org
nameserver 192.168.1.1      #DHCP 分配的 DNS[root@PC2 ~]# ping 192.168.1.100     #ping内部客户机IP地址跨网络通信测试
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=63 time=0.540 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=63 time=0.502 ms[root@PC2 ~]# ping 192.168.1.1      #测试网络连通性
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=63 time=0.475 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=63 time=0.771 ms

四、常见故障

 1. 服务启动异常,排查配置文件,特别注意修改的位置!!!
 2. 地址参数分配异常,排查网络连接情况,再排查subnet字段!!!

总结:

DHCP服务在Linux网络管理中体现了自动化、高可用与灵活性的核心价值

       1.​动态分配机制​:通过四步租约(DORA:Discover-Offer-Request-Acknowledgement)实现IP地址的按需分配与回收,支持动态、自动和手动三种分配模式,适应不同场景需求。
​       2.租约生命周期管理​:租约更新策略(50%和87.5%时间点主动续约)确保地址可持续使用,结合租期参数(default-lease-time、max-lease-time)优化资源循环效率。
       3.​集中化配置管理​:通过/etc/dhcp/dhcpd.conf文件定义作用域(subnet)、地址池(range)、保留地址(host声明)及全局选项(如DNS、网关),大幅降低运维复杂度。
       ​4.跨网段支持​:借助DHCP中继(dhcrelay)转发广播请求,实现单服务器多子网覆盖,扩展服务边界。

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

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

相关文章

FPGA基础 -- Verilog语言要素之变量类型

Verilog 变量类型&#xff08;Variable Types&#xff09; 一、什么是变量类型&#xff1f; 在 Verilog 中&#xff0c;变量类型用于保存过程赋值结果&#xff08;由 always 或 initial 块赋值&#xff09;&#xff0c;通常用于建模寄存器、状态、计数器等“带记忆”的硬件行为…

使用Haporxy搭建Web群集

目录 一、案例分析 1.案例概述 2.案例前置知识点 2.1 HTTP请求 2.2 负载均衡常用调度算法 2.3常见的Web群集调度器 3.案例环境 3.1本案例环境 二、案例实施 1.搭建两台web服务器 2.安装Haproxy 3.haproxy服务器配置 修改haproxy的配置文件 4.测试web群集 5.haproxy的日…

pikachu靶场通关笔记38 目录遍历(路径遍历)

目录 一、目录遍历 二、源码分析 三、目录遍历与文件包含 四、实战渗透 1、进入靶场 2、目录遍历 &#xff08;1&#xff09;访问ace.min.css &#xff08;2&#xff09;访问fileinclude.php 本系列为《pikachu靶场通关笔记》渗透实战&#xff0c;本文通过对目录遍历源…

现代C++:std::string全方位碾压C字符串

在 C 中引入的 std::string 是对 C 语言中 char* 和 const char* 的一种现代化封装和增强。它不仅解决了 C 字符串的许多缺陷&#xff08;如安全性、内存管理、易用性等&#xff09;&#xff0c;还提供了丰富的 API 来简化字符串操作。本文将从多个维度详细对比 std::string 与…

20250619周四:Atlassian

今天主要把conference上的A xxx的所有资料大体看了一遍&#xff0c;花了两个多小时。 公司的这个conference系统&#xff0c;共实就是一个大型的可多人在线编辑的文件系统。差不多所有的资料都共享在上面。这对于多人参与的项目管理&#xff0c;还是相当方便的。 Atlassian最特…

通过CDH安装Spark的详细指南

通过CDH安装Spark的详细指南 简介 Cloudera Distribution of Hadoop (CDH) 是一个企业级的大数据平台,它集成了多个开源组件,包括Hadoop、Spark、Hive等。本文将详细介绍如何通过CDH安装和配置Spark。 前提条件 在开始安装之前,请确保满足以下条件: 已安装CDH集群具有管…

GitLab CVE-2025-5121 安全漏洞解决方案

本分分享极狐GitLab 补丁版本 18.0.2, 17.11.4, 17.10.8 的详细内容。这几个版本包含重要的缺陷和安全修复代码&#xff0c;我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS&#xff0c;技术团队已经进行了升级&#xff0c;无需用户采取任…

【八股消消乐】Elasticsearch优化—检索Labubu

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本专栏《八股消消乐》旨在记录个人所背的八股文&#xff0c;包括Java/Go开发、Vue开发、系统架构、大模型开发、具身智能、机器学习、深度学习、力扣算法等相关知识点&#xff…

如何实现基于场景的接口自动化测试用例?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 自动化本身是为了提高工作效率&#xff0c;不论选择何种框架&#xff0c;何种开发语言&#xff0c;我们最终想实现的效果&#xff0c;就是让大家用最少的代码&…

FreeRTOS 任务管理学习笔记

FreeRTOS 任务管理学习笔记 引言 本文档旨在通过在STM32微控制器上使用FreeRTOS来理解和实现任务管理。实验的重点是创建和管理多个任务、处理任务同步以及通过简单的硬件接口控制任务状态。 实验概述 实验涉及创建三个任务&#xff1a; LED1_Task: 每300毫秒切换一次LED。…

c++set和pair的使用

set是C中的一种关联容器&#xff0c;具有以下特点&#xff1a; 存储唯一元素&#xff08;不允许重复&#xff09; 元素自动排序&#xff08;默认升序&#xff09; 基于红黑树实现&#xff08;平衡二叉搜索树&#xff09; 插入、删除和查找的时间复杂度为O(log n) 前言 在C…

终端命令行执行具体的方法名测试用例

你可以使用如下命令单独执行 test_mutation_login_by_email 方法:python3 manage.py test apps.login.test_client.LoginTestCase.test_mutation_login_by_email 注意事项: 路径 apps.login.test_client 要与你项目实际的 Python 包路径一致(即 test_client.py 文件所在的包…

20250620在Ubuntu20.04.6下编译KickPi的K7的Android14系统

【处理SDK】 rootrootrootroot-X99-Turbo:~/Android14$ tar zxvf rk3576-android14.0-20250217.tar.gz rootrootrootroot-X99-Turbo:~/Android14$ ll rootrootrootroot-X99-Turbo:~/Android14$ rm rk3576-android14.0-20250217.tar.gz rootrootrootroot-X99-Turbo:~/Android1…

碳中和时代的家电革命,从华为智选IAM看科技企业的环保担当

在"双碳"战略与品质消费浪潮的双重加持下&#xff0c;家电产业正经历一场前所未有的绿色革命。华为智选与空净十大品牌IAM的深度协同&#xff0c;不仅构建了智能家电领域的技术新高地&#xff0c;更通过系统性创新持续拓展着行业可持续发展的想象空间。从净水科技的突…

(C语言)Map数组的实现(数据结构)(链表)(指针)

源代码&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h>// 键值对节点 typedef struct Node {char* key;int value;struct Node* next; } Node;// Map结构 typedef struct {Node* buckets[100]; // 固定大小的哈希桶&#xff08;…

Logback示例解析

<configuration><!-- 环境变量 --><springProperty scope"context" name"app.name" source"spring.application.name" defaultValue"application"/><!-- 日志存放路径 --><property name"log.path&qu…

elementui响应式数据类型变更情况

背景。vue2。data中定义的响应数据类型是[]数组。应用在el-select中&#xff08;非multiple情况&#xff09;。当发生响应数据有变更渲染视图时&#xff0c;发现定义的数组转换成了字符串。 本身不是问题。但因为疏忽引发了watch监听formData数据时产生了产生了多次监听事件。…

人机融合智能 | 人智交互语境下的设计新模态

本章旨在探讨技术与设计领域在人智交互语境下的关系及其影响,讨论通过传统设计对人智交互的优化方法。通过回顾大数据和发展趋势,以 AI技术作为重要的技术推力,我们认为 AI技术将会在未来成为设计领域不可缺少的重要环节,并能够帮助设计师更加高效、准确地开展设计工作。本章着…

C++设计模式分类(GOF-23种设计模式)

文章目录 GOF-23 设计模式分类一、从目的分类1. 创建型&#xff08;Creational&#xff09;模式2. 结构型&#xff08;Structural&#xff09;模式3. 行为型&#xff08;Behavioral&#xff09;模式 二、从范围分类1. 类模式&#xff08;Class Pattern&#xff09;2. 对象模式&…

AbMole| LY294002(M1925)

LY294002是一种广谱的PI3K抑制剂&#xff0c;对PI3Kα/δ/β的IC50分别为0.5 μM/0.57 μM/0.97 μM。LY294002 也可以抑制 CK2 的活性&#xff0c;IC50 为 98 nM。LY294002 还是一种竞争性 DNA-PK 抑制剂&#xff0c;可逆结合 DNA-PK 的激酶结构域&#xff0c;IC50 为 1.4 μM…