Linux复习笔记(五) 网络服务配置(dhcp)
二、网络服务配置
2.5 dhcp服务配置(不涉及实际操作)
要求:知道原理和常见的参数配置就行
2.5.1 概述DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种用于自动分配和管理IP地址的网络协议,旨在简化网络设备配置并提高IP地址利用率。以下是其核心内容的综合概述:
协议定位
- DHCP属于OSI模型的应用层协议,基于UDP传输,使用67号端口(服务器)和68号端口(客户端)进行通信
核心功能
- 动态IP分配:自动为客户端分配IP地址、子网掩码、默认网关、DNS服务器等网络参数
- 地址管理:通过租约机制(Lease Time)控制IP地址的有效期,支持地址回收与复用,避免资源浪费
- 兼容性:支持与静态IP设备共存,并兼容早期的BOOTP协议
地址分配方式
- 动态分配(Dynamic Allocation):临时分配带租期的IP地址,到期后可回收(最常见方式)
- 自动分配(Automatic Allocation):永久分配固定IP地址给特定设备
- 手动分配(Manual Allocation):管理员手动指定IP地址,DHCP仅负责告知客户端
2.5.2 DHCP工作原理(DORA流程)
DHCP通过四个步骤完成地址分配,称为DORA流程:
Discover(发现)
- 客户端以广播形式发送
DHCP Discover
报文,寻找可用DHCP服务器
Offer(提供)
- 服务器响应
DHCP Offer
,包含推荐的IP地址及配置信息(可能多台服务器响应)
Request(请求)
- 客户端选择其中一个Offer,广播
DHCP Request
确认所选服务器
Acknowledge(确认)
- 服务器发送
DHCP ACK
正式分配地址,或DHCP NAK
拒绝请求(如地址冲突)
消息名称 | 消息的作用 |
---|---|
发现阶段 (DHCP Discover) | 客户端寻找 DHCP 服务器,请求分配 IP 地址等网络配置信息 |
提供阶段 (DHCP Offer) | 服务器回应 DHCP 客户端请求,提供可被租用的网络配置信息 |
选择阶段 (DHCP Request) | 客户端租用选择网络中某一台 DHCP 服务器分配的网络配置信息 |
确认阶段 (DHCP Ack) | DHCP 服务器对 DHCP 客户端的租用选择进行确认 |
发现阶段
在本阶段中,客户机寻找 DHCP 服务器,请求获取 IP 资源。
客户机状态:客户机没有 IP 地址,客户机不知道 DHCP 服务器地址。
处理方式:客户机发送 Discover 数据包。
-
以广播形式发出
-
不同客户机发送的 Discover 包通过数据包的 MAC 地址来区分。
关键信息 | 解析 |
---|---|
源 MAC 地址 | 客户端网卡的 MAC 地址 |
目的 MAC 地址 | FF:FF:FF:FF:FF:FF (广播地址) |
源 IP 地址 | 0.0.0.0 |
目的 IP 地址 | 255.255.255.255(广播地址) |
源端口号 | 68(UDP) |
目的端口号 | 67(UDP) |
客户端硬件地址标识 | 客户端网卡的 MAC 地址 |
客户端 ID | 客户端网卡的 MAC 地址 |
DHCP 包类型 | DHCP Discover |
提供阶段
- 在本阶段中,LAN 中所有的 DHCP 服务器在收到客户机发送的 Discover 包后都会对其响应,发送响应数据包(Offer)。Offer 包中包含了响应信息(IP 地址、NETMASK 地址、BROADCAST 地址、DNS 地址等等,以及其他相关信息)。最关键的 IP 地址是由 DHCP 服务器在其地址池中挑选的未使用的 IP 地址。
关键信息 | 解析 |
---|---|
源 MAC 地址 | DHCP 服务器网卡的 MAC 地址 |
目的 MAC 地址 | FF:FF:FF:FF:FF:FF(广播地址) |
源 IP 地址 | 192.168.110.10 |
目的 IP 地址 | 255.255.255.255(广播地址) |
源端口号 | 67(UDP) |
目的端口号 | 68(UDP) |
可用的 IP 地址 | 192.168.110.128 |
子网掩码 | 255.255.255.0 |
网关地址等其他参数 | Gateway:192.168.110.2 DNS:192.168.110.30 |
参数的租约 | (按实际,如 6 小时) |
客户端 MAC | 客户端网卡的 MAC 地址 |
DHCP 服务器 ID | 192.168.110.10(服务器 IP) |
DHCP 包类型 | DHCP Offer |
选择阶段
- DHCP客户机可能会获取多个DHCP服务器的Offer包,其只能使用第一个获得的Offer包中的 IP作为自己的IP地址。其余Offer包将不再处理,并且 DHCP客户端收到服务器的DHCP Offer后,不会直接将该租约配置在TCP/IP参数上,它还须向服务器发送DHCP Request包以确认租用。DHCP Request包含如下关键信息(DHCP服务器IP:192.168.110.10/24,DHCP客户端IP:192.168.110.128/24),以广播的形式发送。DHCP Request包含关键信息及解析如表所示。
关键信息 | 解析 |
---|---|
源 MAC 地址 | DHCP 客户端网卡的 MAC 地址 |
目的 MAC 地址 | FF:FF:FF:FF:FF:FF(广播地址) |
源 IP 地址 | 0.0.0.0 |
目的 IP 地址 | 255.255.255.255 (广播地址) |
源端口号 | 68(UDP) |
目的端口号 | 67(UDP) |
客户端 MAC | 客户端网卡的 MAC 地址 |
客户端请求的 IP | 192.168.110.128 |
服务器 ID | 192.168.110.10 |
DHCP 包类型 | DHCP Request |
确认阶段
- DHCP服务器收到客户端的DHCP Request包后,将通过发送DHCP Ack消息给客户端,完成IP地址租约的签订。DHCP Ack包以广播形式发送。客户端收到该数据包即准备使用服务器提供的IP地址等网络配置参数信息完成TCP/IP参数的配置。没有被选中的服务器则会收回自己分配的IP地址到地址池中,等待下一次分配。DHCP Ack包含的关键信息及解析如表所示。
关键信息 | 解析 |
---|---|
源 MAC 地址 | DHCP 服务器网卡的 MAC 地址 |
目的 MAC 地址 | FF:FF:FF:FF:FF:FF(广播地址) |
源 IP 地址 | 192.168.110.10 |
目的 IP 地址 | 255.255.255.255(广播地址) |
源端口号 | 67(UDP) |
目的端口号 | 68(UDP) |
客户端 IP 地址 | 192.168.110.128 |
客户端子网掩码 | 255.255.255.0 |
网关地址等网络参数 | Gateway:192.168.110.2 DNS:192.168.110.30 |
网络参数的租约 | (按实际) |
客户端 MAC | 客户端网卡的 MAC 地址 |
DHCP 服务器 ID | 192.168.110.10 |
DHCP 包类型 | DHCP Ack |
重新登录
- 为了提高效率,当客户机关闭后重新进入网络时,将直接进入选择阶段,向上一次分配 地址的DHCP服务器发送request信息,询问上一次分配的IP地址能否重新使用。 如果上一次的IP地址没有分配给别的机器,则DHCP服务器会发出一个确认信息,将其分配给该客 户机。 如果上一次分配的地址已经分配给别的机器,则客户机需要重新从第一步开始进行地址申请。
租约续期:
- 在租期50%(T1时间点)时,客户端单播请求续约
- 若未成功,租期87.5%(T2时间点)改为广播请求
- 租期结束后仍未续约,客户端释放IP并重启DORA流程
DHCP客户端租用失败的自动配置
DHCP客户端在发出DHCP Discover广播包后,将花费1秒钟的时间等待DHCP服务器的回应,如果等待1秒钟后没有收到服务器的回应,它会将这个广播包重新广播四次(以2、4、8和16秒为间隔,加上1~1000毫秒随机长度的时间)。四次广播之后,如果仍然不能够收到服务器的回应,则将从169.254.0.0/16网段内随机选择一个IP地址作为自己的TCP/IP参数。
DHCP中继代理服务
DHCP中继代理(DHCP Relay Agent)是一种网络服务或设备,用于在不同子网之间转发DHCP请求和响应,解决客户端与服务器不在同一广播域时的IP地址分配问题。
核心作用
跨子网地址分配
DHCP客户端通过广播发送请求(如DHCP Discover),但广播报文无法跨越路由器到达其他子网。中继代理将客户端的广播请求转换为单播,转发至远程DHCP服务器,实现跨子网通信
工作原理(以IP分配为例)
-
客户端广播请求
客户端发送DHCP Discover广播报文,中继代理通过监听接口接收请求 -
中继代理处理与转发
- 填充giaddr:将客户端子网信息写入报文的giaddr字段。
- 单播转发:将修改后的报文以单播形式发送至预配置的DHCP服务器
-
服务器响应与回传
- 服务器根据giaddr选择地址池,生成DHCP Offer单播回复至中继代理。
- 中继代理将Offer广播回客户端子网,完成后续DHCP Request和ACK交互
-
租约续期优化
客户端后续续租请求(DHCP Request)可直接单播至服务器,无需中继代理参与,减少网络开销
2.5.3 DHCP服务常用文件及参数解析
主配置文件/etc/dhcp/dhcpd.conf
配置文件结构
DHCP主配置文件(/etc/dhcp/dhcpd.conf
)由三部分组成:参数(全局/局部)、选项(option)和声明(如subnet、host),三者共同定义IP分配规则。
核心组件解析与示例
1. 参数(Parameters)
- 作用:定义DHCP服务的行为特性(如租约时间、动态更新策略等)。
- 分类:
- 全局参数:在声明外部定义,对所有作用域生效。
- 局部参数:在声明内部定义,仅作用于当前声明范围。
常用参数示例
# 全局参数
ddns-update-style interim; # 启用DNS动态更新
default-lease-time 3600; # 默认租约1小时(单位:秒)
max-lease-time 7200; # 最大租约2小时# 局部参数(在subnet声明内)
subnet 192.168.1.0 netmask 255.255.255.0 {range 192.168.1.100 192.168.1.200;ignore client-updates; # 忽略客户端发起的DNS更新
}
常用参数 | 功能 |
---|---|
ddns-update-style {none|interim|ad-hoc} | 支持的 DNS 动态更新类型,必选且仅在全局配置中使用。none:不支持动态更新;interim:DNS 互动更新;ad-hoc:特殊更新模式。 |
{allow|ignore} client-updates | 允许或忽略客户机更新 DNS 记录,仅在全局配置中使用。 |
default-lease-time {秒数} | 指定客户端默认租约时间,全局、局部配置均可使用。 |
max-lease-time {秒数} | 指定客户端最大租约时间,在全局、局部配置均可使用。 |
range {起始 IP 地址} {终止 IP 地址} | 定义 IP 子网范围,在 subnet 声明中。一个 subnet 中可以有多个 range 参数,且多个 range 所定义的 IP 地址范围不能重复。 |
hardware Ethernet {MAC 地址} | 指定网卡的 MAC 地址,用在 subnet 声明中。 |
fixed-address {IP 地址} | 分配给客户端固定的 IP(也就是保留地址),在 host 声明中使用。与 hardware 参数成对使用。 |
server-name 主机名 | DHCP 服务器的主机名,在全局、局部配置均可使用。 |
2. 选项(Options)
- 作用:为客户端分配具体的网络参数(如网关、DNS服务器)。
- 格式:
option <参数名> <值>;
,支持全局或局部作用域。
常用选项示例:
option routers 192.168.1.1; # 默认网关
option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS服务器(多个IP逗号分隔)
option subnet-mask 255.255.255.0; # 子网掩码(可省略,DHCP自动推导)
常见选项 | 功能 |
---|---|
option subnet - mask {子网掩码} | 为客户端指定子网掩码,可以省略 |
option routers {网关 IP 地址} | 为客户端指定默认网关,常用 |
option domain - name - servers {DNS 服务器 IP 地址} | 为客户端指定 DNS 服务器的 IP 地址,常用 |
option domain - name {“域名”} | 为客户端指定 DNS 域名,可以省略 |
option host - name {“主机名”} | 为客户端指定主机名,可以省略 |
option ntp - server {IP 地址} | 为客户端指定时间服务器的 IP,可以省略 |
option broadcast - address {广播地址} | 为客户端指定广播地址,可以省略 |
3. 声明(Declarations)
(1) subnet
声明
- 作用:定义子网作用域,分配IP地址池及相关参数。
- 示例:
subnet 10.254.239.32 netmask 255.255.255.224 {range dynamic-bootp 10.254.239.40 10.254.239.60; # 动态IP范围option routers 10.254.239.1; # 子网网关option broadcast-address 10.254.239.31; # 广播地址
}
说明:
range
指定可分配的IP地址范围,支持多个不重叠的range。dynamic-bootp
表示同时支持DHCP和BOOTP客户端。
(2) host
声明
- 作用:为特定主机(基于MAC地址)分配固定IP(保留地址)。
- 示例:
host printer {hardware ethernet 08:00:07:26:c0:a5; # 绑定MAC地址fixed-address 192.168.1.50; # 固定IPoption host-name "office-printer"; # 指定主机名
}
说明:
hardware ethernet
必须与客户端网卡MAC地址一致。fixed-address
可以是IP或域名(需DNS解析)。
(3) group
声明
- 作用:将多个主机或子网分组,共享同一组参数或选项。
- 示例
group {option domain-name "corp.example.com"; # 组内共享DNS域名host server1 {hardware ethernet 00:11:22:33:44:55;fixed-address 10.0.1.10;}host server2 {hardware ethernet aa:bb:cc:dd:ee:ff;fixed-address 10.0.1.11;}
}
(4) range
声明
- 作用:在
subnet
中声明可分配的IP地址范围。 - 示例:
subnet 192.168.2.0 netmask 255.255.255.0 {range 192.168.2.10 192.168.2.100; # 主IP池range 192.168.2.150 192.168.2.200; # 扩展IP池(不可与主池重叠)
}
4、综合配置示例
场景:为办公网(192.168.1.0/24)分配动态IP,并为打印机和服务器保留固定地址。
# 全局配置
ddns-update-style none; # 禁用DNS动态更新
default-lease-time 7200; # 默认租约2小时
max-lease-time 14400; # 最大租约4小时
option domain-name-servers 192.168.1.2; # 全局DNS服务器# 子网声明
subnet 192.168.1.0 netmask 255.255.255.0 {range 192.168.1.100 192.168.1.200; # 动态IP范围option routers 192.168.1.1; # 网关option broadcast-address 192.168.1.255;# 保留地址(host声明)host printer {hardware ethernet 08:00:07:26:c0:a5;fixed-address 192.168.1.50;}host fileserver {hardware ethernet 00:0c:29:ab:cd:ef;fixed-address 192.168.1.10;}
}
相关文章:

