当前位置: 首页 > news >正文

DNS正反向解析复习,DNS主从服务,转发服务及DNS和nginx联合案例(不断更新)

正向解析

1、配置主机名

[root@localhost ~]# dnf install bash-completion -y
#一个按tap键补全的软件
[root@localhost ~]# hostnamectl hostname dns
#改主机名为dns
[root@localhost ~]# exit
ssh root@你的IP地址
要重启才会生效

2、安装bind

[root@dns ~]# dnf install bind -y

3、修改核心配置文件(把原本的删除--ggdG)

[root@dns ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.72.135; };
directory "/var/named";
};
zone "demo.com" IN {
type master;
file "demo.com.zone";
};详细解释:
1. 整体结构
/etc/named.conf 是 BIND 服务的主配置文件,它定义了 DNS 服务器的全局选项和管理的域名区域。2. options 块
plaintext
options {listen-on port 53 { 192.168.72.135; };directory "/var/named";
};
options 关键字:用于定义 DNS 服务器的全局选项,这些选项会影响服务器的整体行为。
listen-on port 53 { 192.168.72.135; };:
listen-on 用于指定 DNS 服务器监听的 IP 地址和端口。
port 53 明确了监听的端口号,53 是 DNS 服务的标准端口。
{ 192.168.72.135; } 表示服务器仅在 IP 地址 192.168.72.135 上监听 DNS 请求。
directory "/var/named";:
此选项定义了 DNS 区域文件的存储目录。BIND 服务器会在该目录下查找和存储域名区域文件。3. zone 块
zone "demo.com" IN {type master;file "demo.com.zone";
};zone "demo.com" IN:
zone 关键字用于定义一个域名区域。
"demo.com" 是要管理的域名。
IN 表示 Internet 类,这是最常见的域名区域类型。
type master;:
type 用于指定该区域的类型。
master 表示该 DNS 服务器是 demo.com 域名区域的主服务器,负责维护该区域的权威数据。
file "demo.com.zone";:
此选项指定了 demo.com 域名区域的区域文件名称。BIND 服务器会在 directory 选项指定的目录(即 /var/named)下查找名为 demo.com.zone 的文件,该文件包含了 demo.com 域名的具体 DNS 记录。总结
这段配置文件将 DNS 服务器配置为在 IP 地址 192.168.72.135 的 53 端口上监听 DNS 请求,将区域文件存储在 /var/named 目录下,并将该服务器设置为 demo.com 域名区域的主服务器,其区域文件为 demo.com.zone。

4、校验配置文件的语法

[root@dns ~]# named-checkconf如果没有消息就说明语法是正确的,但并不代表你的配置没错。

5、编写区域数据文件

[root@dns ~]# vim /var/named/demo.com.zone
$TTL 1D
@ IN SOA @ admin.demo.com. (0 1D 2H 1W 1D)
IN NS ns.demo.com.
ns IN A 192.168.72.135
IN MX 5 mail.demo.com.
mail IN A 192.168.72.111    (目前不用这个功能,可以先随便写)
www IN A 10.10.10.10
ftp IN CNAME www详细解释:
1. $TTL 1D
$TTL 是 Time-To-Live(生存时间)的缩写,用于指定 DNS 记录在 DNS 缓存服务器中可被缓存的时长。
1D 代表 1 天,也就是 86400 秒。这意味着当其他 DNS 服务器或客户端查询该域名的记录时,若查询到结果,结果会在本地缓存 1 天,1 天后会重新向权威 DNS 服务器查询。2. @ IN SOA @ admin.demo.com. (0 1D 2H 1W 1D)
@:在区域文件里,@ 是一个占位符,代表当前的域名,也就是 demo.com。
IN:代表 Internet 类,是最常见的 DNS 记录类别。
SOA:即 Start of Authority(授权开始),是每个 DNS 区域文件都必须有的记录,它给出了该域名区域的权威信息。
@:这是主域名服务器的名称,此处表示 demo.com。
admin.demo.com.:该域名区域管理员的邮箱地址,DNS 中用 . 替代邮箱地址里的 @,所以实际的邮箱地址是 admin@demo.com。最后那个点不能省略。
括号内的数字参数:
0:序列号,每次区域文件有修改时,该序列号要递增,以便让从服务器知晓区域文件有更新。
1D:刷新时间,从服务器每隔 1 天(86400 秒)会向主服务器查询区域文件是否有更新。
2H:重试时间,若从服务器在刷新时失败,会在 2 小时(7200 秒)后重试。
1W:过期时间,若从服务器在 1 周(604800 秒)内都无法从主服务器获取更新,就会认为该区域文件无效。
1D:最小 TTL,当 DNS 记录没有单独指定 TTL 时,就使用这个最小 TTL 值。也称为minimum(否定缓存时间):3H 代表 3 小时,当 DNS 查询得到否定响应(如域名不存在)时,该否定响应会在缓存中保留 3 小时。3. IN NS ns.demo.com.
IN:同样代表 Internet 类。
NS:即 Name Server(名称服务器),用于指定该域名的权威 DNS 服务器。
ns.demo.com.:表示 ns.demo.com 是 demo.com 域名的权威 DNS 服务器。4. ns IN A 192.168.72.135
ns:是主机名,完整的域名是 ns.demo.com。
IN:Internet 类。
A:Address(地址)记录,把主机名映射到对应的 IPv4 地址。
192.168.72.135:ns.demo.com 对应的 IPv4 地址。5. IN MX 5 mail.demo.com.
IN:Internet 类。
MX:Mail Exchanger(邮件交换器)记录,用于指定接收该域名邮件的邮件服务器。
5:优先级,数值越小优先级越高,这里表示 mail.demo.com 的优先级为 5。
mail.demo.com.:接收 demo.com 域名邮件的邮件服务器。6. mail IN A 192.168.72.111
mail:主机名,完整域名是 mail.demo.com。
IN:Internet 类。
A:Address 记录,将主机名映射到 IPv4 地址。
192.168.72.111:mail.demo.com 对应的 IPv4 地址。7. www IN A 10.10.10.10
www:主机名,完整域名是 www.demo.com。
IN:Internet 类。
A:Address 记录,将主机名映射到 IPv4 地址。
10.10.10.10:www.demo.com 对应的 IPv4 地址。8. ftp IN CNAME www
ftp:主机名,完整域名是 ftp.demo.com。
IN:Internet 类。
CNAME:Canonical Name(别名)记录,把一个主机名指向另一个主机名。
www:表示 ftp.demo.com 是 www.demo.com 的别名,当查询 ftp.demo.com 时,会返回 www.demo.com 的 IP 地址。
注意,有些域名最后加点的详细解释:
在 DNS(Domain Name System)区域文件中,像 ns.demo.com. 这样最后带有一个点(.)的写法,具有重要意义,以下为你详细解释:
1. 表示根域名
在 DNS 层级结构里,整个域名系统是基于一个根域名(用 . 表示)构建的。所有域名本质上都是根域名下的子域名。例如,demo.com 实际上是 demo.com.,完整写法强调了它是从根域名衍生出来的。
所以,ns.demo.com. 中的点表明这是一个绝对域名,明确指向 DNS 层级结构中确切的位置。它完整表述了该域名在整个域名体系中的完整路径,从根域名开始,依次经过顶级域名(如 .com)、二级域名(如 demo),最终到子域名(如 ns)。
2. 避免歧义
在 DNS 区域文件中,如果不使用末尾的点,域名会被视为相对域名。相对域名的解析会依赖于当前区域文件的设置,也就是会默认在相对域名后面追加当前区域的域名。
例如,在 demo.com 这个区域文件中,如果写成 ns.demo.com(没有末尾的点),DNS 服务器在解析时可能会将其当作相对域名,进而在后面追加 .demo.com,变成 ns.demo.com.demo.com,这显然不是我们想要的结果。而使用 ns.demo.com. 这种绝对域名的写法,就能避免这种歧义,确保 DNS 服务器准确解析到我们期望的域名。
3. 遵循标准规范
在 DNS 配置和管理中,使用绝对域名并在末尾加上点是标准的做法。遵循这一规范能让配置文件更加清晰、准确,便于不同 DNS 服务器和管理员之间进行交互和理解。同时,它也有助于减少因解析错误而导致的网络故障,提高 DNS 系统的稳定性和可靠性。
综上所述,在 DNS 区域文件里使用末尾带点的绝对域名写法,是为了准确表示域名在 DNS 层级结构中的位置、避免解析歧义以及遵循标准规范。

