热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:linux下的DNS服务器部署(详细)

篇首语:本文由编程笔记#小编为大家整理,主要介绍了linux下的DNS服务器部署(详细)相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了linux下的DNS服务器部署(详细)相关的知识,希望对你有一定的参考价值。








DNS服务器


    • 什么是DNS?
      • 地址解析命令

    • 配置高速缓存DNS服务器
    • DNS的正向解析
      • 主机记录A记录
      • 规范域名转换CNAME记录
      • 邮件解析MX记录

    • DNS的反向解析
      • 逆向查询记录PTR记录

    • DNS的双向解析
    • DNS集群
    • DDNS(DHCP+DNS)动态域名解析




什么是DNS?

DNS:

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。
它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
DNS使用UDP端口53。
当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

DNS作用:

当我们在浏览器输入www.baidu.com时,计算机并不知道谁是baidu
计算机只能识别ip,所有我们需要将www.baidu.com这个域名解析为ip才能继续通信
dns就提供了这个解析功能

DNS分类:

1.权威DNS:
权威DNS是经过上一级授权对域名进行解析的服务器,同时它可以把解析授权转授给其他人。
如COM顶级服务器可以授权dns.com这个域名的的权威服务器为NS.ABC.COM。
同时NS.ABC.COM还可以把授权转授给NS.DDD.COM。
这样NS.DDD.COM就成了ABC.COM实际上的权威服务器了。
平时我们解析域名的结果都源自权威DNS。
比如dns.com的权威DNS服务器就是帝恩思的ns1.dns.com ns2.dns.com
权威名称服务器的类型包括:
Master : 包含原始区域数据,有时称作 “主要 ”名称服务器
Slave : 备份服务器,通过区域传送从 Master 服务器获得的区域数据的副本,有时称作 “次要 ”名称服务器
2.递归DNS:
负责接受用户对任意域名查询,并返回结果给用户。
递归DNS可以缓存结果以避免重复向上查询。
我们平时使用最多的就是这类DNS,他对公众开放服务,一般由网络运营商提供。
递归DNS一定要有可靠的互联网连接方可使用。
比如谷歌的8.8.8.8和8.8.4.4以及114的114.114.114.114和114.114.115.115都属于这一类DNS。
本地电脑上设置的DNS就是这类DNS。
3.转发DNS:
负责接受用户查询,并返回结果给用户。
但这个结果不是按标准的域名解析过程得到的,而是直接把递归DNS的结果转发给用户。
它也具备缓存功能。
他主要使用在没有直接的互联网连接,但可以连接到一个递归DNS那里,这时使用转发DNS就比较合适。
其缺陷是:直接受递归DNS的影响,服务品质较差。
比如我们用的路由器里面的DNS就是这一类,查看本地电脑的DNS一般都是192.168.1.1。

DNS解析过程:

比如,一个域名为:abc.com,是想看到这个现HTTP服务,如果要访问网站,就要进行解析。
首先在域名注册商那里通过专门的DNS服务器解析到一个WEB服务器的一个固定IP上:211.214.1.XXX
然后,通过WEB服务器来接收这个域名,把abc.com这个域名映射到这台服务器上。
那么,输入abc.com这个域名就可以实现访问网站内容了。
人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是对应的
它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。
域名解析协议(DNS)用来把便于人们记忆的主机域名和电子邮件地址映射为计算机易于识别的IP地址。
DNS是一种c/s的结构。
客户机就是用户用于查找一个名字对应的地址,而服务器通常用于为别人提供查询服务。

DNS解析方式:逐级解析

根域名 :.root 或者 . ,通常是省略的
顶级域名,如 .com,.cn 等
次级域名,如 baidu.com 里的 baidu,这个是用户可以进行注册购买的
主机域名,比如 baike.baidu.com 里的baike,这个是用户可分配的
主机名.次级域名.顶级域名.根域名baike.baidu.com.root
##根域名服务器都在美国,一共有13个

DNS记录类型(域名解析规则):

A:地址记录(Address),返回域名指向的IP地址。
NS:域名服务器记录(Name Server),返回保存下一级域名信息的服务器地址。
该记录只能设置为域名,不能设置为IP地址。
MX:邮件记录(Mail eXchange),返回接收电子邮件的服务器地址。
CNAME:规范名称记录(Canonical Name),返回另一个域名,即当前查询的域名是另一个域名的跳转,详见下文。
PTR:逆向查询记录(Pointer Record),只用于从IP地址查询域名,详见下文。

DNS解析报错信息:

