配置DHCP服务(小白的“升级打怪”成长之路)

目录

项目前准备

一、DHCP服务器配置(Rocky8)

1,关闭防火墙、安全上下文

2、配置网卡文件

3、安装hdcp-server

4、配置dhcp服务

5、重启dhcp服务

二、配置路由器

1、添加两块网卡并更改网卡配置文件

2、配置路由功能

3、挂载本地镜像并安装dhcp服务

4、配置中继转发

三、客户端查看

验证结果

四、脚本配置

1、DHCP服务器配置脚本

2、路由器配置脚本

项目前准备

项目要求 1、DHCP服务器能够为两个网络分别分配IP地址。

2、内部客户机设置为固定获得某一个IP地址。

项目前准备

1、准备四台虚拟机,分为DHCP服务器、内部客户机、路由器和外部客户机

2、配置网络连接模式

DHCP服务器和内部客户机

路由器

外部客户机

一、DHCP服务器配置(Rocky8)

1,关闭防火墙、安全上下文

[root@localhost ~]# systemctl disable --now firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead) since Mon 2025-06-16 22:13:06 EDT; 36s agoDocs: man:firewalld(1)Process: 329610 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCC>Main PID: 329610 (code=exited, status=0/SUCCESS)
​
6月 16 22:12:46 bogon systemd[1]: Starting firewalld - dynamic firewall daemon...
6月 16 22:12:46 bogon systemd[1]: Started firewalld - dynamic firewall daemon.
6月 16 22:12:46 bogon firewalld[329610]: WARNING: AllowZoneDrifting is enabled. This is considered an insecu>
6月 16 22:13:04 bogon systemd[1]: Stopping firewalld - dynamic firewall daemon...
6月 16 22:13:06 bogon systemd[1]: firewalld.service: Succeeded.
6月 16 22:13:06 bogon systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@localhost ~]# getenforce
Permissive
​

2、配置网卡文件

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.1
PREFIX=24
GATEWAY=192.168.100.254
​
[root@localhost ~]# systemctl restart NetworkManager
[root@localhost dhcp]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:5b:74:6c brd ff:ff:ff:ff:ff:ffaltname enp2s1inet 192.168.100.1/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe5b:746c/64 scope link valid_lft forever preferred_lft forever
​

3、安装hdcp-server