6、验证区域数据文件的语法
[root@dns ~]# named-checkzone demo.com /var/named/demo.com.zone
zone demo.com/IN: loaded serial 0
OK

7、启动named服务

[root@dns ~]# systemctl start named

8、功能测试

[root@dns ~]# dig -t NS demo.com @192.168.72.135; <<>> DiG 9.16.23-RH <<>> -t NS demo.com @192.168.72.135
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17462
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: b4497c08c2b7da590100000067f8bffbc0c3e1ce0db2d73e (good)
;; QUESTION SECTION:
;demo.com.			IN	NS;; ANSWER SECTION:
demo.com.		86400	IN	NS	ns.demo.com.;; ADDITIONAL SECTION:
ns.demo.com.		86400	IN	A	192.168.72.135;; Query time: 1 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Fri Apr 11 15:08:43 CST 2025
;; MSG SIZE  rcvd: 98下面IP地址不一样但是解析是对应的
解析成功的判断依据
在输出的头部信息里:
plaintext
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17462其中 status: NOERROR 表明 DNS 查询没有出现错误,这是解析成功的一个关键标志。
输出各部分的含义及重要关注点
1. 全局选项信息
plaintext
; <<>> DiG 9.16.23-RH <<>> -t NS demo.com @192.168.153.129
;; global options: +cmd这部分显示了 dig 命令的版本和使用的参数,它表明你执行的是查询 demo.com 的 NS(名称服务器)记录,并且指定了 DNS 服务器为 192.168.153.129。
2. 头部信息;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17462
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
opcode: QUERY:表示这是一个标准的 DNS 查询操作。
status: NOERROR:说明查询没有错误,解析成功。
qr:代表查询响应(Query Response),表示这是一个响应消息。
aa:代表权威回答(Authoritative Answer),表明响应来自该域名的权威 DNS 服务器。
rd:代表递归查询(Recursion Desired),表示客户端希望 DNS 服务器进行递归查询。
ra:代表递归可用(Recursion Available),表示 DNS 服务器支持递归查询。
QUERY: 1:表示查询的问题数量为 1。
ANSWER: 1:表示响应中包含 1 条回答记录。
AUTHORITY: 0:表示响应中没有权威记录。
ADDITIONAL: 2:表示响应中包含 2 条额外信息记录。
3. 问题部分;; QUESTION SECTION:
;demo.com.			IN	NS
这部分展示了你所查询的问题,即查询 demo.com 的 NS 记录。
4. 回答部分;; ANSWER SECTION:
demo.com.		86400	IN	NS	ns.demo.com.
demo.com.:查询的域名。
86400:该记录的 TTL(Time-To-Live)值,单位为秒,意味着该记录可以在缓存中保留 86400 秒(也就是 1 天)。
IN:代表 Internet 类,是最常见的 DNS 记录类别。
NS:表示这是一条名称服务器记录。
ns.demo.com.:demo.com 的权威名称服务器。
5. 额外信息部分;; ADDITIONAL SECTION:
ns.demo.com.		86400	IN	A	192.168.153.129
这部分给出了额外的信息,显示了 ns.demo.com 的 A 记录,即 ns.demo.com 对应的 IPv4 地址是 192.168.153.129。
6. 其他信息;; Query time: 1 msec
;; SERVER: 192.168.153.129#53(192.168.153.129)
;; WHEN: Fri Apr 11 15:08:43 CST 2025
;; MSG SIZE  rcvd: 98
Query time: 1 msec:查询所花费的时间为 1 毫秒。
SERVER: 192.168.153.129#53(192.168.153.129):使用的 DNS 服务器地址和端口。
WHEN:查询的时间。
MSG SIZE rcvd: 98:接收到的 DNS 消息的大小为 98 字节。
重要关注点总结
状态码:重点关注 status 字段,NOERROR 表示解析成功,其他状态码可能意味着存在问题,比如 NXDOMAIN 表示域名不存在。
回答记录:确认回答记录是否符合预期,例如查询 NS 记录时,要确保返回的名称服务器信息正确。
TTL 值:TTL 值会影响 DNS 缓存的时间,需要根据实际情况进行调整。
额外信息:额外信息部分可能会提供名称服务器的 IP 地址等有用信息,有助于进一步的网络连接和排查问题。

反向解析 

 1、修改核心配置文件

[root@dns ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.72.135; };
directory "/var/named";
};
zone "demo.com" IN {
type master;
file "demo.com.zone";
};
zone "72.168.192.in-addr.arpa" IN {
type master;
file "fanxiang.zone";
};详细解释:
1. zone "72.168.192.in-addr.arpa" IN
zone:这是一个关键字,用于定义一个 DNS 区域。
"72.168.192.in-addr.arpa":这是反向 DNS 区域的名称。在反向 DNS 中,IP 地址的各段顺序会颠倒,并且使用 in-addr.arpa 作为顶级域名。这里对应的 IP 地址范围是 192.168.72.0/24,也就是从 192.168.72.0 到 192.168.72.255。
IN:代表 Internet 类,是最常见的 DNS 记录类别。
2. type master;
type:用于指定该区域的类型。
master:表示该 DNS 服务器是 72.168.192.in-addr.arpa 这个反向 DNS 区域的主服务器。主服务器负责维护该区域的权威数据,并且可以对区域文件进行修改。
3. file "fanxiang.zone";
file:用于指定该区域对应的区域文件的名称。
"fanxiang.zone":这是反向 DNS 区域的区域文件,BIND 服务器会在 options 块中 directory 选项指定的目录下查找该文件。这个文件会包含 192.168.72.0/24 这个 IP 地址段的反向 DNS 记录。

 2、编写区域数据文件

注意:上面正向解析是写完整的,真正配置有时候并不需要写完整。

