DNS服务器配置与管理(2)——BIND部署DNS

news2024/12/28 20:11:35

在Linux上配置DNS的常用软件是BIND(Berkeley Internet Name Domain Service,BIND),它是一款实现DNS服务器的开放源码软件。本文详细介绍了在CentOS7上安装并配置Bind软件。

一、Bind软件介绍

BIND包最初是在 1980 年代初在加州大学伯克利分校作为研究生项目,在美国国防高级研究项目管理局 (DARPA)的资助下编写的。BIND 到 4.8.3 版本由加州大学伯克利分校的计算机系统研究小组 (CSRG) 维护,Douglas Terry、Mark Painter、David Riggle 和 Songnian Zhou 组成了最初的 BIND 项目团队。

从 4.9.3 开始的 BIND 版本由Internet软件联合会(Internet Software Consortium,ISC) 开发和维护,并由 ISC 的赞助商提供支持。

1997 年 5 月发布了BIND 版本 8 的第一个生产就绪版本。2000 年 9 月发布BIND9版本,几乎对底层 BIND 架构的所有方面进行了重大改写。2009 年~2014年期间进行开发,ISC 开始尝试使用 BIND 10 从头开始重写 BIND。其官方网站是:BIND 9 - ISC

作为开源DNS软件的代表之一,BIND以其稳定性和灵活性广泛应用于各类网络环境。与其他DNS软件相比,BIND具有较高的可靠性和广泛的支持基础,目前能够运行在几乎所有的操作系统平台之上。

二、安装DNS服务

2.1 BIND套件

BIND套件主要包括四个工具:

1、bind:提供DNS 服务器程序,以及几个常用的测试工具。 2、bind-libs:提供bind和bind-utils包中的程序共同用到的库文件。 3、bind-utils:bind客户端程序,提供host, nslookup, dig等测试工具。 4、bind-chroot:安全包,例如为Bind服务提供一个伪装的根目录(将/var/named/chroot文件夹作为Bind的根目录),以提高安全性。

2.2 安装并启动DNS服务

配置好yum源后,可以使用yum命令安装bind服务程序,并且会自动安装依赖包bind-libs。这里只是模拟实验环境,可以不安装bind-chroot,只安装bind。

[root@server ~]# yum install bind -y

Bind包安装后,会自动增加一个名为named.service的系统服务,启动后,会开启DNS的守护进程named。

[root@server ~]# systemctl start named
[root@server ~]# netstat  -anutpl | grep named
tcp        0      0 127.0.0.1:53   0.0.0.0:*        LISTEN      86624/named
tcp        0      0 127.0.0.1:953  0.0.0.0:*        LISTEN      86624/named
tcp6       0      0 ::1:53         :::*             LISTEN      86624/named
tcp6       0      0 ::1:953        :::*             LISTEN      86624/named
udp        0      0 127.0.0.1:53   0.0.0.0:*                    86624/named
udp6       0      0 ::1:53         :::*                         86624/named

可以看到DNS服务默认在本地回环口的TCP的53端口侦听。另外TCP的953端口,是远程管理bind工具rndc(Remote Name Domain Controllor)使用的,通过这个工具可以在本地或者远程了解当前DNS服务器的运行状况,也可以对DNS服务器进行关闭、重载、刷新缓存、增加删除zone等操作。

三、认识DNS配置文件

Bind包安装后,涉及到三种类型的配置文件:主配置文件、区域配置文件、区域数据配置文件。此外,这些配置文件都提供了模板文件供参考。

[root@server ~]# rpm -qc bind       #查询bind相关的配置文件
3.1 主配置文件named.conf

主配置文件,包含了整个DNS服务器的配置信息。文件路径位于/etc/named.conf

主配置文件内,“options”部分包含一些全局设置,如指定工作目录、侦听地址和端口、递归查询等;“zone”部分定义了一组DNS区域,并指定其类型和区域文件;“logging”部分定义了日志配置。主配置文件也可以通过”include“引入其他外部文件。注意:每条配置必须以分号“;“结束。

下面看一个示例文件:

//option下定义全局配置
options {       
    //侦听地址和端口(IPv4/6),可以监听多个接口,每个地址后面都需要加上分号
    listen-on port 53 { 127.0.0.1; };               
    listen-on-v6 port 53 { ::1; };                  
    //DNS工作目录,若安装了bind-chroot,文件会被主动链接伪装的根目录
    directory   "/var/named";
    //与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";
    
    recursing-file  "/var/named/data/named.recursing";
    secroots-file   "/var/named/data/named.secroots";
    //针对DNS客户端的设置,指定哪些客户端可以向DNS服务提出查询请求
    //any匹配任何地址,none不匹配任何地址,可以使用IP地址或者网段形式
    allow-query     { localhost; };     
    //指定允许接收区域传送请求的主机
    allow-transfer{none;};
    //是否允许为DNS客户端做递归查询,如果部署惟缓存服务器,不需要启用
    recursion yes;
    //用于DNS转发,当域名服务器无法解析时,将请求转发给指定的DNS服务器
    forwarders{8.8.8.8;};
    
    dnssec-enable yes;
    dnssec-validation yes;
    bindkeys-file "/etc/named.root.key";
    managed-keys-directory "/var/named/dynamic";
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};
​
//logging下定义服务器日志记录的内容和日志信息来源等
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
​
//zone下定义区域信息,可以定义多个zone,一个zone定义一个区域
zone "." IN {//定义根区域
    //区域类型:hint表示根区域,master表示主DNS服务器,slave表示辅助DNS服务器
    //另外还有stub、forward等类型
    type hint;
    //区域配置文件名,默认存放在/var/named目录
    file "named.ca";
};
​
//引入区域配置文件/etc/named.zones
include "/etc/named.zones"; 
include "/etc/named.root.key";
3.2 区域配置文件

区域配置文件中主要是对DNS区域的声明,文件名称和位置可以自定义,并在主配置文件中使用include引入区域配置文件,,如:include "/etc/named.zones";模板文件为/etc/named.rfc1912.zones

下面看一个示例文件:

//声明正向查找区,区域名example.com
zone "example.com" IN {
        //区域类型:master表示主DNS服务器,slave表示辅助DNS服务器
        type master;
        file "example.com.zone";
        //是否允许动态更新
        allow-update { none; };
};
​
//声明反向查找区,指向192.168.200.0,以in-addr.arpa为后缀
zone "200.168.192.in-addr.arpa" IN {
      type master;
      file "100.200.168.192.zone";
      allow-update { none; };
};
3.3 区域数据库配置文件

每个区域的数据库配置文件包含该区域的资源记录,文件需保存到主配置文件设定的工作目录中。通过编辑这些文件,可以实现自定义域名解析、反向解析等功能。

1、根区域数据库配置文件

根区域数据库配置文件是/var/named/named.ca,此文件非常重要,它包含了13台根服务器的域名和IP地址信息。利用此文件,DNS服务器可以找到根DNS服务器,当BIND无法在其他地方找到顶级域名的解析记录时,会查询该文件中的根服务器信息。文件主要内容如下图:

2、正向解析区数据库配置文件

正向解析区数据库配置文件可以实现域名到IP地址的映射,定义了该区内的资源记录,配置时可以从模板文件/var/named/named.localhost复制后进行修改。

资源记录定义的语法如下:

name   [TTL(缓存生存期)]   IN   rr_type   value

示例文件:

$TTL 1D
@   IN  SOA example.com. root.example.com. (2024041301 1D 1H 1W 3H)
@   IN  NS  master.example.com.
@   IN  NS  slaver.example.com.
@   IN  MX  10  mail.example.com.
master.example.com.     IN  A   192.168.200.100
slaver.example.com.     IN  A   192.168.200.112
mail.example.com.       IN  A   192.168.20.112
finace.example.com.     IN  A   192.168.20.113
develop.example.com.    IN  A   192.168.20.114
www.example.com.        IN  CNAME   master.example.com.
ftp.example.com.        IN  CNAME   master.example.com.
dns.example.com.        IN  CNAME   master.example.com.

说明:

(1)第一行定义了TTL值为1天,可被后面所有资源记录全局继承。

(2)第二行定义了当前区域example.com.的SOA记录,@代表当前区域的名字,因为有特殊含义,所以后边不能用,例如root.example.com.则一个邮箱地址root@example.com.。IN表示后面的数据使用的是INTERNET标准,SOA表示资源记录类型,括号中是5个数据,分别表示serialrefreshretryexpireminimum的值。

serial:更新序列号。用于标示数据库的变换,可以在10位以内,如果存在辅助DNS服务器,建议每次更新完数据库,进行修改,可以使用格式yyyymmddnn表示,如2024041301,表示2024年4月13日第一次修改。

refresh:刷新时间。辅助DNS服务器根据此时间周期性的检查主DNS服务器的序列号是否改变,如果改变,则更新自己的数据库,默认为1天。