[root@localhost ~]# yum install -y dhcp-server
Rocky Linux 8 - AppStream                                                    2.7 kB/s | 4.8 kB     00:01    
Rocky Linux 8 - AppStream                                                    3.1 MB/s |  19 MB     00:05    
Rocky Linux 8 - BaseOS                                                       4.1 kB/s | 4.3 kB     00:01    
Rocky Linux 8 - BaseOS                                                       4.9 MB/s |  26 MB     00:05    
Rocky Linux 8 - Extras                                                       2.5 kB/s | 3.1 kB     00:01    
Rocky Linux 8 - Extras                                                        12 kB/s |  15 kB     00:01    
依赖关系解决。
=============================================================================================================软件包                       架构               版本                               仓库                大小
=============================================================================================================
安装:dhcp-server                  x86_64             12:4.3.6-50.el8_10                 baseos             529 k
安装依赖关系:bind-export-libs             x86_64             32:9.11.36-16.el8_10.4             baseos             1.1 Mdhcp-common                  noarch             12:4.3.6-50.el8_10                 baseos             207 kdhcp-libs                    x86_64             12:4.3.6-50.el8_10                 baseos             147 k
​
事务概要
=============================================================================================================
安装  4 软件包
​
总下载:2.0 M
安装大小:4.6 M
下载软件包:
(1/4): dhcp-libs-4.3.6-50.el8_10.x86_64.rpm                                  381 kB/s | 147 kB     00:00    
(2/4): dhcp-common-4.3.6-50.el8_10.noarch.rpm                                509 kB/s | 207 kB     00:00    
(3/4): dhcp-server-4.3.6-50.el8_10.x86_64.rpm                                2.4 MB/s | 529 kB     00:00    
(4/4): bind-export-libs-9.11.36-16.el8_10.4.x86_64.rpm                       1.7 MB/s | 1.1 MB     00:00    
-------------------------------------------------------------------------------------------------------------
总计                                                                         1.1 MB/s | 2.0 MB     00:01     
Rocky Linux 8 - BaseOS                                                       1.6 MB/s | 1.6 kB     00:00    
导入 GPG 公钥 0x6D745A60:Userid: "Release Engineering <infrastructure@rockylinux.org>"指纹: 7051 C470 A929 F454 CEBE 37B7 15AF 5DAC 6D74 5A60来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务准备中  :                                                                                              1/1 安装    : dhcp-libs-12:4.3.6-50.el8_10.x86_64                                                          1/4 安装    : dhcp-common-12:4.3.6-50.el8_10.noarch                                                        2/4 安装    : bind-export-libs-32:9.11.36-16.el8_10.4.x86_64                                               3/4 运行脚本: bind-export-libs-32:9.11.36-16.el8_10.4.x86_64                                               3/4 运行脚本: dhcp-server-12:4.3.6-50.el8_10.x86_64                                                        4/4 安装    : dhcp-server-12:4.3.6-50.el8_10.x86_64                                                        4/4 运行脚本: dhcp-server-12:4.3.6-50.el8_10.x86_64                                                        4/4 验证    : bind-export-libs-32:9.11.36-16.el8_10.4.x86_64                                               1/4 验证    : dhcp-common-12:4.3.6-50.el8_10.noarch                                                        2/4 验证    : dhcp-libs-12:4.3.6-50.el8_10.x86_64                                                          3/4 验证    : dhcp-server-12:4.3.6-50.el8_10.x86_64                                                        4/4 
​
已安装:bind-export-libs-32:9.11.36-16.el8_10.4.x86_64            dhcp-common-12:4.3.6-50.el8_10.noarch           dhcp-libs-12:4.3.6-50.el8_10.x86_64                       dhcp-server-12:4.3.6-50.el8_10.x86_64           
​
完毕!
​

4、配置dhcp服务

[root@localhost ~]# cd /etc/dhcp
[root@localhost dhcp]# ls
dhclient.d  dhcpd6.conf  dhcpd.conf
[root@localhost dhcp]# vim dhcpd.conf
#查看路径并复制(/usr/share/doc/dhcp-server/dhcpd.conf.example)
​
[root@localhost dhcp]# cp /usr/share/doc/dhcp-server/dhcpd.conf.example ./
[root@localhost dhcp]# ls
dhclient.d  dhcpd6.conf  dhcpd.conf  dhcpd.conf.example
[root@localhost dhcp]# cp dhcpd.conf.example dhcpd.conf
cp:是否覆盖'dhcpd.conf'? yes
[root@localhost dhcp]# ls
dhclient.d  dhcpd6.conf  dhcpd.conf  dhcpd.conf.example
​
​
#多地址池配置#
[root@localhost dhcp]# vim dhcpd.conf
#找到这项最全的,更改里面的参数#
# A slightly different configuration for an internal subnet.
subnet 192.168.100.0 netmask 255.255.255.0 {range 192.168.100.2 192.168.100.253;option domain-name-servers 192.168.100.1;#option domain-name "internal.example.org";option routers 192.168.100.254;option broadcast-address 192.168.100.255;default-lease-time 600;max-lease-time 7200;
}
subnet 192.168.200.0 netmask 255.255.255.0 {range 192.168.200.2 192.168.200.253;option domain-name-servers 192.168.100.1;#option domain-name "internal.example.org";option routers 192.168.200.254;option broadcast-address 192.168.200.255;default-lease-time 600;max-lease-time 7200;
}
​
​
​
​
#找到此项更改,绑定单一地址#set.host ens37(#更改成绑定单一地址的客户端的网卡名#) {hardware ethernet 00:0c:29:7b:65:46(#找到绑定单一地址的客户端的网卡MAC,更改此MAAC地址#);fixed-address 192.168.100.100(#更改成固定的IP地址);
}
​
​

