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

在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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

35岁再去学程序员靠谱吗?

不亚于49年入国Jun。35岁的程序员都已经在找后路了…… 总结一句话&#xff1a;35岁自学程序员赚点小钱可以&#xff0c;当主业糊口不行&#xff01; 首先&#xff0c;程序员这行吃青春饭是真的。虽说国外有很多程序员可以写代码到70岁&#xff0c;但国内的现状是35岁就会淘汰一…

财商的思考

【200万粉福利特供|| 高考后的“分层之战”和“人生破圈算法”-哔哩哔哩】 https://b23.tv/5ASl8WA 社会三层 &#xff08;1&#xff09;上层 &#xff08;2&#xff09;中层 &#xff08;3&#xff09;基层&#xff1a; 上层 定义&#xff1a;高护城河生产资料和权利的所有…

Java详解:GUI容器组件 | 功能组件

✎ 简介&#xff1a; Graphical User Interface&#xff08;GUI&#xff09;图形用户界面 图形界面对于用户来说在视觉上更易于接受. ✎ 关于swing: • swing是一个为java设计的GUI工具包javax.swing&#xff0c;包括了用户界面的各种组件. • swing中组件可以分为两大类&…

C语言进阶课程学习记录-第36课 - 函数与指针分析

C语言进阶课程学习记录-第36课 - 函数与指针分析 函数类型实验-函数指针实验-回调机制小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 函数类型 实验-函数指针 #include <stdio.h>typedef in…

应急响应-战中反制对抗上线CSGoby蚁剑Sqlmap等安全工具

知识点 战中-反制-安全工具篇CS反制(有版本限制) Goby反制&#xff08;有版本限制&#xff0c;新版goby已修复&#xff09; Antsword反制(有版本限制&#xff0c;别人也不一定用蚁剑) AWVS反制(有版本限制&#xff0c;在awvs 10版本存在&#xff09; BURP反制(有版本限制&…

【论文解读系列】从RNN/CNN到大模型全解析

论文&#xff1a;A Survey of Neural Code Intelligence: Paradigms, Advances and Beyond 地址&#xff1a;GitHub&#xff1a;https://github.com/QiushiSun/NCISurvey 文章目录 一、代码模型的发展 1.神经语言建模&#xff08;Neural Language Modeling&#xff09;时代 …

U盘文件突然消失?别急,这里有数据恢复的终极攻略!

在日常的工作和生活中&#xff0c;U盘几乎成了我们随身携带的“数据小仓库”&#xff0c;存放着各种重要的文件。然而&#xff0c;就在某一天&#xff0c;你突然发现U盘中的文件神秘失踪&#xff0c;仿佛从未存在过一般。这种突如其来的U盘文件消失&#xff0c;无疑让人措手不及…

大模型时代,AI三巨头商汤、旷视、讯飞逐鹿智驾

作者 |张马也 编辑 |德新 2024年的智驾竞争已经处于收敛的阶段&#xff0c;但仍有新的巨头进入这一极度内卷的赛道。他们是商汤、旷视、科大讯飞等以算法见长的AI平台公司。 中国电动汽车百人会论坛上&#xff0c;小鹏汽车董事长何小鹏说&#xff0c;上一个十年是新能源的十年…

视频拍摄知识+AIGC数据预处理

视角 参考链接&#xff1a;https://www.polarpro.com/blogs/polarpro/filmmaking-101-types-of-camera-shots-and-angles Low Angle Shot 低角度拍摄、horizontal Shot 平视、Dutch Angle Shot 荷兰角斜拍、High Angle Shot 高角度拍摄、Bird’s-eye / Aerial Shot 鸟瞰 / 航…

【Mysql数据库进阶01】窗口函数