retry:重试时间。辅助DNS服务器从主DNS服务器更新数据库失败后,在此时间后重新尝试,默认为为1小时。

expire:过期时间。辅助DNS服务器在此时间内没能从主DNS服务器更新数据库,则该辅助DNS服务器上的数据库 会被认为无效,不再响应查询请求,为一周。

minimum:设置无效地址解析记录(该数据库中不存在的地址)默认缓存时间。最少缓存时间为3小时。

(3)第三行和第四行定义了当前域的两个名称服务器,即NS记录,至少定义一个。

(4)第五行定义了一条MX记录,其中10用于表示优先级,数字越小,优先级越高。

(5)第六行到第十行定义了5条A记录,用于正向解析。记录名称为FQDN名,也可以使用主机名代替。

(6)最后三行定义的是CNAME记录。

3、反向解析区配置文件

反向解析区数据库配置文件可以实现IP地址到域名的映射,主要定义了该区内的PTR记录,配置时可以从模板文件/var/named/named.loopback复制后进行修改。

示例文件:

$TTL 1D
@   IN  SOA @ root.example.com. (
                    2024041301  ; serial
                    1D          ; refresh
                    1H          ; retry
                    1W          ; expire
                    3H )        ; minimum
@   IN  NS  master.example.com.
@   IN  NS  slaver.example.com.
111 IN  PTR master.example.com.
112 IN  PTR slaver.example.com.
3.4 配置文件语法检查

配置文件都配置好之后,可以使用BIND提供的语法检查命令检查语法是否正确,当没有错误后,使用systemctl命令重启named服务,或者使用rndc reload命令重载配置。

1、检查查主配置文件语法

要检测 BIND 的主配置文件named.conf文件的语法是否正确,可以使用命令named-checkconf

例如

[root@server ~]# named-checkconf /etc/named.conf

2、检查区域数据库文件

使用named-checkzone命令可以进行区域文件有效性检查和转换,必须指定区域名称和区域文件名称。

语法:

named-checkzone [选项] [区域名] [区域文件名]

例如

[root@server]# named-checkzone example.com /var/named/example.com.zone
zone example.com/IN: loaded serial 2024041301
OK

四、DNS测试工具

4.1 nslookup

nslookup(Name Server Lookup)是一种网络管理命令,用于从 DNS 服务器查询域名、IP 或其他 DNS 记录信息。

nslookup 有两种工作模式:交互模式和非交互模式。

1、非交互模式

在非交互模式下,针对一个主机或域名执行单次查询,格式如下。

nslookup  域名或IP地址

例如:

[root@server ~]# nslookup www.baidu.com
Server:         192.168.200.100
Address:        192.168.200.100#53
​
Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 36.155.132.3
Name:   www.a.shifen.com
Address: 36.155.132.76

2、交互模式

在交互模式下,用户可以向域名服务器查询各类主机、域名的信息或者显示一个域的主机列表。在命令行下输入“nslookup”回车后,就进入交互模式。

下面举例说明nslookup的用法

[root@server ~]# nslookup
> server
Default server: 192.168.200.100
Address: 192.168.200.100#53
>
> www.baidu.com
Server:         192.168.200.100
Address:        192.168.200.100#53
​
Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 36.155.132.76
Name:   www.a.shifen.com
Address: 36.155.132.3
>
> set type=MX
> sina.com.cn
Server:         192.168.200.100
Address:        192.168.200.100#53
​
Non-authoritative answer:
sina.com.cn     mail exchanger = 10 freemx3.sinamail.sina.com.cn.
sina.com.cn     mail exchanger = 10 freemx1.sinamail.sina.com.cn.
sina.com.cn     mail exchanger = 10 freemx2.sinamail.sina.com.cn.
​
Authoritative answers can be found from:
.       nameserver = c.root-servers.net.
.       nameserver = j.root-servers.net.
.       nameserver = g.root-servers.net.
.       nameserver = e.root-servers.net.
.       nameserver = b.root-servers.net.
.       nameserver = a.root-servers.net.
.       nameserver = d.root-servers.net.
.       nameserver = h.root-servers.net.
.       nameserver = m.root-servers.net.
.       nameserver = k.root-servers.net.
.       nameserver = f.root-servers.net.
.       nameserver = l.root-servers.net.
.       nameserver = i.root-servers.net.
> exit
4.2 host