5、重启dhcp服务

[root@localhost dhcp]# systemctl restart dhcpd
[root@localhost dhcp]# systemctl enable --now dhcpd
Created symlink /etc/systemd/system/multi-user.target.wants/dhcpd.service → /usr/lib/systemd/system/dhcpd.service.

二、配置路由器

1、添加两块网卡并更改网卡配置文件

[root@bogon ~]# cd /etc/sysconfig/network-scripts/
[root@bogon network-scripts]# ls
ifcfg-ens33  ifdown-eth   ifdown-post    ifdown-TeamPort  ifup-eth   ifup-plip    ifup-sit       init.ipv6-global
​
[root@bogon Packages]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:29:e3:11 brd ff:ff:ff:ff:ff:ffinet 192.168.100.4/24 brd 192.168.100.255 scope global dynamic ens33valid_lft 394sec preferred_lft 394secinet6 fe80::6acc:265f:ab9d:d3b6/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:29:e3:1b brd ff:ff:ff:ff:ff:ffinet 192.168.200.254/24 brd 192.168.200.255 scope global noprefixroute ens37valid_lft forever preferred_lft foreverinet6 fe80::e3e4:845e:bce5:e922/64 scope link noprefixroute valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:10:4b:1a brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:10:4b:1a brd ff:ff:ff:ff:ff:ff
​
​
[root@bogon network-scripts]# cp ifcfg-33 ifcfg-37
[root@bogon network-scripts]# vim ifcfg-ens33
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=stable-privacy
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.254
PREFIX=24
[root@bogon network-scripts]# vim ifcfg-ens37
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=stable-privacy
NAME=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.200.254
PREFIX=24
​
[root@bogon network-scripts]# systemctl restart NetworkManager
[root@bogon network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:29:e3:11 brd ff:ff:ff:ff:ff:ffinet 192.168.100.254/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 192.168.100.4/24 brd 192.168.100.255 scope global secondary dynamic ens33valid_lft 545sec preferred_lft 545secinet6 fe80::6acc:265f:ab9d:d3b6/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:29:e3:1b brd ff:ff:ff:ff:ff:ffinet 192.168.200.254/24 brd 192.168.200.255 scope global noprefixroute ens37valid_lft forever preferred_lft foreverinet6 fe80::e3e4:845e:bce5:e922/64 scope link noprefixroute valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:10:4b:1a brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:10:4b:1a brd ff:ff:ff:ff:ff:ff
​

2、配置路由功能

[root@bogon ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@bogon ~]# sysctl -p
net.ipv4.ip_forward = 1
​

3、挂载本地镜像并安装dhcp服务

[root@bogon ~]#mount /dev/sr0 /mnt
[root@bogon ~]# cd /mnt/Packages/
[root@bogon Packages]# rpm -ivh dhcp-4.2.5-82.el7.centos.x86_64.rpm 
警告:dhcp-4.2.5-82.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...1:dhcp-12:4.2.5-82.el7.centos      ################################# [100%]
[root@bogon Packages]# systemctl restart dhcpd
[root@bogon Packages]# systemctl enable --now dhcpd

4、配置中继转发

[root@bogon Packages]# dhcrelay 192.168.100.1
Dropped all unnecessary capabilities.
Internet Systems Consortium DHCP Relay Agent 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/virbr0/52:54:00:10:4b:1a
Sending on   LPF/virbr0/52:54:00:10:4b:1a
Listening on LPF/ens37/00:0c:29:29:e3:1b
Sending on   LPF/ens37/00:0c:29:29:e3:1b
Listening on LPF/ens33/00:0c:29:29:e3:11
Sending on   LPF/ens33/00:0c:29:29:e3:11
Sending on   Socket/fallback

三、客户端查看

验证结果

内部客户机

[root@localhost ~]# ip a
1: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:7b:65:46 brd ff:ff:ff:ff:ff:ffaltname enp2s5inet 192.168.100.100/24 brd 192.168.200.255 scope global dynamic noprefixroute ens37valid_lft 160sec preferred_lft 160secinet6 fe80::20c:29ff:fe7b:6546/64 scope link noprefixroute valid_lft forever preferred_lft forever

外部客户机

[root@localhost ~]# ip a
1: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:7b:65:46 brd ff:ff:ff:ff:ff:ffaltname enp2s5inet 192.168.200.2/24 brd 192.168.200.255 scope global dynamic noprefixroute ens37valid_lft 160sec preferred_lft 160secinet6 fe80::20c:29ff:fe7b:6546/64 scope link noprefixroute valid_lft forever preferred_lft forever
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.200.254 0.0.0.0         UG    100    0        0 ens33
192.168.200.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search example.org
nameserver 192.168.100.1
​

四、脚本配置

1、DHCP服务器配置脚本

#!/bin/bash
#关闭防火墙
if systemctl is-active firewalld &>/dev/null; thensystemctl disable --now firewalld
elseecho "防火墙已关闭" 
fi
iptables -F
​
#关闭selinux
if [ "$(getenforce)" = "Disabled" ]; thenecho "SELinux已经关闭"
elsesetenforce 0sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
fi
​
#配置网卡参数
nics=$(ip a | awk -F: '/ens/{print $2}' | grep -v "^$" | tr -d ' ')
echo -e "当前系统中可供配置的网卡有:\n$nics"
​
while true
doread -p "请输入要配置的网卡名称:" nicif ! echo "$nics" | grep -q "$nic"; thencontinuefiread -p "请输入配置网络参数的方式(dhcp|static):" tpif [ "$tp" = "dhcp" ]; thenecho "TYPE=Ethernet
BOOTPROTO=$tp
NAME=$nic
DEVICE=$nic
ONBOOT=yes" > /etc/sysconfig/network-scripts/ifcfg-$nicifdown $nic; ifup $nicelif [ "$tp" = "static" ]; thenread -p "输入IP地址:" ipread -p "输入子网掩码:" maskread -p "输入网关:" gw     fi
done   
​
config_dhcp(){
echo "subnet 192.168.100.0 netmask 255.255.255.0 {range 192.168.100.2 192.168.100.253;option domain-name-servers ns1.internal.example.org;option domain-name \"internal.example.org\";option routers 192.168.100.254;option broadcast-address 192.168.100.255;default-lease-time 600;max-lease-time 7200;
}       
host fantasia {hardware ethernet 08:00:07:26:c0:a5;fixed-address 192.168.100.100;
}" > /etc/dhcp/dhcpd.conf
systemctl enable --now dhcpd
}
if  rpm -q dhcp &>/dev/null
thenconfig_dhcp
elseyum install -y dhcp-serverconfig_dhcp
fi

