Linux CentOS 8(DNS的配置与管理)


Linux CentOS 8(DNS的配置与管理)


目录

    • 一、DNS相关知识
      • 1.1 DNS简介
      • 1.2 DNS的解析原理
      • 1.3 DNS解析
    • 二、DNS服务器部署
      • 2.1 不使用chroot模式启动DNS
      • 2.2 使用chroot模式DNS
    • 三、DNS配置文件详解
      • 3.1 主配文件详解
      • 3.2 区域数据库文件详解
    • 四、项目实施
      • 4.1 主DNS
      • 4.2 辅助DNS(DNS服务器冗余)
      • 4.3 转发DNS
      • 4.4 智能DNS


一、DNS相关知识

1.1 DNS简介

DNS
DNS域名系统(英文:Domain Name System)是一个域名系统,是万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。DNS协议运行在UDP协议之上,使用端口号53。

域名
域名是一个网站的逻辑地址,比如www.baidu.com,相比IP地址更加方便人类记忆,所以被广泛使用。

域名管理机构
Internet 域名与地址管理机构(ICANN)是为承担域名系统管理,IP地址分配,协议参数配置,以及主服务器系统管理等职能而设立的非盈利机构.现由IANA和其他实体与美国政府约定进行管理。域名分国际域名和国内域名两种,对于国际域名而言,其命名规则是:域名可以由(a-z、A-Z大小写等价)26个英文字母、数字(0-9)以及连接符“-”组成,但是域名的首位必须是字母或数字。对于域名的长度也有一定的限制:国际通用顶级域名长度不得超过26个字符,中国国家顶级域名长度不得超过20个字符。

1.2 DNS的解析原理

目前,因特网的命名方法是层次树状结构的方法。采用这种命名方法,任何一个连接在因特网上的主机或设备,都有一个某一层次结构的名字,即域名(domain name)。域是名字空间中一个可被管理的划分。域可以继续按层次划分为子域,如二级域、三级域等等,如图1所示。

在这里插入图片描述

图1

1.3 DNS解析

递归解析
主机向本地域名服务器的解析,一般都是采用递归解析。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。

迭代解析
本地域名服务器向根域名服务器的查询,通常是采用迭代解析。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。

域名的解析也分为正向解析和反向解析。正向解析为:将域名解析为IP;反向解析为:将IP解析为域名。

二、DNS服务器部署

DNS服务是由bind程序提供的,所以要实现DNS服务就需要安装bind程序包。

[root@localhost ~]# yum install bind bind-chroot -y  

DNS主程序包
bind-chroot 是DNS的安全包,可以改变默认DNS根目录,将DNS运行在监牢模式。bind-chroot是 bind 的一个功能,使 bind 可以在一个chroot的模式下运行。也就是说,bind 运行时的/(根)目录,并不是系统真正的/(根)目录,只是系统中的一个子目录而已。这样做的目的是为了提高安全性。因为在 chroot 的模式下,bind 可以访问的范围仅限于这个子目录的范围里,无法进一步提升,进入到系统的其他目录中。bind 的默认启动方式就是 chroot 方式。Bind Chroot DNS 服务器的默认“监牢”为 /var/named/chroot

DNS的守护进程叫做named,DNS是以named用户身份来运行,named用户在安装包的时候会在系统中自动创建。

注:CentOS8 安装了 bind-chroot之后,若要使用 named-chroot.service,则需要关闭 named.service。两者只能运行一个。

2.1 不使用chroot模式启动DNS

[root@localhost ~]# systemctl enable --now named  \\启动服务并设置开机自启
[root@localhost ~]# lsof -i :53  \\启动验证

2.2 使用chroot模式DNS

[root@localhost ~]# cp -r /var/named/data /var/named/chroot/var/named/  \\复制对应的文件到chroot根目录
[root@localhost ~]# cp -r /var/named/dynamic /var/named/chroot/var/named/
[root@localhost ~]# cp -p /var/named/named.* /var/named/chroot/var/named/
[root@localhost named]# chown -R named.named *
[root@localhost ~]# systemctl enable --now named-chroot.service  \\启动服务并设置开机自启1

三、DNS配置文件详解

默认情况下,如果不安装bind-chroot这个包,配置文件的路径如下:
配置文件:/etc/named.conf
区域数据库文件:/var/named/
安装了bind-chroot这个用于改变默认DNS配置文件的路径的包,所以相对应的配置文件的路径也发生了变化。
变化如下:
配置文件:/var/named/chroot/etc/named.conf
区域数据库文件:/var/named/chroot/var/named/

