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

DNS服务(Linux)

DNS 介绍

dns,Domain Name Server,它的作用是将域名解析为 IP 地址,或者将IP地址解析为域名。

这需要运行在三层和四层,也就是说它需要使用 TCP 或 UDP 协议,并且需要绑定端口,53。在使用时先通过 UDP 去查询,哪里 UDP 查询不到再使用 TCP 查询。

bind软件

安装

[root@localhost ~]# dnf install bind -y
Updating Subscription Management repositories.
Unable to read consumer identity
​
This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.
​
BaseOS                                                                                        2.7 MB/s | 2.7 kB     00:00    
AppStream                                                                                     2.9 MB/s | 3.2 kB     00:00    
Dependencies resolved.
==============================================================================================================================Package                           Architecture           Version                             Repository                 Size
==============================================================================================================================
Installing:bind                              x86_64                 32:9.16.23-24.el9_5                 appStream                 509 k
Installing dependencies:bind-dnssec-doc                   noarch                 32:9.16.23-24.el9_5                 appStream                  49 kbind-libs                         x86_64                 32:9.16.23-24.el9_5                 appStream                 1.2 Mbind-license                      noarch                 32:9.16.23-24.el9_5                 appStream                  14 kfstrm                             x86_64                 0.6.1-3.el9                         appStream                  30 klibmaxminddb                      x86_64                 1.5.2-4.el9                         appStream                  35 klibuv                             x86_64                 1:1.42.0-2.el9_4                    appStream                 151 kprotobuf-c                        x86_64                 1.3.3-13.el9                        baseOS                     37 kpython3-bind                      noarch                 32:9.16.23-24.el9_5                 appStream                  72 kpython3-ply                       noarch                 3.11-14.el9                         baseOS                    111 k
Installing weak dependencies:bind-dnssec-utils                 x86_64                 32:9.16.23-24.el9_5                 appStream                 122 kbind-utils                        x86_64                 32:9.16.23-24.el9_5                 appStream                 213 k
​
Transaction Summary
==============================================================================================================================
Install  12 Packages
​
Total size: 2.6 M
Installed size: 7.2 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                                                                      1/1 Installing       : bind-license-32:9.16.23-24.el9_5.noarch                                                             1/12 Installing       : protobuf-c-1.3.3-13.el9.x86_64                                                                      2/12 Installing       : libuv-1:1.42.0-2.el9_4.x86_64                                                                       3/12 Installing       : libmaxminddb-1.5.2-4.el9.x86_64                                                                     4/12 Installing       : fstrm-0.6.1-3.el9.x86_64                                                                            5/12 Installing       : bind-libs-32:9.16.23-24.el9_5.x86_64                                                                6/12 Installing       : bind-utils-32:9.16.23-24.el9_5.x86_64                                                               7/12 Installing       : bind-dnssec-doc-32:9.16.23-24.el9_5.noarch                                                          8/12 Installing       : python3-ply-3.11-14.el9.noarch                                                                      9/12 Installing       : python3-bind-32:9.16.23-24.el9_5.noarch                                                            10/12 Installing       : bind-dnssec-utils-32:9.16.23-24.el9_5.x86_64                                                       11/12 Running scriptlet: bind-32:9.16.23-24.el9_5.x86_64                                                                    12/12 Installing       : bind-32:9.16.23-24.el9_5.x86_64                                                                    12/12 Running scriptlet: bind-32:9.16.23-24.el9_5.x86_64                                                                    12/12 Verifying        : protobuf-c-1.3.3-13.el9.x86_64                                                                      1/12 Verifying        : python3-ply-3.11-14.el9.noarch                                                                      2/12 Verifying        : bind-32:9.16.23-24.el9_5.x86_64                                                                     3/12 Verifying        : bind-dnssec-doc-32:9.16.23-24.el9_5.noarch                                                          4/12 Verifying        : bind-dnssec-utils-32:9.16.23-24.el9_5.x86_64                                                        5/12 Verifying        : bind-libs-32:9.16.23-24.el9_5.x86_64                                                                6/12 Verifying        : bind-license-32:9.16.23-24.el9_5.noarch                                                             7/12 Verifying        : bind-utils-32:9.16.23-24.el9_5.x86_64                                                               8/12 Verifying        : fstrm-0.6.1-3.el9.x86_64                                                                            9/12 Verifying        : libmaxminddb-1.5.2-4.el9.x86_64                                                                    10/12 Verifying        : libuv-1:1.42.0-2.el9_4.x86_64                                                                      11/12 Verifying        : python3-bind-32:9.16.23-24.el9_5.noarch                                                            12/12 
Installed products updated.
​
Installed:bind-32:9.16.23-24.el9_5.x86_64                                bind-dnssec-doc-32:9.16.23-24.el9_5.noarch                  bind-dnssec-utils-32:9.16.23-24.el9_5.x86_64                   bind-libs-32:9.16.23-24.el9_5.x86_64                        bind-license-32:9.16.23-24.el9_5.noarch                        bind-utils-32:9.16.23-24.el9_5.x86_64                       fstrm-0.6.1-3.el9.x86_64                                       libmaxminddb-1.5.2-4.el9.x86_64                             libuv-1:1.42.0-2.el9_4.x86_64                                  protobuf-c-1.3.3-13.el9.x86_64                              python3-bind-32:9.16.23-24.el9_5.noarch                        python3-ply-3.11-14.el9.noarch                              
​
Complete!DNS 服务中的 bind
bind(Berkeley Internet Name Domain)是 Linux 系统中广泛使用的 DNS(Domain Name System)服务器软件。
功能:它的主要功能是将域名解析为 IP 地址,或者将 IP 地址反向解析为域名。借助 bind,你可以搭建自己的 DNS 服务器,对域名解析进行管理和配置。
配置:bind 的配置文件通常位于 /etc/bind 目录下,主要的配置文件是 named.conf,而区域文件则用于定义具体的域名解析规则。
示例配置:// named.conf.options
options {directory "/var/cache/bind";forwarders {8.8.8.8;8.8.4.4;};dnssec-validation auto;auth-nxdomain no;    # conform to RFC1035listen-on-v6 { any; };
};// named.conf.local
zone "example.com" {type master;file "/etc/bind/db.example.com";
};// db.example.com
$TTL    604800
@       IN      SOA     ns1.example.com. admin.example.com. (2         ; Serial604800         ; Refresh86400         ; Retry2419200         ; Expire604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.example.com.
@       IN      A       192.168.1.100
ns1     IN      A       192.168.1.100
www     IN      A       192.168.1.100在这些配置文件中,定义了 DNS 服务器的全局选项、域名区域以及具体的解析记录。通过配置 bind,你可以让 DNS 服务器依据这些规则进行域名解析。

查看

[root@localhost ~]# rpm -ql bind
/etc/named.conf     # 主配置文件
/etc/named.rfc1912.zones    # 区域数据配置文件
......
/var/named      # 区域数据文件存放目录
/var/named/named.empty  # 正向解析模板文件
/var/named/named.localhost
/var/named/named.loopback # 反向解析模板文件
/var/named/slaves       # 辅助区域配置文件存放目录
.......
/usr/lib/systemd/system/named.service       #  服务启动文件

查看正向解析模板文件

[root@localhost ~]# cat /var/named/named.empty
$TTL 3H
@   IN SOA  @ rname.invalid. (0   ; serial   序号1D  ; refresh  刷新时间1H  ; retry     重试时间1W  ; expire    过期时间3H )    ; minimum  否定缓存时间NS  @A   127.0.0.1AAAA    ::1整体结构概述
此区域文件包含了起始授权机构(SOA)记录、名称服务器(NS)记录、IPv4 地址记录(A)和 IPv6 地址记录(AAAA)。这些记录为 DNS 解析提供了关键信息。
详细解释
1. $TTL 3H
$TTL 是一个指令,用来设置该区域文件里所有资源记录的默认生存时间(Time To Live)。
3H 代表 3 小时,意味着这些记录在 DNS 缓存中的有效时长为 3 小时。超过这个时间,缓存中的记录将被视为无效,需要重新从权威 DNS 服务器获取。
2. @ IN SOA @ rname.invalid. (
@:在区域文件里,@ 是一个占位符,代表该区域的域名。一般而言,它会被替换为该区域的实际域名。
IN:表明这是一个 Internet 类的 DNS 记录,这是最常见的 DNS 记录类型。
SOA:即起始授权机构(Start of Authority)记录,它是每个 DNS 区域文件中必不可少的记录,为该区域提供权威信息。
@:作为主名称服务器,这里的 @ 同样代表该区域的域名。
rname.invalid.:这是负责该区域的管理员的电子邮件地址。由于 DNS 不允许使用 @ 符号,所以用 . 来替代。比如 rname.invalid. 实际上代表 rname@invalid。
3. 序列号及相关时间参数
plaintext
0   ; serial  序号
1D  ; refresh 刷新时间
1H  ; retry   重试时间
1W  ; expire  过期时间
3H  ; minimum 否定缓存时间
serial(序列号):其值为 0,这个序列号用于标识区域文件的版本。当区域文件内容有更新时,序列号需要增加,这样从属 DNS 服务器就能通过比较序列号来判断是否需要更新本地缓存。
refresh(刷新时间):1D 代表 1 天,从属 DNS 服务器每隔 1 天就会尝试从主 DNS 服务器获取最新的区域文件。
retry(重试时间):1H 代表 1 小时,若从属 DNS 服务器在刷新区域文件时失败,会在 1 小时后再次尝试。
expire(过期时间):1W 代表 1 周,若从属 DNS 服务器在 1 周内都无法从主 DNS 服务器获取最新的区域文件,那么它将认为该区域文件已过期,不再提供该区域的解析服务。
minimum(否定缓存时间):3H 代表 3 小时,当 DNS 查询得到否定响应(如域名不存在)时,该否定响应会在缓存中保留 3 小时。
4. NS @
NS:即名称服务器(Name Server)记录,它指定了负责该区域的 DNS 服务器。
@:这里代表该区域的域名,表明该区域的权威 DNS 服务器就是该区域本身。
5. A 127.0.0.1
A:是 IPv4 地址记录,它将域名映射到对应的 IPv4 地址。
127.0.0.1:这是本地回环地址,意味着该区域的域名解析到本地主机。
6. AAAA ::1
AAAA:为 IPv6 地址记录,它把域名映射到对应的 IPv6 地址。
::1:这是 IPv6 的本地回环地址,表明该区域的域名在 IPv6 环境下解析到本地主机。
总结
这个 named.empty 文件构建了一个基础的 DNS 区域,把域名解析到本地主机,并且设定了区域文件的更新和缓存策略。在实际应用中,你需要依据具体需求对这些记录进行修改和扩展。

查看反向解析模板文件

[root@localhost ~]# cat /var/named/named.loopback
$TTL 1D
@   IN SOA  @ rname.invalid. (0   ; serial1D  ; refresh1H  ; retry1W  ; expire3H )    ; minimumNS  @A   127.0.0.1AAAA    ::1PTR localhost.1. PTR 记录的用途
正常情况下,DNS 的正向解析是把域名解析为 IP 地址,比如通过 www.example.com 解析出对应的 IP 地址(如 192.168.1.100)。而反向解析则是相反的过程,它依据 IP 地址找出对应的域名。反向解析在很多场景中都很重要,例如邮件服务器验证、网络安全审计等。2. PTR localhost. 的具体解释
PTR:这是记录类型,表明这是一条反向解析记录。
localhost.:这是与 IP 地址对应的域名。结合前面的 A 记录 A 127.0.0.1 和 AAAA 记录 AAAA ::1,这里的 PTR localhost. 表示将 IPv4 地址 127.0.0.1 和 IPv6 地址 ::1 反向解析为域名 localhost.。

服务启动文件

[root@localhost ~]# cat /usr/lib/systemd/system/named.service
[Unit]
Description=Berkeley Internet Name Domain (DNS)
Wants=nss-lookup.target
Wants=named-setup-rndc.service
Before=nss-lookup.target
After=named-setup-rndc.service
After=network.target
​
[Service]
Type=forking
Environment=NAMEDCONF=/etc/named.conf
EnvironmentFile=-/etc/sysconfig/named
Environment=KRB5_KTNAME=/etc/named.keytab
PIDFile=/run/named/named.pid
​
ExecStartPre=/bin/bash -c 'if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi'
ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS
ExecReload=/bin/sh -c 'if /usr/sbin/rndc null > /dev/null 2>&1; then /usr/sbin/rndc reload; else /bin/kill -HUP $MAINPID; fi'
​
ExecStop=/bin/sh -c '/usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID'
​
PrivateTmp=true
​
[Install]
WantedBy=multi-user.target

查看主配置文件

[root@localhost ~]# cat /etc/named.conf
# 配置的核心选项
options {# 监听哪个主机的 53 端口,以IPv4的格式来监听,一般写当前主机的IP地址。注意此文件中每一行结束使用的分号listen-on port 53 { 127.0.0.1; };listen-on-v6 port 53 { ::1; };# 指定区域数据文件存放目录directory   "/var/named";# 指定缓存文件所在路径dump-file   "/var/named/data/cache_dump.db";# 指定统计文件所在路径statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";# 指定安全文件所在路径secroots-file   "/var/named/data/named.secroots";recursing-file  "/var/named/data/named.recursing";# 是否允许查询,此配置可以删除,如果允许所有人查询,将它的值设置为 any,如果值为 localhost则表示只能当前主机查询allow-query     { localhost; };
​# 是否允许递归查询,一般会设置为 falserecursion yes;
​dnssec-validation yes;
​managed-keys-directory "/var/named/dynamic";geoip-directory "/usr/share/GeoIP";
​# 进程pid文件pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";
​# 包含的配置include "/etc/crypto-policies/back-ends/bind.config";
};
# 日志配置
logging {channel default_debug {file "data/named.run";severity dynamic;};
};
# 根服务配置
zone "." IN {type hint;file "named.ca";
};
# 引入的区域数据配置文件
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

DNS正向解析配置

需求:将 www.example.com 解析为你们电脑中虚拟机的IP地址,比如我们 IP是 192.168.153.7

实现步骤

1、安装bind软件

2、修改主配置文件

[root@localhost ~]# vim /etc/named.conf
options {listen-on port 53 { 192.168.72.135; };directory       "/var/named";
};
zone "example.com" IN {type master;file "example.zone";
};详细解释:
全局选项部分(options 块)options {listen-on port 53 { 192.168.72.135; };directory         "/var/named";
};listen-on port 53 { 192.168.72.135; };
listen-on:此指令用于指定 DNS 服务器监听的网络接口和端口。
port 53:表明 DNS 服务器将在 TCP 和 UDP 的 53 号端口上监听请求,因为 53 号端口是 DNS 服务的标准端口。
{ 192.168.72.135; }:这里指定了 DNS 服务器仅监听 IP 地址为 192.168.72.135 的网络接口。也就是说,只有发往该 IP 地址 53 号端口的 DNS 请求才会被处理。如果有多块网卡或多个 IP 地址,你可以添加多个 IP 地址,例如 { 192.168.72.135; 192.168.72.136; }。
directory "/var/named";
directory:该指令定义了 DNS 服务器查找区域文件的默认目录。区域文件包含了域名到 IP 地址的映射等 DNS 记录。在这个配置中,所有区域文件都将从 /var/named 目录下查找。例如,后续配置中提到的 example.zone 文件就会在这个目录下寻找。
区域配置部分(zone 块)zone "example.com" IN {type master;file "example.zone";
};zone "example.com" IN
zone:这是定义一个 DNS 区域的关键字。
"example.com":指定了要配置的域名区域,即 example.com。这个区域包含了与 example.com 相关的所有 DNS 记录。
IN:表示这是一个 Internet 类的 DNS 区域,这是最常见的区域类型。
type master;
type:用于指定该区域的类型,这里的 master 表明这台 DNS 服务器是 example.com 区域的主服务器。主服务器拥有该区域的权威数据,它可以对区域文件进行修改,并将更新同步给从属服务器。
file "example.zone";
file:指定了存储该区域 DNS 记录的文件名称。在这个配置中,example.com 区域的所有 DNS 记录都存储在 /var/named/example.zone 文件中。该文件应包含如 SOA(起始授权机构)、NS(名称服务器)、A(IPv4 地址记录)等各种 DNS 记录。
总结
这个配置文件的主要作用是让 DNS 服务器监听特定 IP 地址的 53 号端口,将 /var/named 作为区域文件的存储目录,并将 example.com 区域的管理职责赋予这台服务器,相关的 DNS 记录存储在 example.zone 文件中。

3、检测主配置文件是否有语法错误

[root@localhost ~]# named-checkconf[root@tomcat1 /]# named-checkconf 
/etc/named.conf:3: '{' expected near '53'
有提示说明有错误,没有提示说明正确,以上错误可能是你没写port

执行这条命令后,如果没有输出任何信息表示主配置文件没有错误。

4、编写区域数据配置文件

[root@localhost ~]# vim /var/named/example.zone
$TTL    1D
@       IN      SOA     ns.example.com. admin.example.com. (01H1W2M1D)IN      NS      nsIN      MX  5   mail
ns      IN      A       192.168.72.135      # NS 记录要批向当前DNS服务器的IP地址
www     IN      A       10.10.10.11
mail    IN      A       92.68.22.14
web     IN      CNAME   www                 # CNAME记录是别名记录你提供的 example.zone 文件是一个 DNS 区域文件,用于定义 example.com 域名的 DNS 记录。下面为你详细解释文件中各部分的含义:
1. $TTL 1D
$TTL 是一个指令,用于设置该区域文件中所有资源记录的默认生存时间(Time To Live)。
1D 表示 1 天,意味着这些记录在 DNS 缓存中的有效时间为 1 天。超过这个时间,缓存中的记录将被视为无效,需要重新从权威 DNS 服务器获取。
2. @ IN SOA ns.example.com. admin.example.com. (...)
@:在区域文件中,@ 是一个占位符,代表该区域的域名,即 example.com。
IN:表示这是一个 Internet 类的 DNS 记录,这是最常见的 DNS 记录类型。
SOA:即起始授权机构(Start of Authority)记录,是每个 DNS 区域文件中必须存在的记录,为该区域提供权威信息。
ns.example.com.:主名称服务器的域名,负责该区域的 DNS 解析。
admin.example.com.:负责该区域的管理员的电子邮件地址。由于 DNS 不允许使用 @ 符号,所以用 . 来替代。例如 admin.example.com. 实际上代表 admin@example.com。
序列号及相关时间参数
plaintext
0       ; serial  序列号
1H      ; refresh 刷新时间
1W      ; retry   重试时间
2M      ; expire  过期时间
1D      ; minimum 否定缓存时间
serial(序列号):值为 0,这个序列号用于标识区域文件的版本。当区域文件内容有更新时,序列号需要增加,以便从属 DNS 服务器通过比较序列号来判断是否需要更新本地缓存。
refresh(刷新时间):1H 表示 1 小时,从属 DNS 服务器每隔 1 小时会尝试从主 DNS 服务器获取最新的区域文件。
retry(重试时间):1W 表示 1 周,如果从属 DNS 服务器在刷新区域文件时失败,会在 1 周后再次尝试。
expire(过期时间):2M 表示 2 个月,如果从属 DNS 服务器在 2 个月内都无法从主 DNS 服务器获取最新的区域文件,那么它将认为该区域文件已过期,不再提供该区域的解析服务。
minimum(否定缓存时间):1D 表示 1 天,当 DNS 查询得到否定响应(如域名不存在)时,该否定响应会在缓存中保留 1 天。
3. IN NS ns
NS:即名称服务器(Name Server)记录,指定了负责该区域的 DNS 服务器。
ns:这里的 ns 实际上是 ns.example.com 的简写,表示该区域的权威 DNS 服务器是 ns.example.com。
4. IN MX 5 mail
MX:即邮件交换器(Mail Exchanger)记录,用于指定接收该域名电子邮件的邮件服务器。
5:是优先级,数值越小,优先级越高。
mail:实际上是 mail.example.com 的简写,表示 mail.example.com 是接收 example.com 域名电子邮件的邮件服务器。
5. ns IN A 192.168.72.135
A:是 IPv4 地址记录,将域名映射到对应的 IPv4 地址。
ns:即 ns.example.com,表示 ns.example.com 的 IPv4 地址是 192.168.72.135。
6. www IN A 10.10.10.11
A:IPv4 地址记录。
www:即 www.example.com,表示 www.example.com 的 IPv4 地址是 10.10.10.11。
7. mail IN A 92.68.22.14
A:IPv4 地址记录。
mail:即 mail.example.com,表示 mail.example.com 的 IPv4 地址是 92.68.22.14。
8. web IN CNAME www
CNAME:即规范名称(Canonical Name)记录,也称为别名记录。
web:即 web.example.com,表示 web.example.com 是 www.example.com 的别名,访问 web.example.com 实际上会被解析为 www.example.com 的 IP 地址。
总结
这个 example.zone 文件定义了 example.com 域名的 DNS 记录,包括主名称服务器、邮件服务器、Web 服务器等的相关信息,以及它们对应的 IP 地址和别名。这些记录为 DNS 解析提供了必要的信息,使得用户可以通过域名访问相应的服务。

5、检测区域数据匹配文件的语法

# 格式:named-checkzone  要解析的域名    这个域名解析对应区域数据文件的路径
[root@localhost ~]# named-checkzone example.com /var/named/example.zone 
zone example.com/IN: loaded serial 0
OK

6、启动服务

[root@localhost ~]# systemctl start named

7、检测解析是否成功

# 1. 解析NS记录
# 使用格式:dig -t 要解析的记录类型  域名     @DNS服务器的IP地址
[root@localhost ~]# dig -t NS example.com @192.168.72.135
​
; <<>> DiG 9.16.23-RH <<>> -t NS example.com @192.168.72.135
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12332
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
​
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 4d561b462550d8b20100000067e9400ac355adc305b548e5 (good)
;; QUESTION SECTION:
;example.com.           IN  NS
​
;; ANSWER SECTION:
example.com.        86400   IN  NS  ns.example.com.
​
;; ADDITIONAL SECTION:
ns.example.com.     86400   IN  A   192.168.72.135
​
;; Query time: 0 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Sun Mar 30 20:58:50 CST 2025
;; MSG SIZE  rcvd: 101
​
​
# 2. 解析A记录
[root@localhost ~]# dig -t A www.example.com @192.168.72.135
​
; <<>> DiG 9.16.23-RH <<>> -t A www.example.com @192.168.72.135
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53940
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
​
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: b6d24840a685a6930100000067e940958baf9d4b8a53e81f (good)
;; QUESTION SECTION:
;www.example.com.       IN  A
​
;; ANSWER SECTION:
www.example.com.    86400   IN  A   10.10.10.11
​
;; Query time: 0 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Sun Mar 30 21:01:09 CST 2025
;; MSG SIZE  rcvd: 88

以上代码具体作用: 

命令一:dig -t NS example.com @192.168.72.135
命令解析
dig:这是一个在 Linux、Unix 以及 macOS 系统里常用的 DNS 查询工具,其功能是向 DNS 服务器发送查询请求,并且显示响应结果。
-t NS:-t 是 dig 命令里用于指定查询记录类型的选项,NS 代表名称服务器(Name Server)记录。该记录的作用是指定负责某个域名的权威 DNS 服务器。
example.com:此为要查询的域名。
@192.168.72.135:@ 后面跟的是 DNS 服务器的 IP 地址,意味着要向 192.168.72.135 这个 DNS 服务器发起查询请求。
命令作用
这条命令的用途是向 IP 地址为 192.168.72.135 的 DNS 服务器查询 example.com 域名的 NS 记录,也就是获取负责 example.com 域名的权威 DNS 服务器列表。
命令二:dig -t A www.example.com @192.168.72.135
命令解析
dig:同样是 DNS 查询工具。
-t A:A 代表 IPv4 地址记录,该记录的作用是将域名映射到对应的 IPv4 地址。
www.example.com:要查询的具体域名。
@192.168.72.135:指定向 192.168.72.135 这个 DNS 服务器发起查询请求。
命令作用
这条命令的用途是向 IP 地址为 192.168.72.135 的 DNS 服务器查询 www.example.com 域名的 A 记录,也就是获取 www.example.com 对应的 IPv4 地址。
总结
这两条 dig 命令能够帮助你验证 DNS 服务器的配置是否正确,以及域名解析是否能够正常工作。通过查询不同类型的 DNS 记录,你可以了解域名的权威 DNS 服务器信息和具体的 IP 地址映射情况。

 

DNS反向解析配置

需求:将 192.168.72.135 解析为 www.exampe.com。实现:1、修改主配置文件[root@localhost ~]# vim /etc/named.conf
options {listen-on port 53 { 192.168.72.135; };directory       "/var/named";
};
zone "72.168.192.in-addr.arpa" IN {type master;file "fanxiang.zone";
};
2、检测主配置文件的语法[root@localhost ~]# named-checkconf
3、编写区域数据反向解析文件[root@localhost ~]# vim /var/named/fanxiang.zone
$TTL    1D
@       IN      SOA     ns.example.com. amdin.example.com. (71D1W2M1D )IN      NS      ns
ns      IN      A       192.168.72.135
135     IN      PTR     www.example.com.
4、检测区域文件的语法[root@localhost ~]# named-checkzone 72.168.192.in-addr.arpa /var/named/fanxiang.zone 
zone 72.168.192.in-addr.arpa/IN: loaded serial 7
OK
5、启动服务[root@localhost ~]# systemctl restart named
6、功能测试[root@localhost ~]# dig -x 192.168.72.135 @192.168.72.135
​
; <<>> 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: 54279
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
​
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: be29844f0e1189e30100000067e9456f6d407ccdce24d52e (good)
;; QUESTION SECTION:
;135.72.168.192.in-addr.arpa.   IN  PTR
​
;; ANSWER SECTION:
135.72.168.192.in-addr.arpa. 86400 IN   PTR www.example.com.72.168.192.in-addr.arpa.
​
;; Query time: 0 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Sun Mar 30 21:21:51 CST 2025
;; MSG SIZE  rcvd: 137

 
[root@localhost ~]# dig -x 192.168.72.135 @192.168.72.135详解

dig -x 192.168.72.135 @192.168.72.135 这条命令使用了 dig 工具来进行 DNS 查询,下面为你详细解释该命令的各个部分及其作用:
命令解析
dig
dig(Domain Information Groper)是一个在 Linux、Unix 以及 macOS 系统中常用的 DNS 诊断工具,它的主要功能是向 DNS 服务器发送查询请求,并显示详细的响应结果,常用于测试 DNS 服务器配置、排查域名解析问题等。
-x
-x 是 dig 命令的一个选项,它是进行反向 DNS 查找(Reverse DNS Lookup)的快捷方式。反向 DNS 查找与正向 DNS 查找相反,正向查找是将域名解析为对应的 IP 地址,而反向查找则是根据给定的 IP 地址查找对应的域名。当使用 -x 选项时,dig 会自动将 IP 地址转换为相应的反向查找区域(如 in-addr.arpa 用于 IPv4 地址)并进行查询。
192.168.72.135
这是要进行反向 DNS 查找的目标 IP 地址。也就是说,你希望通过 DNS 服务器查询这个 IP 地址对应的域名是什么。
@192.168.72.135
@ 符号用于指定要查询的 DNS 服务器的 IP 地址。在这个命令中,你指定向 IP 地址为 192.168.72.135 的 DNS 服务器发起反向查询请求。
命令作用
这条命令的主要作用是向 IP 地址为 192.168.72.135 的 DNS 服务器发送一个反向 DNS 查询请求,以获取 IP 地址 192.168.72.135 对应的域名。如果该 DNS 服务器配置了相应的反向解析区域文件,并且其中包含了 192.168.72.135 的反向解析记录,那么它将返回对应的域名;如果没有配置或者没有找到对应的记录,可能会返回一个表示未找到的结果。
示例输出及含义
假设命令执行后有如下简化输出:
plaintext
; <<>> 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: 52345
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; QUESTION SECTION:
;135.72.168.192.in-addr.arpa.  IN      PTR;; ANSWER SECTION:
135.72.168.192.in-addr.arpa. 86400 IN  PTR     myserver.example.com.;; Query time: 2 msec
;; SERVER: 192.168.72.135#53(192.168.72.135)
;; WHEN: Mon Apr 07 15:30:00 CST 2025
;; MSG SIZE  rcvd: 103QUESTION SECTION:显示了查询的具体内容,这里是对 135.72.168.192.in-addr.arpa 进行 PTR(Pointer,指针记录,用于反向解析)类型的查询。
ANSWER SECTION:显示了查询的结果,这里表明 IP 地址 192.168.72.135 对应的域名是 myserver.example.com。
通过这样的反向查询,你可以验证 IP 地址和域名之间的映射关系是否正确配置,在网络管理、安全审计等场景中具有重要作用。

 

 

相关文章:

DNS服务(Linux)

DNS 介绍 dns&#xff0c;Domain Name Server&#xff0c;它的作用是将域名解析为 IP 地址&#xff0c;或者将IP地址解析为域名。 这需要运行在三层和四层&#xff0c;也就是说它需要使用 TCP 或 UDP 协议&#xff0c;并且需要绑定端口&#xff0c;53。在使用时先通过 UDP 去…...

探秘PythonJSON解析深度剖析json.loads处理嵌套JSON字符串的奥秘

哈喽,大家好,我是木头左! 在当今数字化时代,数据以各种格式呈现,而JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在众多领域广泛应用。Python作为一门强大的编程语言,其内置的json模块为处理JSON数据提供了便捷的方法。然而,当遇到像{"name&q…...

Day7 FIFO与鼠标控制

文章目录 1. harib04a例程&#xff08;获取按键编码&#xff09;2. harib04b例程&#xff08;加快中断处理&#xff09;3. harib04c例程&#xff08;FIFO缓冲区&#xff09;4. harib04d例程&#xff08;改善FIFO缓冲区&#xff09;5. harib04e例程&#xff08;整理FIFO缓冲区&a…...

软件工程第一章习题

第1章软件与软件工程 1.选择题 (1)下列说法中正确的是( &#xff09;o A.20世纪50年代提出了软件工程的概念 B.20世纪60年代提出了软件工程的概念 C.20世纪70年代出现了客户机/服务器技术 D.20世纪80年代软件工程学科达到成熟 (2)软件危机的主要原因是( Do B.软件生产…...

Ollama 手动高速下载Win/Linux/Mac安装包及安装方法

前言 Ollama下载速度太慢&#xff0c;按这个方式&#xff0c;速度嘎嘎的快----下载地址 手动安装 如果要从以前的版本升级&#xff0c;则应删除旧库。比如&#xff1a;sudo rm -rf /usr/lib/ollama 解压 tar -C /usr -xzf ollama-linux-amd64.tgz # 解压到/usr文件夹# 如…...

Jmeter+Jenkins+Ant自动化持续集成环境搭建

一、安装准备 1.JDK:jdk-8u121-windows-x64 2.jmeter工具&#xff1a;apache-jmeter-2.13 3.ANT工具&#xff1a;apache-ant-1.9.7-bin 4.jenkins工具&#xff1a;jenkins-2.32.2 二、软件安装 1.JDK的安装 >双击JDK安装包&#xff0c;选择安装路径&#xff08;本人是…...

【11】Redis快速安装与Golang实战指南

文章目录 1 Redis 基础与安装部署1.1 Redis 核心特性解析1.2 Docker Compose 快速部署1.3 Redis 本地快速部署 2 Golang 与 Redis 集成实战2.1 环境准备与依赖安装2.2 核心操作与数据结构实践2.2.1 基础键值操作2.2.2 哈希结构存储用户信息 3 生产级应用场景实战3.1 分布式锁实…...

ISP算法.红外图像增强

在图像处理领域&#xff0c;常见的图像处理一般都是白光相机&#xff0c;实际红外相机也是常见的一种相机&#xff0c;它可以用来对发热的东西进行成像&#xff0c;也可以作为白光相机夜晚不可见的一种辅助手段&#xff0c;为白光相机赋能夜视能力。 红外相机的成像原理在于辐射…...

Spring Boot中使用RedisTemplate操作Redis的几种数据类型详解

Redis作为高性能的键值存储系统&#xff0c;在现代Java应用中扮演着重要角色。Spring Boot通过RedisTemplate为开发者提供了便捷的Redis操作方式。本文将详细介绍如何使用RedisTemplate操作Redis的五种主要数据类型。 一、RedisTemplate简介 RedisTemplate是Spring Data Redi…...

大数据与人工智能之大数据架构(Hadoop、Spark、Flink)

一、核心特性与架构设计 1. Hadoop&#xff1a;分布式批处理的基石 核心组件&#xff1a; HDFS&#xff1a;分布式文件系统&#xff0c;支持大规模数据存储。MapReduce&#xff1a;基于“分而治之”的批处理模型&#xff0c;适合离线分析。 架构特点&#xff1a; 批处理主导&…...

VSCode中Marp插件

VSCode神级插件Marp&#xff0c;用Markdown来做PPT 优秀教程&#xff1a;https://zhuanlan.zhihu.com/p/582872955...

C++20 数学常数:<numbers> 头文件的革新

文章目录 一、<numbers> 头文件中的数学常数二、使用示例三、优势与应用场景&#xff08;一&#xff09;提高代码可读性&#xff08;二&#xff09;提高精度&#xff08;三&#xff09;适用于多种数据类型&#xff08;四&#xff09;简化数学计算 四、总结 C20 标准引入了…...

OpenCV--图像平滑处理

在数字图像处理领域&#xff0c;图像平滑处理是一项极为重要的技术&#xff0c;广泛应用于计算机视觉、医学影像分析、安防监控等多个领域。在 OpenCV 这一强大的计算机视觉库的助力下&#xff0c;我们能便捷地实现多种图像平滑算法。本文将深入探讨图像平滑的原理&#xff0c;…...

【KMP】P7114 [NOIP2020] 字符串匹配|省选-

本文涉及知识点 较难理解的字符串查找算法KMP P7114 [NOIP2020] 字符串匹配 题目描述 小 C 学习完了字符串匹配的相关内容&#xff0c;现在他正在做一道习题。 对于一个字符串 S S S&#xff0c;题目要求他找到 S S S 的所有具有下列形式的拆分方案数&#xff1a; S A …...

C++20 统一容器擦除:std::erase 和 std::erase_if

文章目录 一、std::erase 的用法1.1 语法1.2 参数1.3 返回值1.4 示例 二、std::erase_if 的用法2.1 语法2.2 参数2.3 返回值2.4 示例 三、优势与应用场景3.1 统一的接口3.2 简化代码3.3 适用范围广 四、总结 C20 引入了两个非常实用的函数模板&#xff1a; std::erase 和 std…...

阿里云oss视频苹果端无法播放问题记录

记录一下苹果端视频不可以播放的原因. 看了一下其他视频可以正常播放,但是今天客户发来的视频无法正常播放.咨询过阿里云售后给出的原因是编码格式过高. 需要调整编码格式为:baseline, 下面记录如何使用ffmpeg修改视频的编码格式. 下载文件(可从官方下载) 配置环境变量(系统变…...

10-MySQL-性能优化思路

1、优化思路 当我们发现了一个慢SQL的问题的时候&#xff0c;需要做性能优化&#xff0c;一般我们是为了提高SQL查询更快&#xff0c;一个查询的流程由下图的各环节组成&#xff0c;每个环节都会消耗时间&#xff0c;要减少消耗时候需要从各个环节都分析一遍。 2 连接配置优化…...

Postman之参数化详解

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 小伙伴们&#xff0c;好久不见呀&#xff0c;今天呢笔者想和大家聊聊postman参数化&#xff0c;在接口测试中&#xff0c;部分参数每次发送请求是唯一的数值&a…...

【c++深入系列】:类和对象详解(下)

&#x1f525; 本文专栏&#xff1a;c &#x1f338;作者主页&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客励志语录&#xff1a; 你的人生剧本&#xff0c;不是父母的续集&#xff0c;不是子女的前传&#xff0c;更不是朋友的外传——你是自己故事的主角 ★★★ 本文前…...

浅谈「分词」:原理 + 方案对比 + 最佳实践

在文本搜索、自然语言处理、智能推荐等场景中&#xff0c;「分词」 是一个基础但至关重要的技术点。无论是用数据库做模糊查询&#xff0c;还是构建搜索引擎&#xff0c;分词都是提高效率和准确度的核心手段。 &#x1f50d; 一、什么是分词&#xff1f; 分词&#xff08;Tok…...

第十八:GC 垃圾回收

2.1 三色标记# 灰色&#xff1a;对象已被标记&#xff0c;但这个对象包含的子对象未标记黑色&#xff1a;对象已被标记&#xff0c;且这个对象包含的子对象也已标记&#xff0c;gcmarkBits对应的位为1&#xff08;该对象不会在本次GC中被清理&#xff09;白色&#xff1a;对象…...

【微机及接口技术】- 第七章 可编程定时/计数器

文章目录 第一节 定时/计数器的概述一、定时与计数二、定时方法 第二节 可编程定时/计数器8254一、8254-2的基本功能二、8254的内部结构和外部引脚三、8254 的工作方式1. 方式0&#xff1a;计数到零产生中断方式2. 方式1&#xff1a;硬件可重触发单稳方式3. 方式2&#xff1a;速…...

MES生产工单管理系统,Java+Vue,含源码与文档,实现生产工单全流程管理,提升制造执行效率与精准度

前言&#xff1a; MES生产工单管理系统是制造业数字化转型的核心工具&#xff0c;通过集成生产、数据、库存等模块&#xff0c;实现全流程数字化管理。以下是对各核心功能的详细解析&#xff1a; 一、生产管理 工单全生命周期管理 创建与派发&#xff1a;根据销售订单或生产计…...

【区块链安全 | 第三十五篇】溢出漏洞

文章目录 溢出上溢示例溢出漏洞溢出示例漏洞代码代码审计1. deposit 函数2. increaseLockTime 函数 攻击代码攻击过程总结修复建议审计思路 溢出 算术溢出&#xff08;Arithmetic Overflow&#xff09;&#xff0c;简称溢出&#xff08;Overflow&#xff09;&#xff0c;通常分…...

【自记录】ubuntu命令行下禁用指定声卡

设备上内置了一块声卡&#xff0c;出于某些原因我希望禁用他。 通过arecord -l可以查看到该设备 $ arecord -l **** List of CAPTURE Hardware Devices **** card 0: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]Subdevices: 1/1Subdevice #0: subdevice…...

设计模式 Day 4:观察者模式(Observer Pattern)深度解析

在经历了前三天的对象创建型设计模式学习之后&#xff0c;今天我们开始进入行为型设计模式的探索之旅。行为型模式聚焦于对象之间的通信机制与协作方式&#xff0c;其中最经典且应用最广泛的就是——观察者模式&#xff08;Observer Pattern&#xff09;。本文将用8000字篇幅&a…...

`QTabWidget` 的标签页头设置样式,可以通过在 QSS 文件中定义 `QTabBar::tab` 的样式

要为 QTabWidget 的标签页头设置样式&#xff0c;可以通过在 QSS 文件中定义 QTabBar::tab 的样式来实现。以下是完整的代码示例和 QSS 文件内容&#xff0c;展示如何为标签页头设置背景颜色、文本颜色、悬停效果和选中效果。 ### **代码示例** cpp #include <QApplication…...

低代码开发革命:用 ZKmall开源商城可视化逻辑编排实现业务流程再造

ZKmall开源商城通过可视化逻辑编排引擎与低代码开发范式&#xff0c;重新定义了企业级电商业务流程的构建与优化方式。本文将从技术架构、核心能力、实践案例及行业价值等维度&#xff0c;解析其如何以"低代码流程引擎"组合拳实现业务流程再造的革命性突破。 一、低代…...

CAN外设

目录 1. CAN外设结构 1.1 CAN外设发送流程 1.2 CAN外设接收流程 1.3 发送接受配置位 2. CAN外设过滤器 2.1 过滤器配置 2.2 测试模式 2.3 工作模式 2.4 过滤器对应中断 2.5 错误处理和离线恢复 1. CAN外设结构 以STM32F103为例。以下是它的内部结构框图。 其具体发…...

(七)安卓开发中的状态列表图形(StateListDrawable)详解

在安卓开发中&#xff0c;**状态列表图形&#xff08;StateListDrawable&#xff09;**是一种非常实用的资源&#xff0c;它允许开发者根据视图的不同状态&#xff08;如按下、聚焦、选中等&#xff09;来动态显示不同的图像或颜色。这种机制在创建交互式用户界面时尤为重要&am…...

2023年蓝桥杯第十四届CC++大学B组真题及代码

目录 1A&#xff1a;日期统计 解析代码_暴力_正解 2B&#xff1a;01串的熵 解析代码_暴力_正解 3C&#xff1a;冶炼金属 解析代码_暴力_正解 4D&#xff1a;飞机降落 解析代码_暴力dfs_正解 5E&#xff1a;接龙数列 解析代码_dp_正解 6F&#xff1a;岛屿个数 解析代…...

odo18实施——销售-仓库-采购-制造-制造外包-整个流程自动化单据功能的演示教程

安装模块 安装销售 、库存、采购、制造模块 2.开启外包功能 在进入制造应用点击 配置—>设置 勾选外包&#xff0c;点击保存 添加信息 一、添加客户信息 点击到销售应用 点击订单—>客户 点击新建 创建客户1&#xff0c;及其他客户相关信息&#xff0c;点…...

c++造轮子之REACTOR实战

本文实现的为单reactor 多线程(base) 非核心库 InetAddress 这个库简单而言 无疑是设置ip地址和端口 class InetAddress { public:struct sockaddr_in addr;socklen_t addr_len;InetAddress();InetAddress(const char* ip, uint16_t port);~InetAddress(); };具体而言: Ine…...

【Easylive】Elasticsearch搜索组件详解

【Easylive】项目常见问题解答&#xff08;自用&持续更新中…&#xff09; 汇总版 一、Elasticsearch基础介绍 Elasticsearch(简称ES)是一个分布式、RESTful风格的搜索和分析引擎&#xff0c;基于Apache Lucene构建。在视频平台中&#xff0c;它主要用于&#xff1a; 全…...

基于AT89C51单片机的加减乘除液晶计算机设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/90574816?spm1001.2014.3001.5503 功能介绍&#xff1a; 可进行最高四位数的加减乘除运算&#xff0c;除法运算保留小数点后四位&#xff1b;4*4矩阵按键输入&…...

先进制造aps专题三十三 开源aps产品,frepple和dream对比分析

开源的两个aps产品&#xff0c;frepple和dream对比分析 frepple开源的基本不能用&#xff0c;第一它甘特图没开源&#xff0c;而且甘特图不允许你手工个修改&#xff0c;你想把它当成手工甘特图用也不行&#xff0c;第二&#xff0c;算法强制倒排&#xff0c;很少企业是倒排 …...

Vue3.2 项目打包成 Electron 桌面应用

本文将详细介绍如何将基于 Vue3.2 的项目打包成 Electron 桌面应用。通过结合 Electron 和 Vue CLI 工具链&#xff0c;可以轻松实现跨平台桌面应用的开发与发布。 1. 项目结构说明 项目主要分为以下几个部分&#xff1a; electron/main.js&#xff1a;Electron 主进程文件。…...

第16届蓝桥杯单片机模拟试题Ⅰ

试题 代码 sys.h #ifndef __SYS_H__ #define __SYS_H__#include <STC15F2K60S2.H> //onewire.c float getT(); //sys.c extern unsigned char UI; extern bit touch_mode; extern float jiaozhun; extern float canshu; extern float temper; void init74hc138(unsigned…...

ES:geoip_databases

如何查看 .geoip_databases 的内容 在Elasticsearch中&#xff0c;.geoip_databases 是一个特殊的索引&#xff0c;用于存储GeoIP数据库文件。这些文件通常用于地理信息的丰富&#xff08;GeoIP enrichment&#xff09;。以下是如何查看和管理这些数据库文件的方法&#xff1a…...

企业级开发SpringBoost玩转Elasticsearch

案例 Spring Boot 提供了 spring-data-elasticsearch 模块&#xff0c;可以方便地集成 Elasticsearch。 下面我们将详细讲解如何在 Spring Boot 中使用 Elasticsearch 8&#xff0c;并提供示例代码。 1. 添加依赖: 首先&#xff0c;需要在 pom.xml 文件中添加 spring-data-e…...

边缘计算网关作用

一、数据采集与预处理 边缘计算网关作为物联网系统的“数据入口”&#xff0c;能够连接各种传感器和设备&#xff0c;实时采集数据。在数据传输到云端之前&#xff0c;它会对数据进行清洗、过滤和聚合&#xff0c;剔除重复、无效或冗余的信息&#xff0c;只将有价值的数据上传…...

利用本地 Express Web 服务解决复杂的 Electron 通信链路的问题

背景 Web 服务对前端同学来说并不陌生&#xff0c;你们开发其他前端界面请求的后端接口就是 Web 服务&#xff0c;你们 npm run dev启动的也是一个本地的 Web 服务&#xff0c;前端的 js&#xff0c;html&#xff0c;css 都有从这个服务上拉取到的资源。 我们在开发 Electron…...

《自然-计算科学》诚邀您投稿计算社会科学研究(computational social science)

李升伟 编译 近年来&#xff0c;运用计算方法和工具来深化对社会科学长期议题理解的"计算社会科学"发展迅猛。这一增长主要得益于社交媒体数据、移动通信数据、数字化图书与历史档案、医疗记录等海量数据的涌现&#xff0c;这些资源不仅为验证现有社会科学理论提供了…...

【SPSS/EXCEl】主成分分析构建__综合评价指数

学习过程中实验操作的记录 1.数据准备和标准化&#xff1a; (1)区分正负相关性:判断每个因子是正向指标还是负向指标,计算每个的最大值和最小值 (2) 标准化: Min-Max标准化 Min-Max标准化&#xff08;最大最小值法&#xff09;&#xff1a; 将数据映射到指定的区间&#xff…...

#node.js后端项目的部署相关了解

熟悉 Spring Boot 的 java -jar 启动方式&#xff0c;那咱们就用类比 实战方式&#xff0c;来彻底搞懂&#xff1a; &#x1f680; Node.js 后端项目的 部署 & 启动方式 ✅ 和 Spring Boot 的 java -jar xxx.jar 一样&#xff0c;Node.js 也可以一句命令启动&#xff0c;而…...

程序化广告行业(69/89):DMP与PCP系统核心功能剖析

程序化广告行业&#xff08;69/89&#xff09;&#xff1a;DMP与PCP系统核心功能剖析 在数字化营销浪潮中&#xff0c;程序化广告已成为企业精准触达目标受众的关键手段。作为行业探索者&#xff0c;我深知其中知识的繁杂与重要性。一直以来&#xff0c;都希望能和大家一同学习…...

基于Python的二手房数据挖掘与可视化深度分析

一、技术框架与数据概况 1.1 技术栈构成 import pandas as pd # 数据操作(v1.3.5) import numpy as np # 数值计算(v1.21.6) from pyecharts.charts import * # 交互式可视化(v1.9.1) from sklearn.preprocessing import StandardScaler # 数据标准化(可选扩展) …...

linux第三次作业

1、将你的虚拟机的网卡模式设置为nat模式&#xff0c;给虚拟机网卡配置三个主机位分别为100、200、168的ip地址 2、测试你的虚拟机是否能够ping通网关和dns&#xff0c;如果不能请修改网关和dns的地址 3、将如下内容写入/etc/hosts文件中&#xff08;如果有多个ip地址则写多行&…...

C#编写HttpClient爬虫程序示例

要写一个使用C#和HttpClient的爬虫程序。首先&#xff0c;我需要了解HttpClient的基本用法。HttpClient是用来发送HTTP请求和接收响应的类&#xff0c;对吧&#xff1f;我记得在C#中使用它的时候需要注意一些事情&#xff0c;比如最好使用单例实例&#xff0c;而不是频繁创建和…...

关于Spring MVC在无注解情况下通过参数名匹配获取请求参数的详细说明,包含代码示例和总结表格

以下是关于Spring MVC在无注解情况下通过参数名匹配获取请求参数的详细说明&#xff0c;包含代码示例和总结表格&#xff1a; 1. 核心机制 Spring MVC通过参数名匹配实现无注解参数绑定&#xff1a; 条件&#xff1a;方法参数名需与请求参数&#xff08;查询参数、表单参数&a…...