在Linux系统中,host命令用于进行域名查询。它允许用户通过输入域名或IP地址,获取与之相关的信息。

基本语法:

host [选项]  域名或IP地址
  • -a:显示所有的查询结果,包括与域名关联的IP地址、主机名等。

  • -t:指定查询类型,如A、AAAA、CNAME、MX等。

  • -c:显示域名的相关信息,如更新时间、注册人等。

  • -v:显示详细的查询过程和结果。

例如:

#查询域名对应的 IP 地址。
host www.baidu.com
#显示执行域名查询的详细信息。
host -v www.baidu.com
#查询域名的 MX 信息。
host -t MX www.baidu.com
#显示详细的 DNS 信息。
host -a www.baidu.com
#用谷歌的 DNS(8.8.8.8)来查百度主机的 IP。
host www.baidu.com 8.8.8.8
4.3 dig

dig 是一个DNS 查询工具,它会打印出 DNS 服务器的回应,主要用来从 DNS 服务器查询主机地址信息。

下面看几个简单用法示例,关于dig的更详细的用法,请大家自行翻阅资料。

1、查询对应域名的 IP

[root@server ~]# dig www.baidu.com
​
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22989
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 13, ADDITIONAL: 1
​
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.                 IN      A
​
;; ANSWER SECTION:
www.baidu.com.          63      IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       243     IN      A       36.155.132.76
www.a.shifen.com.       243     IN      A       36.155.132.3
​
;; AUTHORITY SECTION:
.                       86783   IN      NS      m.root-servers.net.
.                       86783   IN      NS      l.root-servers.net.
.                       86783   IN      NS      g.root-servers.net.
.                       86783   IN      NS      e.root-servers.net.
.                       86783   IN      NS      i.root-servers.net.
.                       86783   IN      NS      j.root-servers.net.
.                       86783   IN      NS      k.root-servers.net.
.                       86783   IN      NS      c.root-servers.net.
.                       86783   IN      NS      a.root-servers.net.
.                       86783   IN      NS      d.root-servers.net.
.                       86783   IN      NS      b.root-servers.net.
.                       86783   IN      NS      f.root-servers.net.
.                       86783   IN      NS      h.root-servers.net.
​
;; Query time: 62 msec
;; SERVER: 192.168.200.100#53(192.168.200.100)
;; WHEN: 六 4月 13 22:32:59 CST 2024
;; MSG SIZE  rcvd: 312

2、对目标 IP 进行反向解析查询

[root@server ~]# dig -x 192.168.200.100
​
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -x 192.168.200.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9800
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
​
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;100.200.168.192.in-addr.arpa.  IN      PTR
​
;; ANSWER SECTION:
100.200.168.192.in-addr.arpa. 86400 IN  PTR     master.example.com.
​
;; AUTHORITY SECTION:
200.168.192.in-addr.arpa. 86400 IN      NS      slaver.example.com.
200.168.192.in-addr.arpa. 86400 IN      NS      master.example.com.
​
;; ADDITIONAL SECTION:
master.example.com.     86400   IN      A       192.168.200.100
slaver.example.com.     86400   IN      A       192.168.200.112
​
;; Query time: 0 msec
;; SERVER: 192.168.200.100#53(192.168.200.100)
;; WHEN: 六 4月 13 22:36:09 CST 2024
;; MSG SIZE  rcvd: 156
3、查询目标域名的 MX 记录
[root@server ~]# dig -t MX sina.com.cn
​
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t MX sina.com.cn
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57476
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 13, ADDITIONAL: 1
​
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;sina.com.cn.                   IN      MX
​
;; ANSWER SECTION:
sina.com.cn.            406     IN      MX      10 freemx3.sinamail.sina.com.cn.
sina.com.cn.            406     IN      MX      10 freemx1.sinamail.sina.com.cn.
sina.com.cn.            406     IN      MX      10 freemx2.sinamail.sina.com.cn.
​
;; AUTHORITY SECTION:
.                       86519   IN      NS      b.root-servers.net.
.                       86519   IN      NS      m.root-servers.net.
.                       86519   IN      NS      i.root-servers.net.
.                       86519   IN      NS      e.root-servers.net.
.                       86519   IN      NS      c.root-servers.net.
.                       86519   IN      NS      a.root-servers.net.
.                       86519   IN      NS      l.root-servers.net.
.                       86519   IN      NS      d.root-servers.net.
.                       86519   IN      NS      f.root-servers.net.
.                       86519   IN      NS      j.root-servers.net.
.                       86519   IN      NS      k.root-servers.net.
.                       86519   IN      NS      h.root-servers.net.
.                       86519   IN      NS      g.root-servers.net.
​
;; Query time: 52 msec
;; SERVER: 192.168.200.100#53(192.168.200.100)
;; WHEN: 六 4月 13 22:37:23 CST 2024
;; MSG SIZE  rcvd: 332