3.1 主配文件详解

[root@localhost ~]# vim /var/named/chroot/etc/named.conf
options
{listen-on port 53    { 127.0.0.1; };  \\ IPv4监听端口为53,只允许本机连接listen-on-v6 port 53    { ::1; };  \\ IPv6监听端口为53,只允许本机连接directory         "/var/named";  \\定义工作目录dump-file         "data/cache_dump.db";  \\ CACHE文件路径,指定服务器在收到rndc dump命令时,转储数据到文件的路径。默认cache_dump.dbstatistics-file     "data/named_stats.txt";  \\静态文件路径,指定服务器在收到rndc stats命令时,追加统计数据的文件路径。默认named_stats.txtmemstatistics-file     "data/named_mem_stats.txt";  \\内存静态文件路径,服务器在退出时,将内存统计写到文件的路径。默认named_mem_stats.txtsecroots-file        "data/named.secroots";  \\在收到rndc secroots指令后,服务器转储安全根的目的文件的路径名。默认named.secrootsrecursing-file        "data/named.recursing";  \\指定服务器在通过rndc recursing命令指定转储当前递归请求到的文件路径。默认named.recursingallow-query        { localhost; };  \\指定哪些主机可以查询,可以是any/noneallow-query-cache    { localhost; };  \\指定允许哪些主机可以对缓存的访问recursion yes;  \\开启递归dnssec-enable yes;  \\开启DNSSEC在权威或者递归服务器之间信任服务dnssec-validation yes;  \\开启DNSSEC验证在递归服务器managed-keys-directory "/var/named/dynamic";  \\指定目录,其中保存着跟踪被管理DNSSEC密钥文件。默认为工作目录。pid-file "/run/named/named.pid";  \\ PID文件路径session-keyfile "/run/named/session.key";  \\ session-keyfile文件路径
};
Logging  \\开启DNS日志记录
{channel default_debug {file "data/named.run";severity dynamic;};
};
zone "." IN {  \\定义一个根域type hint;  \\域类型为hint(根域),还有master(主要域)/slave(辅助域)/forward(转发域)等类型file "/var/named/named.ca";  \\区域数据库文件路径};
};include "/etc/named.rfc1912.zones";  \\包含两个子配置文件include "/etc/named.root.key";

3.2 区域数据库文件详解

正向解析

[root@localhost ~]# vim /var/named/named.localhost
$TTL 1D  \\缓存时间@         	IN 	  SOA        @ 			   rname.invalid. (
\\解析的域名   类型   授权域    授权域名服务器   管理员邮箱0    ; serial  \\序列号,每次更新该文件系列号都应该变大1D    ; refresh  \\刷新时间, 从域名服务器多长时间查询一个主服务器1H    ; retry  \\重试时间,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试 1W    ; expire  \\过期时间,从服务器在向主服务更新失败后多长时间后清除对应的记录3H )    ; minimum  \\缓存服务器不能与主服务联系上后多长时间清除相应的记录 NS   				@  \\ NS 名称服务器,表示这个主机为域名服务器A    		127.0.0.1  \\主机头  	A记录   	IPAAAA    		::1  \\解析为IPV6地址

反向解析

[root@localhost ~]# vim /var/named/named.loopback
$TTL 1D
@    IN SOA    @ rname.invalid. (0    ; serial1D    ; refresh1H    ; retry1W    ; expire3H )    ; minimumNS    		@PTR    		localhost  \\ IP   PTR(反向指针)     主机名

四、项目实施

4.1 主DNS

实验要求:
jan16.com域名做解析,解析要求如下:
www 解析为A记录 IP地址为 1.1.1.1,并设置反向解析
news 做别名解析CNAME 解析为 www

DNS服务器配置:

[root@localhost ~]# vim /var/named/chroot/etc/named.conf
options {listen-on port 53 { any; };
directory     "/var/named";
allow-query     { any; };
};zone "jan16.com" IN {type master;file "jan16.com.zone";
};
zone "1.1.1.in-addr.arpa" IN {type master;file "1.1.1.zone";allow-update { none; };
};
[root@localhost named]# cp -p named.localhost  jan16.com.zone  \\保留源文件的权限和属主的属性复制
[root@localhost ~]# cd /var/named/chroot/var/named/
[root@localhost named]# vim jan16.com.zone
$TTL 1D
jan16.com.       IN SOA  ns1.jan16.com. rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      ns1.jan16.com.A       127.0.0.1AAAA    ::1
ns1     A      192.168.159.138  \\此为DNS的IP地址,做正向解析
www     A      1.1.1.1
news    CNAME  www
[root@localhost named]# cp -p named.loopback 1.1.1.zone
[root@localhost named]# vim 1.1.1.zone
$TTL 1D
1.1.1.in-addr.arpa.       IN SOA  ns1.jan16.com. rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      ns1.jan16.com.
1       PTR     www.jan16.com.