2、路由器配置脚本

#!/bin/bash
cat << EOF
请按顺序进行:
1、配置ens33网卡
2、配置ens37网卡
3、配置路由转发
4、配置中继转发
EOF
​
read -p "请输入你的选择:" num
case $num in
1)# 配置ens33网卡为静态IP# 设置为静态IP并添加IP地址和子网掩码echo "TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.254
PREFIX=24" > /etc/sysconfig/network-scripts/ifcfg-ens33echo "ens33网卡已配置为静态IP: 192.168.100.254/24";;
2)# 配置ens37网卡为静态IP# 复制并修改配置文件cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens37# 修改网卡名称和IP地址sed -i 's/ens33/ens37/g' /etc/sysconfig/network-scripts/ifcfg-ens37sed -i 's/192.168.100.254/192.168.200.254/g' /etc/sysconfig/network-scripts/ifcfg-ens37echo "ens192网卡已配置为静态IP: 192.168.200.254/24";;
3)# 配置IP转发echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confsysctl -pecho "已启用IPv4转发";;
4)# 配置中继转发mount /dev/sr0 /mntcd /mnt/Packages/rpm -ivh dhcp-4.2.5-82.el7.centos.x86_64.rpm systemctl restart dhcpdsystemctl enable --now dhcpddhcrelay 192.168.100.1*)echo "无效的选择,请输入1-4之间的数字"exit 1;;
esac