4、查询目标域名的 A 记录

[root@server ~]# dig -t a www.example.com
​
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t a www.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6264
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
​
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.example.com.               IN      A
​
;; ANSWER SECTION:
www.example.com.        86400   IN      CNAME   master.example.com.
master.example.com.     86400   IN      A       192.168.200.100
​
;; AUTHORITY SECTION:
example.com.            86400   IN      NS      master.example.com.
example.com.            86400   IN      NS      slaver.example.com.
​
;; ADDITIONAL SECTION:
slaver.example.com.     86400   IN      A       192.168.200.112
​
;; Query time: 0 msec
;; SERVER: 192.168.200.100#53(192.168.200.100)
;; WHEN: 六 4月 13 22:38:16 CST 2024
;; MSG SIZE  rcvd: 132

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

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

相关文章

剑指Offer题目笔记33(并查集)

面试题116&#xff1a; 解决方案&#xff1a; ​ 一个班级可以包含一个或多个朋友圈&#xff0c;对应的图中可能包含一个或多个子图&#xff0c;每个朋友圈对应一个子图。因此&#xff0c;这个问题可以转化为如何求图中子图的数目。图的搜索算法可以用来计算图中子图的数目。扫…

3D模型处理的多进程并行【Python】

今天我们将讨论如何使用 Python 多进程来处理大量3D数据。 我将讲述一些可能在手册中找到的一般信息&#xff0c;并分享我发现的一些小技巧&#xff0c;例如将 tqdm 与多处理 imap 结合使用以及并行处理存档。 NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生…

PLC工业网关,实现PLC联网

在当今工业自动化领域&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;作为控制系统的核心&#xff0c;其稳定性和可靠性至关重要。然而&#xff0c;随着工业互联网和智能制造的快速发展&#xff0c;如何实现PLC的联网通信&#xff0c;提高数据传输效率&#xff0c;成…

URL的绝对路径/相对路

一、URL 浏览器要想发起请求,必须是一个完整的url地址. URL是一个固定格式的字符串 它表达了&#xff1a; 从网络中 哪台计算机&#xff08;domain&#xff09; 中的 哪个程序&#xff08;port&#xff09; 寻找 哪个服务&#xff08;path&#xff09;&#xff0c;并注明了…

数据治理中心DataArts Studio学习

一、什么是DataArts Studio&#xff1f; 数据治理中心DataArts Studio是为了应对上述挑战&#xff0c;针对企业数字化运营诉求提供的具有数据全生命周期管理和智能数据管理能力的一站式治理运营平台&#xff0c;包含数据集成、数据开发、数据架构、数据质量监控、数据资产管理…

使用vue2-ace-editor实现可选择的代码编辑器

最近在琢磨前端&#xff0c;因项目中需要在页面上编辑代码&#xff0c;所以需要写一个代码编辑器供用户使用。找了几个编辑器相关的组件&#xff0c;对比了下感觉还是vue2-ace-editor用着舒服&#xff0c;写了demo供大家参考。 由于我的项目使用的是vue2&#xff0c;二开鹅厂的…

MySQL高负载排查方法最佳实践(15/16)

高负载排查方法 CPU占用率过高问题排查 使用mpstat查看cpu使用情况。 # mpstat 是一款 CPU 性能指标实时展示工具 # 能展示每个 CPU 核的资源视情况&#xff0c;同时还能将资源使用情况进行汇总展示 # 如果CPU0 的 %idle 已经为 0 &#xff0c;说明此核已经非常繁忙# 打印所…

算法训练营第25天回溯(分割)

回溯算法&#xff08;分割&#xff09; 131.分割回文串 力扣题目链接(opens new window) 题目 给定一个字符串 s&#xff0c;将 s 分割成一些子串&#xff0c;使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: “aab” 输出: [ [“aa”,“b”], [“a”,“…

Redis中的Lua脚本(二)

Lua脚本 创建排序辅助函数 为了防止带有副作用的函数令脚本产生不一致的数据&#xff0c;Redis对math库的math.random函数和math.randomseed函数进行了替换。对于Lua脚本来说&#xff0c;另一个可能产生不一致数据的地方是哪些带有不确定性质的命令&#xff0c;比如对于一个集…