客户端验证:
host采用非交互式解析,
nslookup可以采用交互或非交互式解析
dig显示详细的解析流程,在dig解析中,后面跟上+trace来显示详细解析流程

[root@localhost named]# vim /etc/resolv.conf 
nameserver 192.168.159.138
[root@localhost named]# nslookup www.jan16.com
Server:		192.168.159.138
Address:	192.168.159.138#53
Name:	www.jan16.com
Address: 1.1.1.1
[root@localhost named]# nslookup 1.1.1.1
1.1.1.1.in-addr.arpa	name = www.jan16.com.

4.2 辅助DNS(DNS服务器冗余)

DNS服务器在网络中为全世界的服务器提供了域名解析服务,扮演着至关重要的角色。网络中的某台DNS一旦宕机,就会造成部分域名无法解析,用户无法顺利访问到对应的服务器。但是我们学习的过程中也发现了,我们的DNS部署在单台服务器上,如果出现单点故障,我们可以通过部署多台相同解析的DNS来解决单点故障,即辅助DNS。这样就算一台DNS服务器出现问题,也不会影响解析服务。

辅助DNS是从主DNS拉取区域数据库文件的,当主DNS解析的域名对应的区域数据库文件发生变化,辅助就会去找主DNS拉取新的区域数据库文件,保证和主的解析一致,而且是自动的不需要人为干预的,确保了主从DNS的区域数据库文件的一致性。

实验要求:
实现辅助DNS的搭建

DNS服务器配置:

[root@localhost ~]# vim /var/named/chroot/etc/named.conf
options {listen-on port 53 { any; };
directory     "/var/named";
allow-query     { any; };
};zone "jan16.com" IN {type slave;  \\类型写slave  代表辅助file "jan16.com.zone";  masters { 192.168.159.138; };  \\设置主DNS IP地址,向该IP的主机去同步数据
};
zone "1.1.1.in-addr.arpa" IN {type slave;file "1.1.1.zone";masters { 192.168.159.138; };
};
[root@localhost ~]# systemctl restart named-chroot
[root@localhost ~]# ll /var/named/chroot/var/named/  \\可以看到复制过来的区域数据库配置文件
total 24
-rw-r--r--. 1 named named  232 Jun 15 09:31 1.1.1.zone
drwxr-x---. 2 named named   23 Jun 15 08:47 data
drwxr-x---. 2 named named   60 Jun 15 09:31 dynamic
-rw-r--r--. 1 named named  376 Jun 15 09:31 jan16.com.zone
-rw-r-----. 1 named named 2253 Jun 15 08:44 named.ca
-rw-r-----. 1 named named  152 May 27 16:49 named.empty
-rw-r-----. 1 named named  152 May 27 16:49 named.localhost
-rw-r-----. 1 named named  168 May 27 16:49 named.loopback
drwxr-x---. 2 root  root     6 Jun 15 09:25 slaves

客户端验证:

[root@localhost ~]# vim /etc/resolv.conf
nameserver 192.168.159.144
[root@localhost ~]# nslookup www.jan16.com
Server:		192.168.159.144
Address:	192.168.159.144#53
Name:	www.jan16.com
Address: 1.1.1.1
[root@localhost ~]# nslookup 1.1.1.1
1.1.1.1.in-addr.arpa	name = www.jan16.com.

4.3 转发DNS

在DNS客户端提交解析申请到转发DNS服务器的时候,该服务器会将请求转发至配置文件中指定的非根DNS服务器进行解析,然后将解析的结果发至客户端并缓存到本地,因此,转发DNS服务器在这种意义上也算一种缓存服务器。并且转发DNS服务器可以选择完全转发或条件转发两种转发方式:

完全转发:所有客户机请求都直接扔给指定的非根DNS服务器进行解析。
条件转发:将某个域的解析申请转发至指定的非根DNS服务器进行解析。