1.no servers could be reached ##服务无法访问(服务开启?火墙?网络?端口?)
2.服务启动失败 ##配置文件写错 journalctl -xe查询错误
3.dig 查询状态
NOERROR ##表示查询成功
REFUSED ##服务拒绝访问
SERVFAIL ##查询记录失败,(dns服务器无法到达上级,拒绝缓存)
NXDOMAIN ##此域名A记录在dns中不存在

SOA:授权起始主机,SOA给出如图答案意思是没有这样一台主机
在这里插入图片描述


地址解析命令

host www.baidu.com ##地址解析命令,内容简略!
dig www.baidu.com ##地址详细解析信息命令,内容详细!

dig
在这里插入图片描述
host
在这里插入图片描述


配置高速缓存DNS服务器



所谓高速缓存dns就是:
内网内的dns服务器主机(非权威dns)把缓存下来的数据共享给其他内网主机。
只有第一次访问时间较长,访问后就会保存下来,之后内网内使用该dns服务器的主机再次访问就可以直接从缓存里取,速度会非常快。


dns的安装及开启:

dnf install bind.x86_64 -y #安装
#Berkeley Internet Name Domain (BIND)
systemctl enable --now named #启用dns服务,服务名称叫named
firewall-cmd --permanent --add-service=dns #火墙设置
firewall-cmd --reload #重启火墙
setenforce 0 #调整内核级火墙为警告模式

配置dns服务使内网主机可以访问其dns资源:

netstat -antlupe | grep named #可以查看dns开放端口
vim /etc/named.conf #编辑dns配置文件,对文件做以下修改
11行左右 listen-on port 53 { any; }; #在本地所有网络接口上开启53端口
19行左右 allow-query { any; }; #允许查询A记录的客户端列表,提供服务给所有主机
20行左右 forwarders { 114.114.114.114; }; #将源换为国内的,指定资源从114上取,这样速度会快一点
34行左右 dnssec-validation no; #禁用dns检测使dns能够缓存外部信息到本机,开着会因为检测不合规返回不了“答案”
##每一个字符串一定要用分号结尾
systemctl restart named #重启服务

在这里插入图片描述
在这里插入图片描述
使用内网其他主机测试:

vim /etc/resolv.conf #编辑dns指向文件
nameserver 192.168.187.129 #添加我们配置的dns服务器的ip
dig www.baidu.com #解析测试我们的dns服务器配置是否成功

在这里插入图片描述
显示NOERROR就是没有问题!
在这里插入图片描述


DNS的正向解析

企业内部也需要对外提供dns做相应的解析工作!
准备工作:
在上个高速缓存配置的基础上,先编辑主配置文件vim /etc/named.conf,将源注释掉
在这里插入图片描述
然后使用命令nm-connection-editor将dns服务器在的主机和测试主机的ip都改为静态ip
dns服务器的IP改成:192.168.187.129
测试主机IP改为:192.168.187.136
在这里插入图片描述
在这里插入图片描述


主机记录A记录

第一步:添加域名语句块

vim /etc/named.rfc1912.zone
##和主配置文件里的内容一样,里边有要维护域名的语句块
##主配置文件读取域名信息就会到这个文件里读取
##我们可以在这个文件里添加我们要维护的域名的语句块
添加:
zone "lucky.com" IN { #维护的域名
type master; #当前服务器位主dns
file "lucky.com.zone"; #域名A记录文件,要解析域名时看的是这个文件
allow-update { none; }; #允许更新主机列表
};

在这里插入图片描述
第二步:编辑域名A记录文件

cd /var/named/ #进入数据目录
cp -p named.localhost lucky.com.zone #复制模板得到我们要的域名A记录文件,一定要加-p参数,所属组相同
vim lucky.com.zone #编辑A记录文件
A记录文件内容及解释如下:
$TTL 1D #TIME-TO-LIVE(dns地址保存时间长度)
@ IN SOA dns.lucky.com. root.lucky.com ( #SOA授权起始(Start of Authority),谁授权的
#@符的值就是/etc/named.rfc1912.zone文件里我们编写的域名语句块引号里的内容
#不是以.结尾的字符串都会被自动补齐@符的值
0 ; serial #域名版本序列号,下文dns集群会用到,有详细解释
1D ; refresh #刷新时间(辅助dns)
1H ; retry #重试时间(辅助dns)
1W ; expire #过期时间(辅助dns,查询失败过期停止对辅助域名的应答)
3H ) ; minimum #A记录最短有效期
NS dns.lucky.com.
dns A 192.168.187.129
lucky.a A 192.168.187.97 ##正向解析记录
lucky.a A 192.168.187.99