Linux中如何安装ImageMagick及其常规使用命令

在Linux中安装ImageMagick可以通过包管理工具进行安装。具体步骤如下&#xff1a; 打开终端&#xff08;Terminal&#xff09;。 使用以下命令更新系统软件包列表&#xff1a; sudo apt update使用以下命令安装ImageMagick&#xff1a; sudo apt install imagemagick安装完…

大型网站系统架构演化实例_2.使用缓存改善网站性能

1.使用缓存改善网站性能 网站访问的特点和现实世界的财富分配一样遵循二八定律&#xff1a;80%的业务访问集中在20%的数据上。既然大部分业务访问集中在一小部分数据上&#xff0c;那么如果把这一小部分数据缓存在内存中&#xff0c;就可以减少数据库的访问压力&#xf…

在Linux系统中,禁止有线以太网使用NTP服务器进行时间校准的几种方法

目录标题 方法 1&#xff1a;修改NTP配置以禁止所有同步方法 2&#xff1a;通过网络配置禁用NTP同步方法 3&#xff1a;禁用NTP服务 在Linux系统中&#xff0c;如果想要禁止有线以太网使用NTP服务器进行时间校准&#xff0c;可以通过以下几种方法之一来实现&#xff1a; 方法 …

LDF、DBC、BIN、HEX、S19、BLF、asc、csv、ARXML、slx等(未完待续)

文章目录 如题如题 LDF是LIN报文格式文件,把这个直接拖到软件里面,可以发报文和接收报文 DBC是CAN报文格式文件,把这个直接拖到软件里面,可以发报文和接收报文 BIN文件烧录在BOOT里面(stm32),有人喜欢叫固件,这个固件就是bin文件,bin文件比hex文件体积小 其实BOOT也…

探索AI提示词网站:助力内容创作与AI对话

嗨&#xff0c;大家好&#xff01;在这个充满创意的时代里&#xff0c;AI技术为我们带来了许多惊喜和便利。如果你是一个内容创作者&#xff0c;无论是在撰写博客还是进行科技对话&#xff0c;今天我将向大家介绍几个能够提升与AI对话效率的神奇网站。 1. FlowGPT 首先&#xf…

PhotoShop2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 Adobe Photoshop是一款由Adobe Systems开发的图像编辑软件。它被广泛用于图像处理和数字艺术创作&#xff0c;是设计师、摄影师和艺术家们的首选工具之一。 主要功能&#xff1a; 图像编辑&#xff1a; Photoshop提供了丰富的编辑…

点云的投影------PCL

点云的投影 /// <summary> /// 参数化模型投影点云 /// </summary> /// <param name"cloud">点云</param> /// <param name"x">投影平面x面的系数</param> /// <param name"y"></param> /// &…

M系Mac关闭SIP

文章目录 M系Mac关闭SIP一&#xff1a;查看SIP状态二&#xff1a;关闭SIP步骤 M系Mac关闭SIP 一&#xff1a;查看SIP状态 1、使用终端 打开终端 输入csrutil status&#xff0c;回车 你会看到以下信息中的一个&#xff0c;指示SIP状态 已打开 System Integrity Protection s…

制作一个RISC-V的操作系统十一-外部设备中断

文章目录 中断分类mie mip中断处理流程外部中断中断源PLICPriorityPendingEnableThresholdClaim/CompletePLIC工作流程设置uart寄存器IER设置uart寄存器LSRasm volatile("mv %0, tp" : "r" (x) );头文件不能定义函数&#xff0c;不然每次导入都会定义一次s…

C++修炼之路之list--C++中的双向循环链表

目录 前言 一&#xff1a;正式之前先回顾数据结构中的双向循环链表 二&#xff1a;list的简介 三&#xff1a;STL中list常用接口函数的介绍及使用 1.构造函数接口 2.list迭代器 范围for 3.数据的修改接口函数 4.list容量操作函数 5.list的迭代器失效 6.演示代码和测…

RAG学习笔记系列(一)

RAG 介绍 RAG 全称为 Retrieval Augmented Generation&#xff08;检索增强生成&#xff09;。是基于LLM构建系统的一种架构。 RAG 基本上可以理解为&#xff1a;搜索 LLM prompting。根据用户的查询语句&#xff0c;系统会先使用搜索算法获取到相关内容作为上下文&#xff0…