看到感觉有帮助的朋友,劳烦动动发财的小手给博主点个赞

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

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

相关文章

云原生安全

云原生 | T Wiki 以下大部分内容参考了这篇文章 什么是云原生 云原生&#xff08;Cloud Native&#xff09; “云原生”可以从字面上拆解为“云”和“原生”两个部分来理解&#xff1a; “云”&#xff0c;是相对于“本地”而言的。传统应用部署在本地数据中心或物理服务器…

rapidocr v3.2.0发布

粗略更新日志 rapidocr v3.2.0 发布了。令我感到很开心的是&#xff1a;有 3 个小伙伴提了 PR&#xff0c;他们积极参与了进来。 更新要点如下&#xff1a; 采纳了小伙伴qianliyx 的建议&#xff0c;按照行返回单字坐标&#xff1a;同一行的单字坐标是在同一个 tuple 中的。…

Java 操作数类型冲突: varbinary 与 real 不兼容, Java中BigDecimal与SQL Server real类型冲突解决方案

要解决Java中BigDecimal类型与SQL Server中real类型冲突导致的varbinary与real不兼容错误&#xff0c;请按以下步骤操作&#xff1a; 错误原因分析 类型映射错误&#xff1a;JDBC驱动尝试将BigDecimal转换为varbinary&#xff08;二进制类型&#xff09;&#xff0c;而非目标字…

25.多子句查询

MySQL 中包含 GROUP BY、HAVING、ORDER BY、LIMIT 时的查询语法规则及应用&#xff0c;核心知识总结如下&#xff1a; 1.语法顺序规则 当 SELECT 语句同时包含 GROUP BY、HAVING、ORDER BY、LIMIT 时&#xff0c;执行顺序为&#xff1a; GROUP BY → HAVING → ORDER BY → L…

Vue3 × DataV:三步上手炫酷数据可视化组件库

DataV&#xff08;kjgl77/datav-vue3&#xff09;是专为“大屏可视化”场景打造的 Vue3 组件库&#xff0c;提供边框、装饰、等数十个开箱即用的视觉组件。本文聚焦 “在 Vue3 项目中如何正确使用 DataV”&#xff0c;从安装、全局注册到常见坑点&#xff0c;带你迅速玩转这款酷…

本地KMS服务器激活常用命令

OpenWRT内置了KMS激活的相关服务&#xff0c;配置后需要电脑本地切换到该KMS服务。相关命令如下&#xff1a; 基本功能与定义‌ slmgr是Windows内置的软件授权管理工具&#xff0c;全称为Software License Manager。其核心功能包括产品密钥安装/卸载、许可证信息查询、KMS服务器…

存货核算:个别计价法、先进先出法、加权平均法、移动加权平均法解读

存货作为企业资产的重要组成部分&#xff0c;贯穿于企业运营的各个环节&#xff0c;特别是制造业&#xff0c;企业的所有运营体系都是围绕存货来开展的。根据会计准则&#xff0c;存货是指企业在日常活动中持有以备出售的产成品或商品、处在生产过程中的在半成品&#xff0c;以…

Java异步编程:挑战、实践与未来

&#x1f4cc; 摘要 在现代高并发、高性能的系统中&#xff0c;异步编程已经成为构建响应式应用的重要手段。Java 提供了多种异步编程模型&#xff0c;从最基础的 Future 和线程池&#xff0c;到 CompletableFuture 的链式调用&#xff0c;再到反应式框架如 Project Reactor 和…

哈希函数结构:从MD到海绵的进化之路

一、MD结构&#xff1a;哈希函数的经典范式 1. Merkle-Damgrd结构核心原理 #mermaid-svg-BX4ZrTendXiyIVr0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-BX4ZrTendXiyIVr0 .error-icon{fill:#552222;}#mermaid-s…

零基础设计模式——行为型模式 - 模板方法模式