窗口函数 1 定义2 聚合窗口函数2.1 默认效果/累计效果2.2 前面两行当前一行2.3 前面一行当前一行后面一行 3 排名窗口函数3.1 排名函数3.1.1 排名函数案例 3.2 累积分布 4 取值窗口函数 1 定义 完整的窗口函数定义如下: window_function([expression]) over(partition byorde…

计算机网络 -- 网络编程基础

一 学习准备 1.1 IP地址 在 前文中我们提到过: IP 是全球网络的基础&#xff0c;使用 IP 地址来标识公网环境下主机的唯一性&#xff0c;我们可以根据 目的IP地址 进行跨路由器的远端通信。 但是我们也提到了&#xff0c;通过 IP 地址&#xff0c;只能寻找到目标主机&#xff…

Transformer - Teacher Forcing

Transformer - Teacher Forcing flyfish 在训练过程中&#xff0c;将目标序列输入给解码器的方法称为&#xff08;Teacher Forcing&#xff09;。这个术语又代表什么意思呢&#xff1f; 这里的目标序列就是Ground Truth&#xff0c;也就是我们已知的正确答案 一句话就是我们…

系统思考—战略

“有策略而无战术&#xff0c;是取胜之最慢之道。有战术而无策略&#xff0c;是败亡之前的嘈杂。”—孙子 最近接触的中小企业&#xff0c;充分能感受到在经济下行的情况下&#xff0c;组织与战略是不可分割的两个方面。有时候公司组织出现了问题&#xff0c;可能是因为战略不…

高效便捷!解锁阿里云跨账号专线互联的全新实施方案

作者&#xff1a;小丫、琉璃 背景 为持续提升金融云环境的合规标准以及可用区内产品服务的性能和稳定性&#xff0c;阿里云将对杭州地域BCD三个金融云可用区进行基础设施架构升级与改造&#xff0c;对应可用区云产品将于 2024 年后停止服务&#xff0c;需要将业务迁移到新可用…

HarmonyOS实战开发-如何实现一个简单的健康生活应用

功能概述 成就页面展示用户可以获取的所有勋章&#xff0c;当用户满足一定的条件时&#xff0c;将点亮本页面对应的勋章&#xff0c;没有得到的成就勋章处于熄灭状态。共有六种勋章&#xff0c;当用户连续完成任务打卡3天、7天、30天、50天、73天、99天时&#xff0c;可以获得…

42-软件部署实战(下):IAM系统安全加固、水平扩缩容实战

IAM应用安全性加固 iam-apiserver、iam-authz-server、MariaDB、Redis和MongoDB这些服务&#xff0c;都提供了绑定监听网卡的功能。将服务绑定到内网网卡上。 我们也可以通过iptables来实现类似的功能&#xff0c;通过将安全问题统一收敛到iptables规则&#xff0c;可以使我…

利用FFmpeg 转换课程vtt 字幕到 srt字幕

字幕转换工具 经常学习udemy 视频课程的&#xff0c;可能知道&#xff0c;从网络下载的udemy 课程文件里面有时候字幕是vtt 格式的&#xff0c;有时候想导入到百度网盘里面&#xff0c;怎奈百度网盘&#xff0c;不支持vtt 字幕格式。有字幕的时候&#xff0c;会比较好多了。既可…

【python】super()函数的用法详解!

今天分享一个我在实际项目中用到过的super()函数&#xff0c;来说说该函数的主要功能是什么&#xff0c;简单来说&#xff0c;super()函数是用来做调用父类的一个方法。 super() 是用来解决多重继承问题的&#xff0c;直接用类名调用父类方法在使用单继承的时候没问题&#xf…

第十五届蓝桥杯复盘python大学A组——试题C 数字诗意

思路 数字可以分为 有诗意的数字可以写成 (ij)(j-i1)/2 &#xff08; i、j都是正整数 &#xff09; ij 、j-i1 的奇偶性不同&#xff08;因为i、j都是正整数&#xff09; 因此&#xff0c; 如果一个数是奇数就一定有诗意 eg.312 ,523,734,945… 原因&#xff1a;根据上述分…

什么是yum、以及yum源

文章目录 yum介绍软件安装/卸载生态 yum Linux中需要对对工具、指令、程序进行安装、检查、卸载等工作&#xff0c;需要使用到yum。 Linux中安装软件的方式 源代码安装rpm包直接安装yum安装 / apt-get安装 介绍 yum是Linux预装的一个指令&#xff0c;搜索、下载、安装对应…