复制并编辑A记录文件
在这里插入图片描述
在这里插入图片描述
第三步:重启并在另一台内网主机测试
systemctl restart named
另一台主机先检查下dns服务器是不是我们设置的
在这里插入图片描述
然后dig www.lucky.com,如图测试成功!
##多个ip会自动做轮调
在这里插入图片描述


规范域名转换CNAME记录

当内部主机名不规范时,对外开放的是规范域名。
那么对外开放的域名只有一个,将对外开放的域名转换到内部主机再做解析!

dns服务器端:
vim /var/named/lucky.com.zone #编辑A记录文件
添加:
www CNAME www.a.lucky.com.
#www.a.lucky.com.就是不规范域名
systemctl restart named #重启dns
客户端:
dig www.lucky.com #另一台主机测试

编辑文件
在这里插入图片描述
重启
在这里插入图片描述
另一台主机测试,如图设置成功!
在这里插入图片描述


邮件解析MX记录



什么是MX记录?
当我们在发送邮件时,假设我们用的163.com邮箱,需要将163.com解析成ip才能进行数据传输,这个ip就叫这个域的mx记录(负责邮件发送和接收的ip)。


dns服务器端:

vim /var/named/lucky.com.zone #编辑A记录文件
添加后保存退出:
lucky.com. MX 1 192.168.187.129.
systemctl restart named #重启dns

添加时写的是服务器ip
在这里插入图片描述
客户端:

dnf install postfix mailx -y #安装提供邮件投递协议的软件postfix和发送邮件的客户端mailx
systemctl start postfix #开启postfix服务
dig -t mx lucky.com #查看mx记录

查看mx记录,没有问题
在这里插入图片描述
发邮件给root@lucky.com(自行类比@qq.com)
##因为在dns服务器端25端口是自用的(回环),所以不会收到邮件,所以我们在测试端看发送队列看下效果即可
##如图即是正向解析成功!
在这里插入图片描述


DNS的反向解析


逆向查询记录PTR记录



什么是PTR记录?
邮件接收方只会显示发送方的ip,需要做反向解析,显示真实的域名,让用户知道邮件从哪儿来的。从ip到域名就是ptr记录。


dns服务器端:

vim /etc/named.rfc1912.zones #编辑文件
添加:
zone "187.168.192.in-addr.arpa" IN {
type master;
file "192.168.187.ptr";
allow-update { none; };
};
cd /var/named/
cp -p named.loopback 192.168.187.ptr #复制模板得到ptr文件
vim 192.168.187.ptr #编辑ptr记录文件
修改成下文:
$TTL 1D
@ IN SOA dns.lucky.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.lucky.com.
dns A 192.168.187.129
233 PTR www.lucky.com.
#反向解析IP192.168.187.233应该得到域名www.lucky.com
systemctl restart named #重启

编辑named.rfc1912.zones文件
在这里插入图片描述
编辑ptr记录文件
在这里插入图片描述
客户端:
dig -x 192.168.187.233测试如图成功!
在这里插入图片描述


DNS的双向解析

双向解析:
在内网中的主机解析得到内网的ip,
在外网中的主机解析得到外网的ip。
实验环境:
我们需要一台双网卡主机模拟内网,一台单网卡主机模拟外网
dns服务器端做内网主机:
添加一个网卡,将ip设为192.168.0.0/24网段的
原来的192.168.187.0/24网段的做内网ip
在这里插入图片描述
单网卡主机做外网主机:
ip改为192.168.0.0/24网段的,模拟外网主机,并且将网关设为dns服务器端192.168.0.0/24网段的ip,保证两台主机能相互通信
在这里插入图片描述

两台主机更改完网络后都需重启网络
nmcli connection reload
nmcli connection up 网络名
例如客户端网卡名为ens160,那么就是
nmcli connection up ens160

设置完后ping一下通了即可
在这里插入图片描述
dns服务器端(内网主机):

vim /etc/named.conf #编辑主配置文件
将下图内容注释掉:

在这里插入图片描述