[root@dns ~]# vim /var/named/fanxiang.zone
$TTL 1D
@ IN SOA @ admin.demo.com. (0 1D 2H 2W 2D)
IN NS ns
ns IN A 192.168.72.135
135 IN PTR www.demo.com.详细解释:
1. $TTL 1D
$TTL 是 Time-To-Live 的缩写,代表生存时间。它指定了 DNS 记录在 DNS 缓存服务器中可被缓存的时长。
1D 表示 1 天,即 86400 秒。这意味着当其他 DNS 服务器或客户端查询该反向解析区域的记录时,若查询到结果,结果会在本地缓存 1 天,1 天后会重新向权威 DNS 服务器查询。
2. @ IN SOA @ admin.demo.com. (0 1D 2H 2W 2D)
@:在区域文件中,@ 是一个占位符,代表当前的域名。在这里,结合前文配置,它代表的是 72.168.192.in-addr.arpa。
IN:表示 Internet 类,是最常见的 DNS 记录类别。
SOA:即 Start of Authority(授权开始),是每个 DNS 区域文件必须有的记录,它提供了该域名区域的权威信息。
第一个 @:代表主域名服务器的名称,这里实际是 ns.72.168.192.in-addr.arpa。
admin.demo.com.:该域名区域管理员的邮箱地址,在 DNS 中用 . 替代邮箱地址里的 @,所以实际的邮箱地址是 admin@demo.com。
括号内的数字参数:
0:序列号,每次区域文件有修改时,该序列号要递增,以便让从服务器知晓区域文件有更新。
1D:刷新时间,从服务器每隔 1 天(86400 秒)会向主服务器查询区域文件是否有更新。
2H:重试时间,若从服务器在刷新时失败,会在 2 小时(7200 秒)后重试。
2W:过期时间,若从服务器在 2 周(1209600 秒)内都无法从主服务器获取更新,就会认为该区域文件无效。
2D:最小 TTL,当 DNS 记录没有单独指定 TTL 时,就使用这个最小 TTL 值。
3. IN NS ns
IN:Internet 类。
NS:即 Name Server(名称服务器),用于指定该域名的权威 DNS 服务器。
ns:表示 ns.72.168.192.in-addr.arpa 是 72.168.192.in-addr.arpa 这个反向解析区域的权威 DNS 服务器。
4. ns IN A 192.168.72.135
ns:主机名,完整的域名是 ns.72.168.192.in-addr.arpa。
IN:Internet 类。
A:Address(地址)记录,将主机名映射到对应的 IPv4 地址。
192.168.72.135:ns.72.168.192.in-addr.arpa 对应的 IPv4 地址。
5. 135 IN PTR www.demo.com.
135:在反向解析区域中,这里代表 IP 地址 192.168.72.135 的最后一段。因为反向解析是从 IP 地址的最后一段开始,结合区域名 72.168.192.in-addr.arpa,完整的反向解析域名是 135.72.168.192.in-addr.arpa。
IN:Internet 类。
PTR:Pointer(指针)记录,用于反向域名解析,将 IP 地址映射到对应的域名。
www.demo.com.:表示 IP 地址 192.168.72.135 对应的域名是 www.demo.com。

3.严重区域配置文件语法

named-checkzone 72.168.192.in-addr.arpa /var/named/fanxiang.zone
zone 72.168.192.in-addr.arpa/IN: loaded serial 0
OK

4.重启named服务

[root@dns ~]# systemctl restart named

5. 功能检查

dig -x 192.168.72.135 @192.168.72.135
dig 是一个在 Linux 和其他类 Unix 系统中常用的 DNS 诊断工具,用于查询 DNS 服务器并获取域名或 IP 地址的相关信息。
dig -x 192.168.72.135 @192.168.72.135 命令各部分含义如下:
-x:这是 dig 命令的一个选项,专门用于反向 DNS 查询。反向 DNS 查询是将 IP 地址解析为对应的域名,与正向查询(将域名解析为 IP 地址)相反。
192.168.72.135:这是你要进行反向查询的 IP 地址。也就是说,你希望知道这个 IP 地址对应的域名是什么。
@192.168.72.135:@ 符号用于指定要查询的 DNS 服务器地址。这里指定使用 192.168.72.135 这个 IP 地址对应的 DNS 服务器来进行查询。
可能的输出及含义
1. 成功查询

如果反向 DNS 配置正确,并且 192.168.72.135 对应的 DNS 服务器中存在该 IP 地址的反向解析记录,你可能会看到类似如下的输出:

; <<>> DiG 9.16.23-RH <<>> -x 192.168.72.135 @192.168.72.135
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4321
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;135.72.168.192.in-addr.arpa.	IN	PTR;; ANSWER SECTION:
135.72.168.192.in-addr.arpa. 86400 IN	PTR	www.demo.com.;; Query time: 1 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Fri Apr 11 16:30:00 CST 2025
;; MSG SIZE  rcvd: 98

  • status: NOERROR:表示查询没有错误,即成功查询到结果。
  • ANSWER SECTION:这部分给出了查询的答案。135.72.168.192.in-addr.arpa 是将 IP 地址 192.168.72.135 转换为反向 DNS 查询的域名格式,PTR 记录显示该 IP 地址对应的域名是 www.demo.com

如果 192.168.72.135 对应的 DNS 服务器中没有该 IP 地址的反向解析记录,你可能会看到如下输出:

; <<>> DiG 9.16.23-RH <<>> -x 192.168.72.135 @192.168.72.135
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 4321
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;135.72.168.192.in-addr.arpa.	IN	PTR;; Query time: 1 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Fri Apr 11 16:30:00 CST 2025
;; MSG SIZE  rcvd: 98
  • status: NXDOMAIN:表示未找到该域名对应的记录,即没有为 192.168.72.135 配置反向解析记录。
  • ANSWER SECTION 为空:说明没有返回任何答案。
3. 其他错误

如果 DNS 服务器出现问题,如无法访问、配置错误等,可能会出现其他错误状态码,如 SERVFAIL(服务器故障)等,同时会有相应的错误提示信息。

主从服务

首先需要两台主机,一台做为主服务,一台作为从服务。它们的主机名分别为 master 和
slave。

配置主服务器