实验要求:
实现DNS完全转发的搭建

DNS服务器配置:

[root@localhost ~]# vim /var/named/chroot/etc/named.conf
options {listen-on port 53 { any; };
directory     "/var/named";
allow-query     { any; };forward only;  \\递归转发
forwarders { 192.168.159.138; };  \\转发到的DNS服务器IP
};
[root@localhost ~]# systemctl restart named-chroot

客户端验证:

[root@localhost ~]# vim /etc/resolv.conf
nameserver 192.168.159.144
[root@localhost ~]# nslookup www.jan16.com
Server:		192.168.159.144
Address:	192.168.159.144#53
Name:	www.jan16.com
Address: 1.1.1.1
[root@localhost ~]# nslookup 1.1.1.1
1.1.1.1.in-addr.arpa	name = www.jan16.com.

实验要求:
实现DNS条件转发的搭建

DNS服务器配置:

[root@localhost ~]# vim /var/named/chroot/etc/named.conf
options {listen-on port 53 { any; };
directory     "/var/named";
allow-query     { any; };
};
zone "jan16.com" IN {  \\需要转发的域type forward;forward only;forwarders { 192.168.159.138; };
};
zone "1.1.1.in-addr.arpa" IN {type forward;forward only;forwarders { 192.168.159.138; };
};
[root@localhost ~]# systemctl restart named-chroot

客户端验证:

[root@localhost ~]# vim /etc/resolv.conf
nameserver 192.168.159.144
[root@localhost ~]# nslookup www.jan16.com
Server:		192.168.159.144
Address:	192.168.159.144#53
Name:	www.jan16.com
Address: 1.1.1.1
[root@localhost ~]# nslookup 1.1.1.1
1.1.1.1.in-addr.arpa	name = www.jan16.com.

4.4 智能DNS

在我们访问WEB的时候,发现有的网站打开的速度非常快,有的网站打开的非常慢,这是为什么呢?原因就是很多公司为了提升用户的体验,在公司的网站上使用了CDN内容加速服务,使用户可以直接在本地城市的服务器上浏览数据。CDN我们可以暂且理解为本地缓存服务器即可,本章不作扩展。那用户是如何准确找到用户所在城市的本地缓存服务器的呢?原因在于很多CDN公司的DNS服务使用了智能解析功能,可以根据用户的源IP判断是属于哪个城市,然后再把本地的缓存服务器解析给用户,用户便可以在本城市的服务器上获取数据了。

智能解析原理:在DNS中植入全世界的IP库以及IP对应的地域,当用户来请求解析时,DNS会根据其源IP来定位他属于哪个区域,然后去找这个区域的 view 视图查询对应的域名的区域数据库文件做解析。从而使得不同地域的用户解析不同。

实验要求:
jan16.com域名做智能解析:
广州的用户解析IP为 1.1.1.1
北京的用户解析IP为 2.2.2.2
其他用户解析为 3.3.3.3

DNS服务器配置:

[root@localhost ~]# vim /var/named/chroot/etc/named.conf
options {listen-on port 53 { any; };
directory     "/var/named";
allow-query     { any; };
};
acl gz { 192.168.159.138; };  \\定义IP库,DNS根据IP库判断源IP属于哪个区域
acl bj { 192.168.159.144; };
view gz {  \\根据地域定义视图,将该区域的客户端的解析请求都由该视图中的zone来解析match-clients { gz; };
zone "jan16.com" IN {type master;file "jan16.com.gz.zone";
};
};view bj {match-clients { bj; };
zone "jan16.com" IN {type master;file "jan16.com.bj.zone";
};
};view other {match-clients { any; };
zone "jan16.com" IN {type master;file "jan16.com.any.zone";
};
};
/*  \\使用view需要把所有zone都放在view中,所以将其他涉及到zone的都注释
Zone “.” IN {Type hint;
File “named.ca”;
};
*/
#include "/etc/named.rfc1912.zones";
[root@localhost named]# cp -p jan16.com.bj jan16.com.gz.zone
[root@localhost named]# cp -p jan16.com.bj jan16.com.bj.zone
[root@localhost named]# cp -p jan16.com.bj jan16.com.any.zone
[root@localhost named]# vim jan16.com.gz.zone
$TTL 1D
jan16.com.       IN SOA  ns1.jan16.com. rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      ns1.jan16.com.A       127.0.0.1AAAA    ::1
ns1     A      192.168.159.138
www     A      1.1.1.1
news    CNAME  www
[root@localhost named]# vim jan16.com.bj.zone
$TTL 1D
jan16.com.       IN SOA  ns1.jan16.com. rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      ns1.jan16.com.A       127.0.0.1AAAA    ::1
ns1     A      192.168.159.138
www     A      2.2.2.2
news    CNAME  www
[root@localhost named]# vim jan16.com.any.zone
$TTL 1D
jan16.com.       IN SOA  ns1.jan16.com. rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      ns1.jan16.com.A       127.0.0.1AAAA    ::1
ns1     A      192.168.159.138
www     A      3.3.3.3
news    CNAME  www