注释掉后,在下边添加如下内容:
view localnet {
match-clients { 192.168.187.0/24; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
};
view internet {
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones.inter";
};

在这里插入图片描述

拷贝/etc/named.rfc1912.zones文件得到/etc/named.rfc1912.zones.inter文件
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.inter
vim /etc/named.rfc1912.zones.inter #编辑外网配置文件
做如下图更改:

在这里插入图片描述

拷贝A记录文件得到外网的A记录文件
cp -p /var/named/lucky.com.zone /var/named/lucky.com.inter
vim /var/named/lucky.com.inter #编辑外网A记录文件
做如下图更改:
#把ip都改成我们想让外网主机访问时看到的ip

在这里插入图片描述
重启systemctl restart named

vim /etc/resolv.conf #添加dns服务器ip
nameserver 192.168.187.129
#因为更改过网络,所以可能需要重新添加

在这里插入图片描述
客户端(外网主机):

vim /etc/resolv.conf #添加dns服务器ip
nameserver 192.168.187.129
#因为更改过网络,所以可能需要重新添加

在这里插入图片描述
测试:
dns服务器端(内网主机):
dig -x 192.168.187.233测试,如图显示的内网ip,成功!
在这里插入图片描述
客户端(外网主机):
dig -x 192.168.187.233测试,如图显示的外网ip,成功!
在这里插入图片描述


DNS集群



当我们的主dns服务器访问量过大时,服务器不足以支撑这么大的访问量,我们可以增加n台辅助dns来分担访问压力。
我们下面以增加一台辅助dns来实验如何使主辅dns同步更新!


辅助dns:
我以上面用过的客户端主机为辅助dns
先将其IP改为和主dns一个网段的,192.168.187.136
在这里插入图片描述

更改完网络后需重启网络
nmcli connection reload
nmcli connection up ens160

dnf install bind.x86_64 -y #也安装dns
#Berkeley Internet Name Domain (BIND)
systemctl enable --now named #启用dns服务,服务名称叫named
firewall-cmd --permanent --add-service=dns #火墙设置
firewall-cmd --reload #重启火墙
setenforce 0 #调整内核级火墙为警告模式
vim /etc/named.conf #编辑主配置文件
注释掉11,12,19行
vim /etc/named.rfc1912.zones #在文件中加入域名语句块
添加:
zone "lucky.com" IN {
type slave; #类型是辅助dns
masters { 192.168.187.129; }; #主dns
file "slaves/lucky.com.zone"; #数据同步到slaves目录下
};

编辑主配置文件注释掉如图三行,就相当于全部都开启(any)
在这里插入图片描述
添加域名语句块
在这里插入图片描述

vim /etc/resolv.conf
nameserver 192.168.187.136 #将dns服务器改为自己的,为了看效果

systemctl restart named #重启dns服务

在这里插入图片描述
主dns:
我以上面配好的dns服务器192.168.187.129这台主机为主dns

先去掉上个实验的配置,防止影响
vim /etc/named.conf #编辑主配置文件
注释掉如下图内容:

在这里插入图片描述

vim /etc/named.rfc1912.zones
在域名语句块内添加如下内容:
also-notify { 192.168.187.136; }; #辅助dns的ip
systemctl restart named #重启dns

在这里插入图片描述
测试:
辅助dns:
dig www.lucky.com得到如图结果:
在这里插入图片描述
主dns:

vim /var/named/lucky.com.zone #编辑A记录文件
更改下ip和serial值:
之后在辅助dns端重新dig看是否同步成功

在这里插入图片描述

serial值的作用:
每更改一次该值并重启主dns服务后,辅助dns就会重新同步A记录
即重新同步域名所对应ip
一天可以改99次
值可以任意写!
!!!!!但只能增量更改!!!!!
其他值解释:
1D ; refresh #刷新时间(辅助dns)
1H ; retry #重试时间(辅助dns)
1W ; expire #过期时间(辅助dns,查询失败过期停止对辅助域名的应答)
3H ) ; minimum #A记录最短有效期

辅助dns:
dig www.lucky.com得到如图结果:
测试成功!ip同步成功!
在这里插入图片描述


DDNS(DHCP+DNS)动态域名解析



dhcp能自动分配ip,当重新分配时怎么让dns知道ip重新分配了呢?ddns可以解决这个问题,实现动态域名解析。
更新原理:制作一个key,让dhcp能更新dns的A记录,key是更新域名的钥匙。
在/var/named目录下生成一个更新数据,在系统读取A记录时会把.jnl结尾的更新文件与A记录文件整合实现。


ddns服务端:

dnf install dhcp-server -y #安装dhcp服务器
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf #复制模板得到配置文件
vim /etc/dhcpd/dhcpd.conf #编辑dhcp配置文件
做如下图修改:
#修改最终结果是剩31行

在这里插入图片描述