1、修改主机名
[root@dns ~]# hostnamectl hostname master
2、安装bind软件
[root@master ~]# dnf install bind -y
3、修改核心配置文件
[root@master ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.72.135; };
directory "/var/named";
};
zone "web.com" IN {
type master;
file "web.com.zone";
};
zone "72.168.192.in-addr.arpa" IN {
type master;
file "web.com.arpa";
};
4、编写区域数据文件
正向解析
[root@master ~]# vim /var/named/web.com.zone
$TTL 1D
@ IN SOA web.com. admin.web.com. (0 1D 1H 1W 1D)
IN NS ns1.web.com.
IN NS ns2
ns1 IN A 192.168.72.135
ns2 IN A 192.168.72.132
www IN A 192.168.72.135反向解析
[root@master ~]# vim /var/named/web.com.arpa
$TTL 1D
@ IN SOA @ admin.web.com. (0 1D 1H 1W 1D)
IN NS ns1
IN NS ns2
ns1 IN A 192.168.72.135
ns2 IN A 192.168.72.132
135 IN PTR www.web.com.
132 IN PTR www.web.com.详细解释:
1. $TTL 1D
$TTL 代表 Time-To-Live(生存时间),用于规定 DNS 记录在 DNS 缓存服务器中可被缓存的时长。
1D 表示 1 天,也就是 86400 秒。这意味着当其他 DNS 服务器或客户端查询该区域的记录时,若查询到结果,结果会在本地缓存 1 天,1 天后会重新向权威 DNS 服务器查询。2. @ IN SOA web.com. admin.web.com. (0 1D 1H 1W 1D)
@:在区域文件里是占位符,代表当前域名,即 web.com。
IN:表示 Internet 类,是常见的 DNS 记录类别。
SOA:即 Start of Authority(授权开始),是每个 DNS 区域文件必备的记录,它给出了该域名区域的权威信息。
web.com.:主域名服务器的名称。
admin.web.com.:该域名区域管理员的邮箱地址,DNS 中用 . 替代邮箱地址里的 @,实际邮箱地址是 admin@web.com。
括号内的数字参数:
0:序列号,每次区域文件有修改时,该序列号要递增,以便让从服务器知晓区域文件有更新。
1D:刷新时间,从服务器每隔 1 天(86400 秒)会向主服务器查询区域文件是否有更新。
1H:重试时间,若从服务器在刷新时失败,会在 1 小时(3600 秒)后重试。
1W:过期时间,若从服务器在 1 周(604800 秒)内都无法从主服务器获取更新,就会认为该区域文件无效。
1D:最小 TTL,当 DNS 记录没有单独指定 TTL 时,就使用这个最小 TTL 值。3. IN NS ns1.web.com. 和 IN NS ns2
IN:Internet 类。
NS:即 Name Server(名称服务器),用于指定该域名的权威 DNS 服务器。
ns1.web.com.:明确 ns1.web.com 是 web.com 域名的权威 DNS 服务器之一。
ns2:完整域名是 ns2.web.com,它也是 web.com 域名的权威 DNS 服务器之一。4. ns1 IN A 192.168.72.135 和 ns2 IN A 192.168.72.132
ns1 和 ns2:分别是主机名,完整域名是 ns1.web.com 和 ns2.web.com。
IN:Internet 类。
A:Address(地址)记录,将主机名映射到对应的 IPv4 地址。
192.168.72.135 和 192.168.72.132:分别是 ns1.web.com 和 ns2.web.com 对应的 IPv4 地址。5. www IN A 192.168.72.135
www:主机名,完整域名是 www.web.com。
IN:Internet 类。
A:Address 记录,将主机名映射到 IPv4 地址。
192.168.72.135:www.web.com 对应的 IPv4 地址。反向解析区域文件 /var/named/web.com.arpa
1. $TTL 1D
含义与正向解析区域文件中的 $TTL 1D 相同,即默认的 DNS 记录缓存时间为 1 天。2. @ IN SOA @ admin.web.com. (0 1D 1H 1W 1D)
@:代表当前的反向解析区域,这里推测可能是 72.168.192.in-addr.arpa(根据前面的 IP 地址推测)。
其他部分含义与正向解析区域文件中的 SOA 记录相同。3. IN NS ns1 和 IN NS ns2
表示 ns1 和 ns2(完整域名分别是 ns1.72.168.192.in-addr.arpa 和 ns2.72.168.192.in-addr.arpa)是该反向解析区域的权威 DNS 服务器。4. ns1 IN A 192.168.72.135 和 ns2 IN A 192.168.72.132
含义与正向解析区域文件中的类似,分别给出了 ns1 和 ns2 对应的 IPv4 地址。5. 135 IN PTR www.web.com. 和 132 IN PTR www.web.com.
135 和 132:在反向解析区域中,分别代表 IP 地址 192.168.72.135 和 192.168.72.132 的最后一段。完整的反向解析域名分别是 135.72.168.192.in-addr.arpa 和 132.72.168.192.in-addr.arpa。
IN:Internet 类。
PTR:Pointer(指针)记录,用于反向域名解析,将 IP 地址映射到对应的域名。
www.web.com.:表示 IP 地址 192.168.72.135 和 192.168.72.132 对应的域名都是 www.web.com。

配置从服务器

1.修改主机名
[root@dns ~]# hostnamectl hostname slave
2.按照bind 
[root@slave ~]# dnf install bind -y
3.修改核心配置文件
[root@slave ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.72.132; };
directory "/var/named";
};
zone "web.com" IN {
type slave;
masters { 192.168.72.135; };
file "slaves/web.com";
};
zone "72.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.72.135; };
file "slaves/web.arpa";
};详细解释:
全局选项部分(options 块)options {listen-on port 53 { 192.168.72.132; };directory "/var/named";
};listen-on port 53 { 192.168.72.132; };:
listen-on 用于指定 DNS 服务器监听的 IP 地址和端口。
port 53 表明监听的是标准的 DNS 服务端口。
{ 192.168.72.132; } 意味着该 DNS 服务器仅在 IP 地址 192.168.72.132 上监听来自客户端的 DNS 查询请求。
directory "/var/named";:
此选项定义了 DNS 区域文件的存储目录。BIND 服务器会在该目录下查找和存储相关的区域文件。
正向解析区域部分(zone "web.com" 块)zone "web.com" IN {type slave;masters { 192.168.72.135; };file "slaves/web.com";
};
zone "web.com" IN:
zone 关键字用于定义一个域名区域。
"web.com" 是要管理的域名。
IN 表示 Internet 类,是最常见的域名区域类型。
type slave;:
type 用于指定该区域的类型。
slave 表示该 DNS 服务器是 web.com 域名区域的从服务器。从服务器会从主服务器(Master Server)同步区域文件,以确保数据的一致性。
masters { 192.168.72.135; };:
masters 用于指定该从服务器从哪个主服务器同步区域文件。
{ 192.168.72.135; } 表明主服务器的 IP 地址是 192.168.72.135。
file "slaves/web.com";:
此选项指定了 web.com 域名区域的区域文件名称。BIND 服务器会在 directory 选项指定的目录(即 /var/named)下的 slaves 子目录中查找名为 web.com 的文件,该文件将存储从主服务器同步过来的 web.com 域名的 DNS 记录。反向解析区域部分(zone "72.168.192.in-addr.arpa" 块)zone "72.168.192.in-addr.arpa" IN {type slave;masters { 192.168.72.135; };file "slaves/web.arpa";
};
zone "72.168.192.in-addr.arpa" IN:
定义了一个反向解析区域,对应的 IP 地址范围是 192.168.72.0/24。
IN 同样表示 Internet 类。
type slave;:
表明该服务器是 72.168.192.in-addr.arpa 反向解析区域的从服务器。
masters { 192.168.72.135; };:
指出该反向解析区域的主服务器 IP 地址为 192.168.72.135。
file "slaves/web.arpa";:
指定了反向解析区域的区域文件名称,BIND 服务器会在 /var/named/slaves 目录下查找名为 web.arpa 的文件,该文件将存储从主服务器同步过来的反向解析记录。
4.启动服务
[root@master ~]# systemctl start named
[root@slave ~]# systemctl start named查看从服务器是否从主服务器接受了区域文件
[root@slave ~]# ls /var/named/slaves/
5.关闭防火墙 
当服务启动后,从服务并没有向主服务接取区域数据文件。原因是两台主机的防火墙没有关
闭,我们关闭防火墙。
[root@master ~]# systemctl stop firewalld
[root@slave ~]# systemctl stop firewalld关闭后重启服务
[root@master ~]# systemctl restart named
[root@slave ~]# systemctl restart named然后在看是否有文件
[root@slave slaves]# ls
web.arpa web.com
6.出现错误