Linux复习笔记(五) 网络服务配置(dhcp)
二、网络服务配置 2.5 dhcp服务配置(不涉及实际操作) 要求:知道原理和常见的参数配置就行 2.5.1 概述DHCP(Dynamic Host Configuration Protocol,动态主机配置协议) DHCP(Dynamic Host Conf…...
智慧工厂管理平台推荐?智慧工厂解决方案提供商有哪些?智慧工厂管理系统哪家好?
随着工业4.0和“双碳”目标的推进,智慧工厂管理平台成为制造企业数字化转型的核心工具。本文基于技术实力、应用场景、安全可靠三大维度,结合最新行业实践与用户需求,精选出十大智慧工厂解决方案提供商,助您快速匹配行业需求&…...
鸿蒙OSUniApp 实现的语音输入与语音识别功能#三方框架 #Uniapp
UniApp 实现的语音输入与语音识别功能 最近在开发跨平台应用时,客户要求添加语音输入功能以提升用户体验。经过一番调研和实践,我成功在UniApp项目中实现了语音输入与识别功能,现将过程和方法分享出来,希望对有类似需求的开发者有…...

windows版redis的使用
redis下载 Releases microsoftarchive/redishttps://github.com/microsoftarchive/redis/releases redis的启动和停止 进入路径的cmd 启动:redis-server.exe redis.windows.conf 停止:ctrlc 连接redis 指定要连接的IP和端口号 -h IP地址 -p 端口…...

Java版OA管理系统源码 手机版OA系统源码
Java版OA管理系统源码 手机版OA系统源码 一:OA系统的主要优势 1. 提升效率 减少纸质流程和重复性工作,自动化处理常规事务,缩短响应时间。 2. 降低成本 节省纸张、打印、通讯及人力成本,优化资源分配。 3. 规范管理 固化企…...

NineData 社区版 V4.1.0 正式发布,新增 4 条迁移链路,本地化数据管理能力再升级
NineData 社区版 V4.1.0 正式更新发布。本次通过新增 4 条迁移链路扩展、国产数据库深度适配、敏感数据保护增强等升级,进一步巩固了其作为高效、安全、易用的数据管理工具的定位。无论是开发测试、数据迁移,还是多环境的数据管理,NineData…...

进阶2_1:QT5多线程与定时器共生死
1、在widget.ui中使用 LCD Number控件 注意:若 LCD 控件不是多线程,LCD控件则会瞬间自增到最大的数值,如上图,说明两者都是多线程处理 2、实现方式 1、创建 LCD 控件并修改为 LCD1 2、创建任务类 mytask. h,对任务类…...

在虚拟机Ubuntu18.04中安装NS2教程及应用
NS2简介 一、主要组成部分: 1.NS2:模拟器本身,负责执行TCL脚本进行模拟,并生成trace文件输出结果。 2.NAM:网络动画模拟器,用于将模拟结果可视化。 二、使用的语言: 1.C:NS2中最重要…...

VBA —— 第6章子程序与函数
子程序:实现特定功能的程序代码块 子程序语法: [修饰符] Sub 子程序名称([参数1,参数2,参数3]) 代码块 End Sub 子程序如何调用: 1 . 子程序名 [参数1,参数2,...] 2. Call 子程序名 [(参…...
MySQL知识点总结(持续更新)
聚合函数通常用于对数据进行统计和聚合操作。以下是一些常见数据库系统(如 MySQL、PostgreSQL、Oracle、SQL Server 等)中常用的聚合函数: 常见的数据库聚合函数: COUNT():计算指定列中非空值的数量 SELECT COUNT(*) …...

全新开发-iVX图形化编程VS完整IDE
本文针对传统软件开发的效率与可控性矛盾,系统阐释 iVX"图形化编程 全栈 IDE" 的复合架构如何突破行业瓶颈。通过 "可视化建模 - 标准代码生成 - 独立运行" 的技术闭环,iVX 实现开发效率提升 60% 与源码完全可控的双重目标。研究揭…...
【android bluetooth 协议分析 12】【A2DP详解 1】【车机侧蓝牙音乐免切源介绍】
“车机蓝牙音乐免切源” 是近年来车载系统(IVI,In-Vehicle Infotainment)中常见的一个用户体验优化功能。它主要是为了简化蓝牙音乐播放流程、减少用户操作,提升使用便捷性。 一、什么是“切源”? 在车机系统中&#…...

【Linux系列】跨平台安装与配置 Vim 文本编辑器
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
蓝桥杯题库经典题型
1、数列排序(数组 排序) 问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<n<200 输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式 输出…...
Spring Boot整合MyBatis全攻略:原理剖析与最佳实践
MyBatis作为Java生态中最流行的ORM框架之一,与Spring Boot的结合极大地简化了数据库访问层的开发。本文将深入剖析Spring Boot整合MyBatis的核心机制,详细介绍各种使用方式,并分享实际开发中的高级技巧和最佳实践。 一、Spring Boot与MyBati…...

十天学会嵌入式技术之51单片机—day-10
第 20 章 18B20 温度检测 20.1 18B20 概述 20.1.1 简介 18B20 是一种常用的数字温度传感器,广泛应用于环境监测、工业控制、家居自动化 和设备温度监控等领域。 20.1.2 引脚功能 18B20 引脚功能如下图所示,需要特别强调的是,18B20 采用 1-…...

【C++】17. 多态
上一章节中我们讲了C三大特性的继承,这一章节我们接着来讲另一个特性——多态 1. 多态的概念 多态(polymorphism)的概念:通俗来说,就是多种形态。多态分为编译时多态(静态多态)和运行时多态(动态多态),这里我们重点讲运行时多态…...
Excel的详细使用指南
### **一、Excel基础操作** #### **1. 界面与基本概念** - **工作簿(Workbook)**:一个Excel文件(扩展名.xlsx)。 - **工作表(Worksheet)**:工作簿中的单个表格(默认名…...
没经过我同意,flink window就把数据存到state里的了?
欢迎关注我 不知道大家在初次使用Flink的时候,是否对Flink中定义本地变量和状态比较好奇,这俩有啥区别? 而且在使用Window API时明明没有显式地创建状态,也没调用getState(),却依然把每个窗口里的所有元素都自动缓存…...
Python+OpenCV打造AR/VR基础框架:从原理到实战的全链路解析
引言:重新定义数字与现实的边界 在元宇宙概念持续升温的当下,AR(增强现实)与VR(虚拟现实)技术正成为连接物理世界与数字世界的桥梁。Python凭借其丰富的计算机视觉生态(尤其是OpenCV库…...

家用或办公 Windows 电脑玩人工智能开源项目配备核显的必要性(含 NPU 及显卡类型补充)
一、GPU 与显卡的概念澄清 首先需要明确一个容易误解的概念:GPU 不等同于显卡。 显卡和GPU是两个不同的概念。 【概念区分】 在讨论图形计算领域时,需首先澄清一个常见误区:GPU(图形处理单元)与显卡(视…...

实现一个简单的 TCP 客户端/服务器
注意: TCP 三次握手建立连接建立连接后,TCP 提供全双工的通信服务,也就是在同一个连接中,通信双方 可以在同一时刻同时写数据,相对的概念叫做半双工,同一个连接的同一时刻,只能由一方来写数据T…...

对抗帕金森:在疾病阴影下,如何重掌生活主动权?
帕金森病,一种影响全球超 1000 万人的神经退行性疾病,正无声地改变着患者的生活轨迹。随着大脑中多巴胺分泌减少,患者逐渐出现肢体震颤、肌肉僵硬、步态迟缓等症状,甚至连扣纽扣、端水杯这类日常动作都变得艰难。更棘手的是&#…...

鸿蒙 UIAbility组件与UI的数据同步和窗口关闭
使用 EventHub 进行数据通信 Stage模型概念图 根据 Stage 模型概念图 UIAbility 先于 ArkUI Page 创建 所以,事件要先 .on 订阅 再 emit 发布 假如现在有页面 Page1 和他的 UIAbility // src/main/ets/page1ability/Page1Ability.ets onCreate(want: Want, laun…...
DeepSeek 赋能汽车全生态:从产品到服务的智能化跃迁
目录 一、引言二、DeepSeek 助力汽车产品介绍与推广2.1 新车性能参数与技术亮点宣传文案2.2 汽车品牌故事与文化内涵挖掘2.3 汽车广告创意与宣传方案设计 三、DeepSeek 赋能汽车售后服务支持3.1 汽车维修保养知识科普文章创作3.2 常见故障诊断与解决方案生成3.3 汽车用户个性化…...
MQTT 在Spring Boot 中的使用
在 Spring Boot 中使用 MQTT 通常会借助 Spring Integration 项目提供的 MQTT 支持。这使得 MQTT 的集成可以很好地融入 Spring 的消息驱动和企业集成模式。 以下是如何在 Spring Boot 中集成和使用 MQTT 的详细步骤: 前提条件: MQTT Brokerÿ…...

Vue3学习(组合式API——计算属性computed详解)
目录 一、计算属性computed。 Vue官方提供的案例。(普通写法与计算属性写法) 使用计算属性computed重构——>简化描述响应式状态的复杂逻辑。 (1)计算属性computed小案例。 <1>需求说明。(筛选原数组——>得新数组) &…...
Spring 中的 @ComponentScan注解详解
在 Spring 框架中,@ComponentScan 是一个非常重要的注解,它用于自动扫描和注册 Bean。通过该注解,Spring 能够自动发现并管理标注了特定注解的类(如 @Component, @Service, @Repository 等),从而实现依赖注入和容器管理。 本文将详细介绍 @ComponentScan 的作用、常见搭…...
MySQL 数据库故障排查指南
MySQL 数据库故障排查指南 本指南旨在帮助您识别和解决常见的 MySQL 数据库故障。我们将从问题识别开始,逐步深入到具体的故障类型和排查步骤。 1. 问题识别与信息收集 在开始排查之前,首先需要清晰地了解问题的现象和范围。 故障现象: 数…...

Android Studio 模拟器配置方案
Android Studio 模拟器配置方案 1.引言2.使用Android Studio中的模拟器3.使用国产模拟器1.引言 前面介绍【React Native基础环境配置】的时候需要配置模拟器,当时直接使用了USB调试方案,但是有些时候可能不太方便连接手机调试,比如没有iPhone调不了ios。接下来说明另外两种可…...