客户端验证:
在IP为192.168.159.138的客户机验证:

[root@localhost ~]# nslookup www.jan16.com
Server:		192.168.159.138
Address:	192.168.159.138#53
Name:	www.jan16.com
Address: 1.1.1.1

在IP为192.168.159.144的客户机验证:

[root@localhost ~]# nslookup www.jan16.com
Server:		192.168.159.138
Address:	192.168.159.138#53
Name:	www.jan16.com
Address: 2.2.2.2

制作成员: 泽明
排版: 裕新
初审: 杨佳佳
复审: 五廿八

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

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

相关文章

【每日OJ —— 225.用队列实现栈(队列)】

每日OJ —— 225.用队列实现栈(队列) 1.题目:225.用队列实现栈(队列)2.解法2.1.解法讲解:2.1.1.算法讲解2.1.2.代码实现2.1.3.提交通过展示 1.题目:225.用队列实现栈(队列&#xff0…

php伪随机数

利用工具 php_mt_seed <?php // php 7.2function white_list() {return mt_rand();}echo white_list(), "\n";echo white_list(), "\n";echo white_list(), "\n"; 输入命令&#xff1a; ./php_mt_seed 1035656029 <?phpmt_srand(181095…

关于校园网使用罗技flow功能

目录 情况概述问题及解决方案 情况概述 我目前设备是一台Macbook air m1处理器&#xff0c;学校给配了一台windows台式&#xff0c;台式机不能连蓝牙&#xff0c;不能连wifi&#xff0c;只能用网线&#xff0c;我的需求是想让mac和windows共用一套键鼠&#xff0c;在了解到罗技…

echarts 实现3D立体柱状图示例

该示例有如下几个特点&#xff1a; ①实现tooltip自定义样式&#xff08;echarts 实现tooltip提示框样式自定义-CSDN博客&#xff09; ②数据为0时&#xff0c;顶部四边形不展示 ③legend图标设置为自定义图片 【第②也是一个难点&#xff0c;我没有找到其他解决办法&#xff…

从小米14安装不上应用说起【适配64位】

一、原因 某天早上&#xff0c;同事突然对我说我换了小米14pro手机但是安装不了公司的打卡软件&#xff0c;怎么办呀。一时间&#xff0c;我也不知道原因&#xff0c;看到给我发的安装不上的截图陷入了沉思。随即打开在git仓库里找到这个项目&#xff0c;到本地编译打开&#…

对比学习15篇顶会论文及代码合集,2023最新

对比学习&#xff08;contrastive learning&#xff09;是现在无监督学习中一种常用的学习机制&#xff0c;它可以在没有标签的数据上进行学习&#xff0c;避免依赖大量标签数据&#xff0c;从而帮助我们更好地理解和利用数据集中的信息&#xff0c;提高模型的性能和表现。 作…

【前端学java】java中的字符串操作(10)

往期回顾&#xff1a; 【前端学java】JAVA开发的依赖安装与环境配置 &#xff08;0&#xff09;【前端学 java】java的基础语法&#xff08;1&#xff09;【前端学java】JAVA中的packge与import&#xff08;2&#xff09;【前端学java】面向对象编程基础-类的使用 &#xff08…

springcloud学生选课系统源码

开发技术&#xff1a; jdk1.8&#xff0c;mysql5.7&#xff0c;idea&#xff0c;nodejs&#xff0c;vscode springcloud springboot mybatis vue elementui 功能介绍&#xff1a; 学生&#xff1a; 登录&#xff0c;统计分析&#xff0c;选课&#xff08;查看课程及选择&a…

API网关那些事【架构新知系列】

目前随着云原生ServiceMesh和微服务架构的不断演进&#xff0c;网关领域新产品不断出现&#xff0c;各种网关使用的技术&#xff0c;功能和应用领域也不断扩展&#xff0c;在各有所长的前提下也有很多功能重合&#xff0c;网上各种技术PR文章&#xff0c;评测资料和网关落地实践…

新能源充电桩工业4G路由器应用,推动绿色出行,响应环保理念

在智慧城市环保事业发展领域&#xff0c;新能源技术应用成熟&#xff0c;物联网技术越来越广泛&#xff0c;充电桩物联网成为了智慧城市建设的热门应用。充电桩作为新能源汽车的重要配套设施&#xff0c;对于节能减排和推动环保理念可持续发展具有重要意义。而工业4G路由器作为…

福州大学《嵌入式系统综合设计》实验四:边缘检测

一、实验目的 BMCV 提供了一套基于 Sophon AI 芯片优化的机器视觉库&#xff0c;通过利用芯片的 TPU 和 VPP模块&#xff0c;可以完成色彩空间转换、尺度变换、仿射变换、透射变换、线性变换、画框、JPEG 编解码、BASE64 编解码、NMS、排序、特征匹配等操作。 本实验的目的是…

C++中的内存管理

✨前言✨ &#x1f4d8; 博客主页&#xff1a;to Keep博客主页 &#x1f646;欢迎关注&#xff0c;&#x1f44d;点赞&#xff0c;&#x1f4dd;留言评论 ⏳首发时间&#xff1a;2023年11月21日 &#x1f4e8; 博主码云地址&#xff1a;博主码云地址 &#x1f4d5;参考书籍&…

基于C#实现KMP算法

一、BF 算法 如果让你写字符串的模式匹配&#xff0c;你可能会很快的写出朴素的 bf 算法&#xff0c;至少问题是解决了&#xff0c;我想大家很清楚的知道它的时间复杂度为 O&#xff08;MN&#xff09;&#xff0c;原因很简单&#xff0c;主串和模式串失配的时候&#xff0c;我…

电脑便签工具推荐哪个?电脑上好用的便签软件使用哪一款

对于职场办公人士来讲&#xff0c;一款好用的电脑便签工具可以给日常工作带来极大的便利&#xff0c;如果您的日常工作离不开电脑工具&#xff0c;您就会知晓电脑便签工具在日常工作中的重要&#xff0c;电脑便签通常以一个小的窗口呈现在电脑桌面上&#xff0c;记录一些工作中…

KVM网络环境下vlan和trunk的理解

vmware exsi 平台&#xff0c;虚拟交换机管理界面的上行链路是什么意思 VMware ESXi中的虚拟交换机管理界面中的“上行链路”&#xff08;uplinks&#xff09;是指虚拟交换机连接到物理网络的物理网络适配器。在ESXi中&#xff0c;虚拟交换机&#xff08;vSwitch&#xff09;用…

JAXB:根据Java文件生成XML schema文件

说明 JAXB有个schemagen脚本&#xff0c;可以根据Java文件生成XML schema。这个工具在JAXB独立发布包中有&#xff0c;可以从官网下载JAXB的独立发布包&#xff1a; https://eclipse-ee4j.github.io/jaxb-ri/ 示例 使用schemagen -d <path> <java files>格式 …

安装rabbitMQ

安装rabbitMQ linux安装rabbitMQ centos7下 需要先安装JDK 安装Erlang 需对应版本 安装对应版本的rabbitMQ 参考&#xff1a;CentOS7安装RabbitMQ简单实用教程_普通网友的博客-CSDN博客 启动 systemctl start rabbitmq-server出现的问题 启动失败 Job for rabbitmq-ser…

顺序表和链表

1.线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直线…

最新最全系列之Selenium:传入webdriver驱动的新方法 Service()函数;以前的executable_path报警告,即将弃用

传入webdriver驱动的新方法 Service()函数&#xff1b;以前的executable_path报警告&#xff0c;即将弃用 以前的方法 举例&#xff1a;webdriver.Chrome(executable_pathdriver_path)&#xff1b;看提示警告&#xff0c;提示该方法即将被弃用&#xff1b;如下图&#xff1a; …

mysql底层是如何存放数据的

总览 首先总的来说&#xff0c;分为四个层级&#xff0c;行页区段。行就是数据库里的一行数据。 但一次从磁盘读进内存的数据量是一页&#xff08;页是读写的单位&#xff0c;默认16KB一页&#xff09;&#xff0c;页分很多种类&#xff0c;例如数据页、溢出页、undo日志页。 …