比如只有一个正向解析的文件,查看日志

tail /var/log/messages在从服务器和主服务器分别查询以下IP与之前不同,但相匹配
主服务器
[root@master named]# tail /var/log/messages 
Apr 11 17:14:30 localhost dnf[34560]: Updating Subscription Management repositories.
Apr 11 17:14:30 localhost dnf[34560]: Unable to read consumer identity
Apr 11 17:14:30 localhost dnf[34560]: This system is not registered with an entitlement server. You can use subscription-manager to register.
Apr 11 17:14:30 localhost dnf[34560]: Metadata cache refreshed recently.
Apr 11 17:14:30 localhost systemd[1]: dnf-makecache.service: Deactivated successfully.
Apr 11 17:14:30 localhost systemd[1]: Finished dnf makecache.
Apr 11 17:16:29 localhost named[34492]: client @0x7f773000d238 192.168.153.8#34471: received notify for zone 'web.com'
Apr 11 17:16:29 localhost named[34492]: client @0x7f772c009e08 192.168.153.8#56315 (153.168.192.in-addr.arpa): transfer of '153.168.192.in-addr.arpa/IN': AXFR started (serial 0)
Apr 11 17:16:29 localhost named[34492]: client @0x7f772c009e08 192.168.153.8#56315 (153.168.192.in-addr.arpa): transfer of '153.168.192.in-addr.arpa/IN': AXFR ended: 1 messages, 8 records, 233 bytes, 0.001 secs (233000 bytes/sec) (serial 0)
Apr 11 17:16:29 localhost named[34492]: client @0x7f7714000cc8 192.168.153.8#52655: received notify for zone '153.168.192.in-addr.arpa'从服务器
[root@slave ~]# tail /var/log/messages 
Apr 11 17:16:31 tomcat2 named[33970]: network unreachable resolving './DNSKEY/IN': 2001:500:2f::f#53
Apr 11 17:16:31 tomcat2 named[33970]: network unreachable resolving './DNSKEY/IN': 2001:dc3::35#53
Apr 11 17:16:31 tomcat2 named[33970]: network unreachable resolving './DNSKEY/IN': 2001:7fe::53#53
Apr 11 17:16:32 tomcat2 named[33970]: resolver priming query complete
Apr 11 17:16:32 tomcat2 named[33970]: checkhints: b.root-servers.net/A (170.247.170.2) missing from hints
Apr 11 17:16:32 tomcat2 named[33970]: checkhints: b.root-servers.net/A (199.9.14.201) extra record in hints
Apr 11 17:16:32 tomcat2 named[33970]: checkhints: b.root-servers.net/AAAA (2801:1b8:10::b) missing from hints
Apr 11 17:16:32 tomcat2 named[33970]: checkhints: b.root-servers.net/AAAA (2001:500:200::b) extra record in hints
Apr 11 17:16:32 tomcat2 named[33970]: managed-keys-zone: Key 20326 for zone . is now trusted (acceptance timer complete)
Apr 11 17:16:32 tomcat2 named[33970]: managed-keys-zone: Key 38696 for zone . is now trusted (acceptance timer complete)

功能测试

从服务器测试[root@slave ~]# dig -t A www.web.com @192.168.72.135  
命令整体功能
该命令的主要功能是向指定的 DNS 服务器查询域名 www.web.com 的 A 记录。A 记录是 DNS 中最基本的记录类型之一,它的作用是将域名映射到对应的 IPv4 地址。
命令各部分详细解释
dig:这是命令的主体,它是一个强大的 DNS 查询工具,可用于执行各种类型的 DNS 查询操作。
-t:这是 dig 命令的一个选项,-t 后面需要跟上要查询的 DNS 记录类型。在这个例子中,-t A 表示要查询的是 A 记录。除了 A 记录,常见的 DNS 记录类型还有 MX(邮件交换记录)、NS(名称服务器记录)、CNAME(规范名称记录)等。
www.web.com:这是你要查询的目标域名。你希望通过 DNS 查询获取这个域名对应的 IPv4 地址。
@192.168.72.135:@ 符号用于指定要查询的 DNS 服务器地址。这里指定使用 IP 地址为 192.168.72.135 的 DNS 服务器来进行查询。如果不指定 @ 及后面的 DNS 服务器地址,dig 会默认使用系统配置的 DNS 服务器进行查询。
可能的输出及含义
1. 成功查询
如果查询成功,并且 www.web.com 在 192.168.72.135 这个 DNS 服务器上有对应的 A 记录,你可能会看到类似如下的输出:; <<>> DiG 9.16.23-RH <<>> -t A www.web.com @192.168.72.135
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4321
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.web.com.			IN	A;; ANSWER SECTION:
www.web.com.		86400	IN	A	192.168.72.100;; Query time: 1 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Fri Apr 11 18:30:00 CST 2025
;; MSG SIZE  rcvd: 98
status: NOERROR:表示查询没有错误,即成功查询到结果。
ANSWER SECTION:这部分给出了查询的答案。www.web.com 的 A 记录显示该域名对应的 IPv4 地址是 192.168.72.100。86400 是该记录的 TTL(Time-To-Live)值,单位为秒,意味着该记录可以在缓存中保留 86400 秒(也就是 1 天)。
2. 未找到记录
如果 www.web.com 在 192.168.72.135 这个 DNS 服务器上没有对应的 A 记录,你可能会看到如下输出:; <<>> DiG 9.16.23-RH <<>> -t A www.web.com @192.168.72.135
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 4321
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.web.com.			IN	A;; Query time: 1 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Fri Apr 11 18:30:00 CST 2025
;; MSG SIZE  rcvd: 98status: NXDOMAIN:表示未找到该域名对应的记录,即 www.web.com 在这个 DNS 服务器上没有 A 记录。
ANSWER SECTION 为空:说明没有返回任何答案。
3. 其他错误
如果 DNS 服务器出现问题,如无法访问、配置错误等,可能会出现其他错误状态码,如 SERVFAIL(服务器故障)等,同时会有相应的错误提示信息。
综上所述,通过这个 dig 命令,你可以验证 www.web.com 在指定 DNS 服务器上的 A 记录是否正确配置,以及能否正常查询到对应的 IPv4 地址。

这里主服务器IP为192.168.153.129  从服务器IP为192.168.153.8
[root@slave ~]# dig -t A www.web.com @192.168.153.8; <<>> DiG 9.16.23-RH <<>> -t A www.web.com @192.168.153.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10356
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 4b7dfd010087c3e80100000067f8f77a684ced536baa38aa (good)
;; QUESTION SECTION:
;www.web.com.			IN	A;; ANSWER SECTION:
www.web.com.		86400	IN	A	192.168.153.129;; Query time: 0 msec
;; SERVER: 192.168.153.8#53(192.168.153.8)
;; WHEN: Fri Apr 11 19:05:30 CST 2025
;; MSG SIZE  rcvd: 84

关闭主服务器