systemctl start dhcpd #开启dhcp
接下来制作更新域的“钥匙”key:
#/etc/rndc.key是dns默认使用的key模板,用的是SHA-256加密,所以我们下面也要使用SHA-256加密
cd /mnt/
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST luckykey
#SHA256加密方式是对称的,公钥和私钥是一样的

在这里插入图片描述

cp -p /etc/rndc.key /etc/lucky.key #复制key模板得到key文件
vim /etc/lucky.key #编辑key文件
改成如下内容:
key "luckykey" { #我们前面取的key名字
algorithm hmac-sha256; #加密方式
secret "/P/GVMVRb/dNIjtr2qYvMg=="; #我们前面生成的密钥,最好复制粘贴
};

在这里插入图片描述

vim /etc/named.conf #更改dns主配置文件加key文件指向
在第45行左右添加key文件指向:
include "/etc/lucky.key";

在这里插入图片描述

vim /etc/named.rfc1912.zones #域名语句块在这里
在域名语句块里添加key更新:
如下图:

在这里插入图片描述

systemctl restart named #重启dns
接下来测试一下该key能否更新dns:
nsupdate -k Kluckykey.+163+37031.private #-k指定key,不指定send会失败
> update add hello.lucky.com 86400 A 192.168.187.111 #新增A记录
> send #成功
> update del hello.lucky.com #删除A记录
> send #成功
> quit #退出
测试成功!继续下一步

在这里插入图片描述

vim /etc/dhcp/dhcpd.conf #编辑dncp配置文件
打开dns更新的“开关”:
第14行取消注释,并改为interim(网络更新):
ddns-update-style interim;
在最后指定key,相当于让dhcp拿到了dns更新的“钥匙”:
key luckykey { #我们前面取得key的名字,别写错了
algorithm hmac-sha256;
secret /P/GVMVRb/dNIjtr2qYvMg==; #最好直接复制前面我们生成的key文件里的防止出错
};
在最后加入key要更新的域:
zone lucky.com. {
primary 127.0.0.1; #dns在本机,所以直接写本机回环接口就可以了
key luckykey; #我们前面取得key的名字,别写错了
}

在这里插入图片描述

删掉jnl文件(不然前面的更新测试会影响):
rm -fr /var/named/lucky.com.zone.jnl
重启两个服务:
systemctl restart dhcpd
systemctl restart named

在这里插入图片描述
客户端:
首先要关闭VM虚拟机的本地dhcp服务,如下图操作即可:
##如果是真机是linux系统直接在虚拟机里改配置文件即可
在这里插入图片描述
选择更改设置
在这里插入图片描述
取消勾选本地dhcp服务
在这里插入图片描述

然后将我们之前设置的静态ip改为dhcp:
nm-connection-editor

在这里插入图片描述

测试下我们是否关闭本地dhcp成功:
nmcli connection up ens160 #重启网卡
cat /etc/resolv.conf #看下dns服务用的谁的

如图是用的我们自己配置的,设置成功!
在这里插入图片描述

改下主机名方便测试:
hostnamectl #查看主机名
hostnamectl set-hostname nodeb.lucky.com #改主机名为nodeb.lucky.com

在这里插入图片描述
测试:
客户端:

dig nodeb.lucky.com
ifconfig
看两个出来的ip一样否

如图是一样的
在这里插入图片描述
ddns服务端:

vim /etc/dhcp/dhcpd.conf #编辑dncp配置文件
改一下ip范围:
我改为了77-90,如下图:

在这里插入图片描述

重启下dhcp服务:
systemctl restart dhcpd

在这里插入图片描述
客户端:

nmcli connection up ens160 #重启网卡,那么会重新获取ip
dig nodeb.lucky.com
ifconfig
看两个出来的ip一样否

如图,重新获取的ip是我们上面重新设置的范围内的,dns解析也是同步的!
在这里插入图片描述
测试成功!






推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 数字账号安全与数据资产问题的研究及解决方案
    本文研究了数字账号安全与数据资产问题,并提出了解决方案。近期,大量QQ账号被盗事件引起了广泛关注。欺诈者对数字账号的价值认识超过了账号主人,因此他们不断攻击和盗用账号。然而,平台和账号主人对账号安全问题的态度不正确,只有用户自身意识到问题的严重性并采取行动,才能推动平台优先解决这些问题。本文旨在提醒用户关注账号安全,并呼吁平台承担起更多的责任。令牌云团队对此进行了长期深入的研究,并提出了相应的解决方案。 ... [详细]
author-avatar
o0大大脸么么小小鱼0o
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有