第四部分&#xff1a;行为型模式 - 模板方法模式 (Template Method Pattern) 现在我们来学习模板方法模式。这个模式在一个方法中定义一个算法的骨架&#xff0c;而将一些步骤延迟到子类中实现。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 核…

android通过adb push apk放置目录/sdcard/Download/下无法安装

本文通过对源码进行追踪,并且调试各种方式,得出android通过adb push apk放置目录/sdcard/Download/下无法安装的原因,并从两个修改点触发,提出如何能修复此问题的建议。 1. 现象 把apk通过adb push的方式放在/sdcard/Download文件夹下, (1)直接打开File(DocumentUI)…

Spring Boot整合PF4J:构建动态插拔的组件化架构

前言 在当今快速迭代的软件开发领域,业务需求的频繁变更对系统架构的灵活性和可扩展性提出了极高要求。传统的单体应用架构在面对功能的不断新增和修改时,往往会陷入代码臃肿、维护困难、扩展性差的困境。组件化开发,为解决这些问题提供了新的思路,通过实现组件的动态插拔…

剃须效率低?电铸多孔刀网设计如何提升毛发捕捉率

剃须效率低下常源于刀网对毛发的捕捉能力不足——传统冲压刀网因孔型单一、边缘毛刺等问题&#xff0c;导致胡须滑脱或拉扯。而电铸多孔刀网通过精密工艺革新&#xff0c;将毛发捕捉率提升40%以上。其核心优势在于三维立体孔型设计与微米级精度控制&#xff0c;以下是技术解析&…

进一步了解git

1、什么是集中式&#xff1f;什么是分布式&#xff1f; SVN&#xff08;集中式&#xff09; 单一中央仓库&#xff1a;所有代码和历史版本集中存储在中央服务器&#xff0c;用户本地仅保存当前工作副本。 强依赖网络&#xff1a;提交、查看历史等操作需实时连接服务器&#xf…

一、react18+项目初始化

npx create-rect-app 项目名称配置antd design mobile // 安装 npm install --save antd-mobile // 在文件中直接引入使用 import { Button } from antd-mobile <Button></Button>更改webpack配置 // 1.安装必要的包 npm install craco --save-dev // 2.修改pack…

Azure 资源清单

Azure 资源清单 作用前置条件安装PowerShell 7.0验证 Azure资源清单安装配置如果有旧版本&#xff0c;导致新模块安装不上&#xff0c;进行强制安装 PowerShell 登录到 Azure基本命令输出详细信息效果图展示 作用 官方文档&#xff1a;https://github.com/microsoft/ARI?tabr…

S11的含义-信号完整性分析

S11的含义: PCB上的互连结构是线性无源的&#xff0c;在传输信号时激励源只有一个&#xff0c;即驱动器发出的信号。如果正弦信号从端口1进入&#xff0c;根据S11定义&#xff0c;S11表示端口1出来的正弦信号和端口1进入的正弦信号的比值。工程上通常把S11称为回波损耗(Return …

基于OpenCv(开源计算机视觉库)的图像旋转匹配

OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库&#xff0c;具有跨平台特性&#xff0c;广泛应用于工业检测、医疗影像分析、自动驾驶、无人机、机器人视觉等多个领域。 本项目解决了图像模板匹配时的旋转问题。传…

Elasticsearch Open Inference API 新增对 Cohere 的 Rerank 3 模型支持

作者&#xff1a;来自 Elastic Serena Chou 及 Max Hniebergall 了解 Cohere reranking&#xff0c;如何将 Cohere 的 Rerank 3 模型与 Elasticsearch 的 open inference API 一起使用&#xff0c;以及 Elastic 在语义 reranking 方面的路线图。 注&#xff1a;原文在 2024 年 …

九日集训第六天

目录 两个数对之间最大的乘积差 三角形的最大周长 数组拆分 救生艇 摆动排序|| 分发饼干 最少操作使数组递增 使数组唯一的最小增量 有效三角形的个数 两个数对之间最大的乘积差 class Solution { public:int maxProductDifference(vector<int>& nums) {so…