[root@master ~]# systemctl stop named
[root@slave ~]# dig -t A www.web.com @192.168.72.132
; <<>> DiG 9.16.23-RH <<>> -t A www.web.com @192.168.72.132
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18916
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL:
1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: ef3b256908dd241c0100000067f66a9ae2b6942436a43cc1 (good)
;; QUESTION SECTION:
;www.web.com. IN A
;; ANSWER SECTION:
www.web.com. 86400 IN A 192.168.72.135
;; Query time: 0 msec
;; SERVER: 192.168.72.132#53(192.168.72.132)
;; WHEN: Wed Apr 09 20:39:54 CST 2025
;; MSG SIZE rcvd: 84你关闭了主 DNS 服务器(named 服务),但从从服务器 192.168.72.132 对 www.web.com 的 A 记录查询结果来看,仍然能正常获取到域名对应的 IP 地址。下面为你详细解释这一现象。
1. 从服务器正常响应的原因
从服务器在主服务器关闭的情况下仍能响应查询,是因为从服务器之前已经从主服务器同步了 web.com 区域的 DNS 数据。从服务器会定期从主服务器同步区域文件,将这些数据存储在本地的区域文件中(在你之前的配置里,正向解析文件为 /var/named/slaves/web.com)。所以,即使主服务器停止运行,从服务器依然可以根据本地存储的区域文件来响应客户端的 DNS 查询。

相关文章:

DNS正反向解析复习,DNS主从服务,转发服务及DNS和nginx联合案例(不断更新)

正向解析 1、配置主机名 [rootlocalhost ~]# dnf install bash-completion -y #一个按tap键补全的软件 [rootlocalhost ~]# hostnamectl hostname dns #改主机名为dns [rootlocalhost ~]# exit ssh root你的IP地址 要重启才会生效2、安装bind [rootdns ~]# dnf install b…...

甜心速达智慧潮流精选超市、即时零售新业态,打造可持续发展商业模式

四川甜心速达科技有限公司、现公司运营高管团队均为美团高级运营师&#xff0c;公司高管团队人均获得“全国工商联人才交流服务中心”创业指导师、市场营销师等、公司致力于优化线上店铺人效比和资源匹配等问题&#xff0c;已经实现了对即时零售行业的资源整合&#xff0c;并融…...

大白话聊MySQL覆盖索引

目录 一、什么是覆盖索引&#xff1f;二、使用了覆盖索引 vs 没使用覆盖索引的区别三、例子说明四、总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&#xff0c;可以多多支持一下&#xff0c;感谢&#x1f917;&#xff01; …...

C++ inline和define(宏)

文章目录 Inline 函数是什么意思&#xff1f;C中哪些函数不能声明为inline?内联(inline)函数和 #define&#xff08;宏&#xff09; Inline 函数是什么意思&#xff1f; inline是内联的意思&#xff0c;可以定义比较小的函数。因为函数频繁调用会占用很多的栈空间&#xff0c…...

Python中的eval()函数详解

文章目录 Python中的eval()函数详解基本语法基本用法安全性问题安全使用建议实际应用场景与exec()的区别性能考虑总结 Python中的eval()函数详解 eval()是Python的一个内置函数&#xff0c;用于执行字符串形式的Python表达式并返回结果。它是一个强大但需要谨慎使用的函数。 …...

rancher 解决拉取dashboard-shell镜像失败的问题

问题背景 在 Kubernetes 集群中部署 Rancher 后&#xff0c;点击右上角的 "Shell" 按钮时&#xff0c;Rancher 会动态创建一个 dashboard-shell-xxxxx Pod&#xff0c;用于提供 Web 终端功能。然而&#xff0c;由于默认镜像 rancher/shell:v0.1.21 托管在 Docker Hu…...

在Ubuntu服务器上安装Docker(支持Ubuntu 20.04/22.04等版本):

1. 卸载旧版本&#xff08;如有&#xff09; 如果系统曾安装过旧版Docker&#xff0c;先清理残留&#xff1a; sudo apt remove docker docker-engine docker.io containerd runc2. 添加Docker官方仓库 安装依赖工具 sudo apt update sudo apt install -y ca-certificates …...

【Linux 进程控制】—— 进程亦生生不息:起于鸿蒙,守若空谷,归于太虚

欢迎来到一整颗红豆的博客✨&#xff0c;一个关于探索技术的角落&#xff0c;记录学习的点滴&#x1f4d6;&#xff0c;分享实用的技巧&#x1f6e0;️&#xff0c;偶尔还有一些奇思妙想&#x1f4a1; 本文由一整颗红豆原创✍️&#xff0c;感谢支持❤️&#xff01;请尊重原创…...

K8s常用基础管理命令(一)

基础管理命令 基础命令kubectl get命令kubectl create命令kubectl apply命令kubectl delete命令kubectl describe命令kubectl explain命令kubectl run命令kubectl cp命令kubectl edit命令kubectl logs命令kubectl exec命令kubectl port-forward命令kubectl patch命令 集群管理命…...

WebChat 一款非常好用的浏览器侧边栏 AI 问答插件

文章目录 使用方法及效果展示划线引用自定义工具自定义模型设置 主要功能1. 划线引用功能2. 自定义划线工具3. 聊天功能4. 历史记录管理5. 界面特性 安装方法方法一&#xff1a;直接安装发布版本&#xff08;推荐&#xff09;方法二&#xff1a;从源码构建安装&#xff08;开发…...

kubernetes入门篇之创建一个nginx容器

上几篇讲了部署master和worker node 及网络插件calico&#xff0c; 现在开始实际运行一个容器。 1. 新建nginx.yaml文件 方式1&#xff1a;直接创建一个pod 和一个 service&#xff0c;一般不直接这样创建&#xff0c;该方式仅适用于测试或学习 apiVersion: v1 kind: Pod …...

回顾 | 2025香港Web3嘉年华:CertiK以创新技术定义安全未来

4月6日至9日&#xff0c;Web3安全巨头CertiK亮相2025香港Web3嘉年华。活动期间&#xff0c;CertiK不仅设立独立展位与广大Web3生态参与者深入互动&#xff0c;更通过高层次的技术交流与前沿研究成果展示&#xff0c;成为本届盛会备受瞩目的焦点。 耶鲁大学计算机科学系教授、C…...

HTML5的笔记

文章目录 1.HTML的概念1.1HTML的基本骨架 2.标签语法2.1标签的关系 3.标签3.1双标签3.1.1标题标签<h1~h6>3.1.2段落标签<p>3.1.3文本格式化标签3.1.4超链接标签<a>3.1.5音频和视频标签audio和<vedio>3.1.6列表标签3.1.7表格标签 3.2单标签3.2.1换行标签…...

LeetCode.2843. 统计对称整数的数目

统计对称整数的数目 题目解题思路思路1.v1Code 思路优化1.v2Code 思路优化1.v3Code复杂度分析 题目 2843. 统计对称整数的数目 给你两个正整数 low 和 high 。 对于一个由 2 * n 位数字组成的整数 x &#xff0c;如果其前 n 位数字之和与后 n 位数字之和相等&#xff0c;则认…...

Java常用工具算法-6--秘钥托管云服务3--微软zure Key Vault

Azure Key Vault是微软Azure提供的一项服务&#xff0c;旨在帮助用户安全地存储和管理敏感信息&#xff0c;如加密密钥、证书和密码等。它提供了一个集中的位置来保护这些重要资产&#xff0c;并且通过细粒度的访问控制和审计日志来确保安全性。 1、主要功能 &#xff08;1&a…...

表格开启聚光灯,查看数据不错行-Excel易用宝

面对如此庞大的一个表格&#xff0c;每次找数据就像走迷宫一样&#xff0c;有时看到了数据&#xff0c;眼神不好的小丽小手一抖还会选择到其他数据上&#xff0c;我问她个数据&#xff0c;她经常给我报个错的数据&#xff0c;我说怎么数据总是对不上号。 对于大表格防看错行这…...

解决java使用easyexcel填充模版后,高度不一致问题

自定义工具&#xff0c;可以通过获取上一行行高设置后面所以行的高度 package org.springblade.modules.api.utils;import com.alibaba.excel.write.handler.RowWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.wr…...

【25软考网工笔记】第二章 数据通信基础(1)信道特性 奈奎斯特 香农定理

一、信道特性 1. 数据通信概念 1&#xff09;通信系统的基本元素 通信目的: 传递信息。 信源: 产生和发送信息的一端&#xff0c;即信息发送的源头。 信宿: 接收信息的一端&#xff0c;即信息的目的地。 信道: 信源和信宿之间的通信线路&#xff0c;用于传输信息。 信号变换:…...

2024年React最新高频面试题及核心考点解析,涵盖基础、进阶和新特性,助你高效备战

以下是2024年React最新高频面试题及核心考点解析&#xff0c;涵盖基础、进阶和新特性&#xff0c;助你高效备战&#xff1a; 一、基础篇 React虚拟DOM原理及Diff算法优化策略 • 必考点&#xff1a;虚拟DOM树对比&#xff08;同级比较、Key的作用、组件类型判断&#xff09; …...

【Code】《代码整洁之道》笔记-Chapter11-系统

第11章 系统 “复杂要人命。它消磨开发者的生命&#xff0c;让产品难以规划、构建和测试。” 11.1 如何建造一个城市 你能自己掌管一切细节吗&#xff1f;大概不行。即便是管理一个既存的城市&#xff0c;也是靠单人能力无法做到的。不过&#xff0c;城市还是在运转&#…...

MySQL数据库编程总结

MySQL数据库编程总结 一、数据库概述 数据库定义 • 数据库是管理数据的软件系统&#xff0c;用于高效存储、管理和检索数据&#xff0c;减少冗余。 • 核心功能&#xff1a;通过SQL语言定义、操作数据&#xff0c;维护完整性和安全性。 常见数据库 • MySQL、Oracle、SQL Ser…...

MySQL学习笔记7【InnoDB】

Innodb 1. 架构 1.1 内存部分 buffer pool 缓冲池是主存中的第一个区域&#xff0c;里面可以缓存磁盘上经常操作的真实数据&#xff0c;在执行增删查改操作时&#xff0c;先操作缓冲池中的数据&#xff0c;然后以一定频率刷新到磁盘&#xff0c;这样操作明显提升了速度。 …...

HTML应用指南:利用GET请求获取全国汉堡王门店位置信息

在当今快节奏的都市生活中&#xff0c;餐饮品牌的门店布局不仅反映了其市场策略&#xff0c;更折射出消费者对便捷、品质和品牌认同的追求。汉堡王&#xff08;Burger King&#xff09;作为全球知名的西式快餐品牌之一&#xff0c;在中国市场同样占据重要地位。自进入中国市场以…...

STM32+EC600E 4G模块 与华为云平台通信

前言 由于在STM32巡回研讨会上淘了一块EC600E4G模块以及刚办完电信卡多了两张副卡&#xff0c;副卡有流量刚好可以用一下&#xff0c;试想着以后画一块ESP32板子搭配这个4G模块做个随身WIFI&#xff0c;目前先用这个模块搭配STM32玩一下云平顺便记录一下。 实验目的 实现STM…...

【Spring】IoC详解:五大类注解、类Bean的存储(上)

1.IoC本质 IoC&#xff08;Inversion of Control&#xff0c;控制反转&#xff09; 是Spring框架的灵魂&#xff0c;它颠覆了传统编程中“谁用谁造”的逻辑。简单来说&#xff0c;IoC就是把对象创建和管理的控制权从程序员手中“反转”给一个外部容器&#xff0c;让代码更灵活…...

图片压缩后失真?3款工具还原高清细节

在当今&#xff0c;图片的使用无处不在。为了便于存储和传输&#xff0c;我们常常会对图片进行压缩。然而&#xff0c;不少人发现&#xff0c;压缩后的图片往往变得模糊&#xff0c;失去了原本的清晰度和细节。那么&#xff0c;当遇到这种情况时&#xff0c;我们该如何将模糊的…...

2025中国移动云智算大会|彩讯企业级AI应用产品引关注

2025中国移动以“由云向智&#xff0c;共绘算网新生态”为主题&#xff0c;精心打造了一场智能科技展。中国移动携手生态伙伴带来涵盖算力、工具、模型、应用等覆盖多样化场景的AI应用服务&#xff0c;赋能生产方式、生活方式、社会治理方式的数智化解决方案&#xff0c;充分释…...

在新一代人工智能技术引领下的,相互联系、层层递进的明厨亮灶开源了

明厨亮灶视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。AI技术可以24小时…...

修图自由!自建IOPaint服务器,手机平板随时随地远程调用在线P图

前言&#xff1a;在这个人人都想当摄影师的时代&#xff0c;一张完美的照片简直比中彩票还难。但别担心&#xff0c;今天我来给大家揭秘一个超级神器——IOPaint&#xff01;这款免费开源的AI工具不仅能一键移除照片中的杂物和路人&#xff0c;还能智能扩展图片内容&#xff0c…...

PyTorch实现二维卷积与边缘检测:从原理到实战

本文通过PyTorch实现二维互相关运算、自定义卷积层&#xff0c;并演示如何通过卷积核检测图像边缘。同时&#xff0c;我们将训练一个卷积核参数&#xff0c;使其能够从数据中学习边缘特征。 1. 二维互相关运算的实现 互相关运算&#xff08;Cross-Correlation&#xff09;是卷…...

解决Server doesn‘t support Accept-Ranges问题

Cannot download differentially, fallback to full download: Error: Server doesnt support Accept-Ranges (response code 200) 解决方案 修改nginx配置文件支持Accept-Ranges&#xff08;范围请求&#xff09; server {...location ^~/ {default_type multipart/byterang…...

处理Excel表不等长时间序列用tsfresh提取时序特征

我原本的时间序列格式是excel表记录的&#xff0c;每一行是一条时间序列&#xff0c;时间序列不等长。 要把excel表数据读取出来之后转换成extract_features需要的格式。 1.读取excel表数据 import pandas as pd import numpy as np from tsfresh import extract_features mda…...

Linux __命令和权限

目录 一、几个指令 bc uname -r 指令 重要的几个热键 二、Shell命令以及运行原理 为什么有外壳 外壳是如何工作的 什么是操作系统&#xff0c;为什么要有操作系统 三、文件类型 1、Linux的文件类型 2、文件类型 四、用户 用户问题和切换问题 增加普通用户 root -&…...

IO流——字符输入输出流:FileReader FileWriter

一、文件字符输入流&#xff1a;FileReader 作用&#xff1a;以内存为基准&#xff0c;可以把文件中的数据以字符的形式读入到内存中去 public class Test5 {public static void main(String[] args) {try (Reader fr new FileReader("E:\\IDEA\\JavaCodeAll\\file-io-t…...

【大模型理论篇】DeepResearcher论文分析-通过在真实环境中的强化学习实现深度研究

1. 背景与问题 大模型&#xff08;LLMs&#xff09;配合网络搜索功能已经展现出在深度研究任务中的巨大潜力。然而&#xff0c;目前的方法主要依赖两种途径&#xff1a; 人工设计的提示工程&#xff08;Prompt Engineering&#xff09;&#xff1a;这种方法依靠手动设计的工作流…...

大数据(7.5)Kafka Edge在5G边缘计算中的革新实践:解锁毫秒级实时处理的无限可能

目录 一、5G时代边缘计算的算力革命1.1 传统架构的延迟困境1.2 5G网络特性与Kafka适配 二、Kafka Edge核心架构设计2.1 分层处理架构2.2 关键技术创新点2.2.1 协议优化2.2.2 轻量化存储引擎 三、5G场景落地实践3.1 智能工厂预测性维护3.2 全息远程医疗会诊 四、性能优化深度实践…...

【基于开源insightface的人脸检测,人脸识别初步测试】

简介 InsightFace是一个基于深度学习的开源人脸识别项目,由蚂蚁金服的深度学习团队开发。该项目提供了人脸检测、人脸特征提取、人脸识别等功能,支持多种操作系统和深度学习框架。本文将详细介绍如何在Ubuntu系统上安装和实战InsightFace项目。 目前github有非常多的人脸识…...

kafka怎么保证消息不被重复消费

在 Kafka 中&#xff0c;要保证消息不被重复消费&#xff0c;可从消费者端和生产者端分别采取不同策略&#xff0c;下面为你详细介绍&#xff1a; 消费者端实现幂等消费 幂等消费是指对同一条消息&#xff0c;无论消费多少次&#xff0c;产生的业务结果都是一样的。 业务层面…...

一个批量文件Dos2Unix程序(Microsoft Store,开源)

这个程序可以把整个目录的文本文件改成UNIX格式&#xff0c;源码是用C#写的。 目录 一、从Microsoft Store安装 二、从github获取源码 三、功能介绍 3.1 运行 3.2 浏览 3.3 转换 3.4 转换&#xff08;无列表&#xff09; 3.5 取消 3.6 帮助 四、源码解读 五、讨论和…...

Python及Javascript的map 、 filter 、reduce类似函数的对比汇总

A. 在Python中&#xff0c;map 和 filter 是两个非常有用的内置函数&#xff0c;它们分别用于对可迭代对象中的每个元素执行某种操作&#xff0c;并返回结果。在JavaScript中&#xff0c;虽然没有内置的 map 和 filter 函数&#xff0c;但是可以使用数组的 map() 和 filter() …...

Linux中OS的管理和进程的概念

一、OS的管理 1.1操作系统宏观的理解 OS的本质是一款进行资源管理的软件 图示&#xff1a; 1.2OS存在的意义 1.2.1计算机的分层式管理结构 最底层的硬件部分遵循“冯诺依曼体系” &#xff0c;每一种硬件都在驱动层中有着自己对应的“驱动程序” 在OS中&#xff0c;驱动管…...

Spring定时任务修仙指南:从@Scheduled到分布式调度的终极奥义

各位被Thread.sleep()和while(true)折磨的Spring道友们&#xff01;今天要解锁的是Spring生态自带的定时任务三件套——Scheduled、TaskScheduler、Async定时组合技&#xff01;无需引入外部依赖&#xff0c;轻松实现从简单定时到分布式调度的全场景覆盖&#xff01;准备好抛弃…...

Node.js多版本共存管理工具NVM(最新版本)详细使用教程(附安装包教程)

目录 前言 一、Nvm下载 二、Nvm安装 三、配置nodeJS 前言 NVM&#xff08;Node Version Manager&#xff09;是一个用于管理多个Node.js版本的工具&#xff0c;主要帮助开发者在同一设备上轻松安装、切换和卸载不同版本的Node.js&#xff0c;解决项目间版本冲突问题。 一、…...

管道魔法木马利用Windows零日漏洞部署勒索软件

微软披露&#xff0c;一个现已修复的影响Windows通用日志文件系统&#xff08;CLFS&#xff09;的安全漏洞曾被作为零日漏洞用于针对少数目标的勒索软件攻击中。 01 攻击目标与漏洞详情 这家科技巨头表示&#xff1a;"受害者包括美国信息技术&#xff08;IT&#xff09…...

Devops之Argo:Argo 是什么,和现在常用的Jenkins之间的区别

Argo CD&#xff08;Argo Continuous Delivery 的缩写&#xff09;是一款基于 GitOps 的声明式 Kubernetes 持续交付工具。它提供了一种以 Git 为中心的方法来管理和部署应用程序到 Kubernetes 集群。Argo CD 遵循 GitOps 的原则&#xff0c;即将应用程序的预期状态存储在 Git …...

从 60 FPS 掉帧到 7.6 倍提速Rust + WebAssembly 优化《生命游戏》的实战指南

一、构建 FPS 统计器&#xff1a;用 performance.now() 实时观察性能变化 要优化&#xff0c;就要先 测量。我们在 JavaScript 端添加一个 fps 对象&#xff0c;结合 performance.now() 来监控每一帧的耗时&#xff0c;并统计最近 100 帧的平均 FPS、最小 FPS、最大 FPS&#…...

jmeter 集成ZAP进行接口测试中的安全扫描 实现方案

以下是将 JMeter 集成 ZAP(OWASP Zed Attack Proxy)进行接口测试中安全扫描的实现方案: 1. 环境准备 JMeter 安装:从 JMeter 官方网站(https://jmeter.apache.org/download_jmeter.cgi)下载并安装 JMeter,确保其版本稳定。ZAP 安装:从 ZAP 官方网站(https://www.zapr…...

Hyperlane 文件分块上传服务端

Hyperlane 文件分块上传服务端&#xff1a;高效、可靠、易用的文件上传解决方案 引言 在现代 Web 开发中&#xff0c;文件上传是许多应用的核心功能之一。然而&#xff0c;随着文件大小的增加和网络环境的复杂性&#xff0c;传统的单次文件上传方式已经难以满足需求。Hyperla…...

BT面板docker搭建excalidraw遇到的问题

1.傻瓜式拉取镜像 2.点击创建容器 3.暴露端口 4.放行端口和服务器安全组&#xff0c;如果用的是轻量型服务器&#xff0c;那就关闭防火墙 下面放图...

Qt之OpenGL使用Qt封装好的着色器和编译器

代码 #include "sunopengl.h"sunOpengl::sunOpengl(QWidget *parent) {}unsigned int VBO,VAO; float vertices[]{0.5f,0.5f,0.0f,0.5f,-0.5f,0.0f,-0.5f,-0.5f,0.0f,-0.5f,0.5f,0.0f };unsigned int indices[]{0,1,3,1,2,3, }; unsigned int EBO; sunOpengl::~sunO…...