# 网络 # 动态公网IP再利用 ## 问题 - 这个公网IP为路由器WAN口所得,我可以让局域网内的服务主机供公网访问吗 - 利用路由器上的端口映射功能,将内网的8081映射到公网的8081 - 这个IP地址每天会更新一次,我要每次使用都需要查询一下吗 - 通过DDNS更新IP地址值到域名的A记录 - 我想做一个网站,80、443端口被运营商封了怎么办 - 通过服务器搭建的反向代理服务,将服务器上的80端口反向代理到公网IP的8081端口 ## 端口映射 内网地址:192.168.188.205的所有端口,映射到外网接口的1-65536,all端口 [![](https://img.llzdsec.com/ddns/%E6%88%AA%E5%B1%8F2022-04-23%20%E4%B8%8B%E5%8D%884.23.22.png)](https://img.llzdsec.com/ddns/%E6%88%AA%E5%B1%8F2022-04-23%20%E4%B8%8B%E5%8D%884.23.22.png) 映射成功后,比如192.168.188.205这台主机搭建了WEB服务在8088端口,此时,访问外网接口的8088端口就可以进行连接 ## DDNS: 端口映射后,虽然可以达成访问需求,但是毕竟是动态公网IP,此地址每天都会更新,我们可以利用DDNS服务,定期检查现在公网,把这个地址自动写进DNS的域名解析A记录的值 ### DDNS工作流程: 获取当前公网IP地址 通过API的ID与密码登录DNS控制台 修改配置文件里子域名的IP值 通过定时任务定时更新域名解析的值为当前公网IP ## 材料: - 随便注册域名一个 - Linux主机或支持DDNS服务的路由器 我拿已经注册好的域名来做一个演示(DNSPod平台) 在控制台->我的域名->选择已有域名->增加记录 [![](https://img.llzdsec.com/ddns/%E6%88%AA%E5%B1%8F2022-04-23%20%E4%B8%8B%E5%8D%885.14.11.png)](https://img.llzdsec.com/ddns/%E6%88%AA%E5%B1%8F2022-04-23%20%E4%B8%8B%E5%8D%885.14.11.png) 随便增加一个三级域名记录:xxx.llzdsec.com,类型为A记录,记录值随便填 [![](https://img.llzdsec.com/ddns/%E6%88%AA%E5%B1%8F2022-04-23%20%E4%B8%8B%E5%8D%885.18.47.png)](https://img.llzdsec.com/ddns/%E6%88%AA%E5%B1%8F2022-04-23%20%E4%B8%8B%E5%8D%885.18.47.png) ## 获取控制台API 点击右上角头像->账号中心->API密钥->DNSPod Token 创建成功后,请记住ID与Token值,为API的账号与密码 [![](https://img.llzdsec.com/ddns/%E6%88%AA%E5%B1%8F2022-04-23%20%E4%B8%8B%E5%8D%887.24.43.png)](https://img.llzdsec.com/ddns/%E6%88%AA%E5%B1%8F2022-04-23%20%E4%B8%8B%E5%8D%887.24.43.png) ## 编辑脚本
``` 1

2 ```
``` mkdir /ddns -m 777

vim /ddns/ddns.sh

```
BASH
修改`TOKEN`,`DOMAIN`,`SUB_DOMAIN`为实际值
``` 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43 ```
``` #!/bin/bash



# This program establish ddns service

# to modify the public ip address of dns server.

# The dns server is dnspod.

# /etc/crontab # if centos etc.

# */10 * * * * root /usr/local/sbin/dnspod_ddns.sh 1>&2> /dev/null

# /etc/crontabs/root # if openwrt etc.

# */10 * * * * /usr/sbin/dnspod_ddns.sh



#TOKEN=id,token

TOKEN="112233,67fa231667a33de0f5255f62d33161eb"

#full domain name

DOMAIN="yourdomain.com"

#sub domain first name

SUB_DOMAIN="xxx"



# TOKEN=`cat dnspod_ddns.conf|grep TOKEN|awk -F'=' '{print $2}'`

# DOMAIN=`cat dnspod_ddns.conf|grep -e '^DOMAIN'|awk -F'=' '{print $2}'`

# SUB_DOMAIN=`cat dnspod_ddns.conf|grep SUB_DOMAIN|awk -F'=' '{print $2}'`





DATA="login_token=$TOKEN&format=json&domain=$DOMAIN&sub_domain=$SUB_DOMAIN&record_type=A&offset=0&length=3"

JOSN_RECORDS=`curl -4 -s -X POST https://dnsapi.cn/Record.List -d $DATA`



RECORD_ID=`echo $JOSN_RECORDS|sed '/id/ s/.*id":"\(.*\)","ttl.*/\1/'`

LINE_ID=`echo $JOSN_RECORDS|sed '/line_id/ s/.*line_id":"\(.*\)","type.*/\1/'`

#=================get record ip

IP_RESOLVED=`echo $JOSN_RECORDS|sed '/value/ s/.*value":"\(.*\)","enabled.*/\1/'`



#================get real ip

#REAL_IP=`cat

REAL_IP=`curl -4 -s myip.ipip.net|awk -F' |:' '{print $3}'`



#REAL_IP="2.2.3.2"

if [ $REAL_IP != $IP_RESOLVED ]; then

#================modify record

DATA="login_token=$TOKEN&format=json&domain=$DOMAIN&record_id=$RECORD_ID&sub_domain=$SUB_DOMAIN&value=$REAL_IP&record_type=A&record_line_id=$LINE_ID"

# echo $DATA

JSON_RESULT=`curl -4 -s -X POST https://dnsapi.cn/Record.Modify -d $DATA`

echo $JSON_RESULT >> /var/log/dnspod_ddns.log

IP_RESOLVED=$REAL_IP

fi

```
BASH
``` 1

2

3 ```
``` chmod ugo+x ./*.sh #赋予脚本执行权限

nslookup update.llzdsec.com #查看记录是否更改成功

curl ip.sb #查看当前公网ip是否符合

```
BASH
## 定时执行
``` 1

2 ```
``` crontab -e

*/30 * * * * /bin/bash /liangzai/ddns.sh #每30分钟执行一次更新

```
BASH
## 反向代理 做完上面步骤后,已经可以通过域名的方式访问内网的WEB应用了,但是由于运营商封堵了80(http)和443(https)端口,导致要用到其他端口才可以访问:update.llzdsec.com:8088,加个端口会显得比较别扭,用反向代理可以很好解决 [![](https://img.llzdsec.com/ddns/%E6%97%A0%E6%A0%87%E9%A2%98.png)](https://img.llzdsec.com/ddns/%E6%97%A0%E6%A0%87%E9%A2%98.png) 登录自己购买的服务器 在开始之前,先关闭阻止菜鸟前进的SElinux和防火墙
``` 1

2

3 ```
``` sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

cat /etc/selinux/config |grep ^SELINUX=

setenforce 0

```
GRADLE
``` 1

2 ```
``` systemctl stop firewalld

systemctl disable firewalld

```
BASH
### 安装配置
``` 1 ``` ``` yum install nginx -y

```
BASH
``` 1 ``` ``` vim /etc/nginx/conf.d/proxy.conf

```
BASH
``` 1

2

3

4

5

6

7

8 ```
``` server {

listen 80;

server_name test.llzdsec.com;



location / {

proxy_pass http://update.llzdsec.com:8088;

}

}

```
BASH
``` 1 ``` ``` systemctl enable nginx -now

```
# 一个IP建多个Web站点--主机头名法
由于各种原因,我们有时候需要在一个IP地址上建立多个web站点,在IIS中,我们可能通过简单的设置达到这个目标。 在IIS中,每个 Web 站点都具有唯一的、由三个部分组成的标识,用来接收和响应请求: 1、IP地址 2、端口号 3、主机头名。 在IIS中,在一个IP地址上建立多个
由于各种原因,我们有时候需要在一个IP地址上建立多个web站点,在IIS中,我们可能通过简单的设置达到这个目标。 在IIS中,每个 Web 站点都具有唯一的、由三个部分组成的标识,用来接收和响应请求: 1、IP地址 2、端口号 3、主机头名。 在IIS中,在一个IP地址上建立多个独立的web站点,通常有两种方法,本文以以例子的形式介绍主机头法,使用这种方法可以建立起专业的虚拟主机。 环境:假设某公司用一台win2000服务器提供虚拟主机服务,地址是192.168.1.10。在这台服务器已经安装了Internet服务即IIS。 现在公司要求网络管理员在服务器上使用一个IP为A、B、C、D四个公司建立独立的网站,每个网站拥有自己独立的域名。四家网站域名分别为:www.a.com,www.b.com,www.c.com和www.d.com。 通过使用主机头,站点只需一个IP地址即可维护多个站点。客户可以使用不同的域名访问各自的站点,根本感觉不到这些站点在同一主机上。 具体操作如下: 1、在win2000服务器为四家公司建立文件夹,做为Web站点主目录。如下:
Web站点主目录
Web站点
d:\web\a
A公司网站
d:\web\b
B公司网站
d:\web\c
C公司网站
d:\web\d
D公司网站
2、使用WEB站点管理向导,分别四家公司建立独立的WEB站点,四者最大的不同是使用了不同的主机头名。 以下是个表格:
A公司网站
B公司网站
C公司网站
D公司网站
IP地址
192.168.1.10
TCP端口
80
权限
读取和运行脚本
主机头名
www.a.com
www.b.com
www.c.com
www.d.com
站点主目录
d:\web\a
d:\web\b
d:\web\c
d:\web\d
在DNS中将这四个域名注册上,均指向同一地址:192.168.1.10.这样,客户端就可以通过分配指定目录: www.a.com 访问A公司站点 www.b.com 访问B公司站点 www.c.com 访问C公司站点 www.d.com 访问D公司站点 3、每个站点的主机头名可以在WEB站点建立向导中设置,它与站点的IP地址,TCP端口在同一屏上。也可能通过该站点->“属性”->“WEB站点”标签->选IP地址右边的"高级"按钮,跳出“高级多WEB站点配置”进行配置。 这种方法建立可以建立专业的虚拟主机,几乎所有使用IIS提供虚拟主机的公司都这样做的。 # 通过Nginx反向代理实现多个域名站点复用一个公网IP 大家都知道现在全球IPv4地址是稀缺资源,如果您的公司或自己的互联网相关应用需要对外提供服务,那么固定IP是必不可少的。申请一条带固定公网IP的互联网线路所提供的免费IP是有限的,如果需要扩充IP地址则需要增加月租费用,如果您要发布的域名及站点比较多的话,每个域名对应一个固定IP,那么就会增加您的成本,长久下来也是一笔不小的费用。 另外互联网站点通常为了增加应用的高可靠性以及横向的扩展性,通常会部署如F5、LVS、HAproxy或NGINX这类的反向代理(负载均衡)的硬件或软件在web服务器的前面,以实现四层、七层的负载均衡能力。 一、 对于有多个站点的情况,通常是通过二级域名来区分,比如说你有2个站点,你可以做2条DNS分别解析到2个不同的公网IP上。例如: 站点1: [news.aaa.com](https://link.zhihu.com/?target=http%3A//news.aaa.com) 192.168.50.123 站点2: [sports.aaa.com](https://link.zhihu.com/?target=http%3A//sports.aaa.com) 192.168.50.124 这样当用户请求[news.aaa.com](https://link.zhihu.com/?target=http%3A//news.aaa.com)及[sports.aaa.com](https://link.zhihu.com/?target=http%3A//sports.aaa.com)时,就会访问到对应的页面里,但这样就会消耗掉2个公网IP,如果你有N个站点,以此类推,你就需要N个公网IP地址。
![](https://pic2.zhimg.com/80/v2-f6464201b8f4c992aafafe6e1a232da1_1440w.jpg)
二、 有朋友会说,我可以通过IP+端口号的方式来区分我的站点啊,将2个不同的域名DNS解析为同一个公网IP,这样我也是可以复用我这个公网IP的,比如将192.168.50.123:80(默认端口)映射到[news.aaa.com](https://link.zhihu.com/?target=http%3A//news.aaa.com),将192.168.50.123:8080映射到[sports.aaa.com](https://link.zhihu.com/?target=http%3A//sports.aaa.com)这个站点,用户访问时则需要在浏览器输入 [sports.aaa.com:8080](https://link.zhihu.com/?target=http%3A//sports.aaa.com%3A8080),这样也可以实现复用1个公网IP达到访问2个不同域名站点的需求。但问题是域名带了端口号之后对于用户体验就非常不友好了,对于小白用户来说8080端口号可能还容易敲错。对于内部用户还好,但是对于外部用户如果网站多加个端口号来访问并不太现实。 以上复用公网IP,用端口号区分网站的做法,将2个域名做DNS解析到同一个公网IP。 站点1: [news.aaa.com](https://link.zhihu.com/?target=http%3A//news.aaa.com) 192.168.50.123 站点2: [sports.aaa.com](https://link.zhihu.com/?target=http%3A//sports.aaa.com) 192.168.50.123
![](https://pic4.zhimg.com/80/v2-1e192a5d343bea4e2feeb7702b78537b_1440w.jpg)
三、 那有没有办法多域名多站点的情况下,通过同一个IP+80端口来访问呢?是有办法的,以下就以NGINX作为反向代理(负载均衡)为例介绍一下如何实现,其他硬件或软件也是同理的。主要是用到“虚拟主机”的这个功能,来实现公网IP的收敛。 首先NGINX作为反向代理需要使用七层代理模式(Nginx默认即为七层代理),大家知道http的请求是有http报文头的,在http报文头里有个字段叫做host,当我们用浏览器输入一个域名访问一个站点时,http request报文头里面就会插入对应的host域名,Nginx反向代理服务器则可以通过获取这个http request的报文头host字段,通过判断这个域名根据设定的转发规则,转发到相应的Web集群服务器里,并response对应的页面给到浏览器,这样就能够实现根据不同域名解析到同一个公网IP及端口的复用的场景,节省了公网IP的使用了。
![](https://pic2.zhimg.com/80/v2-7fba8486c1c97845959bddb174862f11_1440w.jpg)
以下是Nginx里的具体配置及请求过程,其实配置是非常简单的,只要根据servername来proxy\_pass给不同的upstream即可(因网上已有大量讲解nginx反向代理及负载均衡的配置详解,这里具体配置参数的含义就不再赘述了)。 编辑nginx配置文件,vim /etc/nginx/nginx.conf 1、分别创建2个upstream,也就是后台真实服务器的pool,一个是news指向web服务器web服务器192.168.50.201,另外一个是sports,指向web服务器192.168.50.202; 2、分别创建2个server并监听80端口,其中一个设定servername为[news.aaa.com](https://link.zhihu.com/?target=http%3A//news.aaa.com),proxy\_pass转发到news这个upstream,另外一个设定为[sports.aaa.com](https://link.zhihu.com/?target=http%3A//sports.aaa.com),proxy\_pass转发到sports这个upstream; 3、Nginx反向代理对外发布的是192.168.50.123这个IP;
```text http { upstream news{ ip_hash; server 192.168.50.201:80; } upstream sports{ ip_hash; server 192.168.50.202:80; } server { listen 80; server_name news.aaa.com ; location / { proxy_pass http://news; proxy_set_header Host $http_host; } } server { listen 80; server_name sports.aaa.com; location / { proxy_pass http://sports; proxy_set_header Host $http_host; } } } ```
下面我们来测试一下,我自己的电脑模拟为客户端,并修改系统的hosts文件模拟DNS解析[news.aaa.com](https://link.zhihu.com/?target=http%3A//news.aaa.com)及[sports.aaa.com](https://link.zhihu.com/?target=http%3A//sports.aaa.com)解析到192.168.50.123这个IP地址,windows的hosts文件在这个目录下C:\\Windows\\System32\\drivers\\etc
![](https://pic1.zhimg.com/80/v2-1ea18c0f5a8cdf928e6ecedfb6aafaa4_1440w.jpg)
![](https://pic1.zhimg.com/80/v2-78405020f48f68624dba5b4a52c42558_1440w.jpg)
通过浏览器访问[news.aaa.com](https://link.zhihu.com/?target=http%3A//news.aaa.com)
![](https://pic4.zhimg.com/80/v2-d2bdf0ed634fdef679c69cc8ebc8266f_1440w.jpg)
![](https://pic1.zhimg.com/80/v2-339f9674edc5e73c7a1f923790ab081c_1440w.jpg)
通过浏览器访问[sports.aaa.com](https://link.zhihu.com/?target=http%3A//sports.aaa.com)
![](https://pic4.zhimg.com/80/v2-a288d3f6313fc2497169e78b8c923f67_1440w.jpg)
![](https://pic3.zhimg.com/80/v2-ba8726ef7060d097efe04598a540a712_1440w.jpg)
## 以上,就实现了使用http报文头的host来选择转发到相应的节点,实现虚拟主机的功能。当然根据http报文头还可以使用很多的规则进行七层转发的操作。。 # WHOIS 数据 亲爱的贵重客户: 此消息提醒您,可帮助您使与域名注册关联的联系人数据保持最新状态。我们的记录包括以下信息: 域名:example.com 注册人姓名:IANA\_RESERVED 注册人: 名称:互联网号码分配局(IANA) 地址:4676 Admiralty Way, Suite 330 城市:Marina del Rey 州/省:CA 国家:美国 邮编:92092 行政联系人: 名称:互联网号码分配局(IANA) 地址:4676 Admiralty Way, Suite 330 城市:Marina del Rey 州/省:CA 国家:美国 邮编:92092 电话:[310-823-9358](tel:310-823-9358) 传真:[310-823-8649](tel:310-823-8649) 电子邮件: 技术联系人: 名称:互联网号码分配局(IANA) 地址:4676 Admiralty Way, Suite 330 城市:Marina del Rey 州/省:CA 国家:美国 邮编:92092 电话:[310-823-9358](tel:310-823-9358) 传真:[310-823-8649](tel:310-823-8649) 电子邮件: 原始创建日期:2001年11月1日 到期日期:2001年11月1日 名称服务器信息: 名称服务器:a.iana-servers.net。 名称服务器:b.iana-servers.net。 名称服务器:c.iana-servers.net。 如果上述任何信息不准确,您必须通过访问我们的网站进行更正。(如果您的审查表明上述所有信息都是准确的,则无需采取任何行动。)请记住,根据您的注册协议条款,提供虚假的WHOIS信息可以作为取消您的域名注册的理由。 [如何更正我的WHOIS信息?](https://whois.icann.org/en/how-do-i-correct-my-whois-information) # 申请企业网络专线流程及资质 ### 中国电信 **流程** - 预接受 - 立项 - 勘察 - 施工 - 开通 - 签订合同 **证件** 1. 营业执照复印件 2. 组织机构代码证 3. 银行开户许可证 4. 法人身份证复印件 5. 经办人身份证复印件 **协议** - 网络承诺书 - 受理表 - 资费表 # 网络优化 #### 调优思路 本章主要是围绕优化网卡性能和利用网卡的能力分担CPU的压力来提升性能。在高并发的业务场景下,推荐使用两块网卡,减少跨片内存访问的次数。即将两块网卡分别绑定在服务器的不同CPU上,每个CPU只处理对应的网卡数据。高并发场景还可以为网卡选择x16的PCIe卡。 说明: 高并发场景是指:在同时或极短时间内,有大量的请求到达服务端,每个请求都需要服务端耗费资源进行处理,并做出相应的反馈。 #### 主要优化参数
优化项 优化项简介 默认值 生效范围 鲲鹏916处理器 鲲鹏920处理器
调整TLP(Transaction Layer Packet)的最大有效负载 调整PCIE总线每次数据传输的最大值 128B 重启生效 Y Y
设置网卡队列数 调整网卡队列数量 不同操作系统和网卡不同 立即生效 Y Y
将每个网卡中断分别绑定到距离最近的核上 减少跨NUMA访问内存 Irqbalance 立即生效 Y Y
聚合中断 调整合适的参数以减少中断处理次数 不同操作系统和网卡不同 立即生效 Y Y
开启TCP分段Offload(卸载) 将TCP的分片处理交给网卡处理 关闭 立即生效 Y Y
**父主题:** [网络子系统性能调优](https://support.huaweicloud.com/tuningtip-kunpenggrf/kunpengtuning_12_0019.html) # BIND DNS 域名系统可帮助您在互联网上达到您想要的位置。确保您知道它是什么,以及如何设置、配置和测试它。 域名系统(DNS)用于将主机名解析(翻译)为互联网协议(IP)地址,反之亦然。DNS服务器,也称为**名称服务器**,将IP地址映射到主机名或域名。 在本文中,您将学习DNS的基础知识,从DNS如何获取IP地址和主机名,到正向和反向查找区域的概念。它还将向您展示如何安装和配置DNS,定义和编辑区域文件,并验证DNS是否可以借助命令解析到正确的地址。如果您是DNS的新手,本文将帮助您使用基本配置在系统上玩它。 ## DNS的工作原理 当客户端从nameserver请求信息时,它通常连接到端口53,然后nameserver解析请求的名称。
图像
![客户端和服务器之间的DNS查找请求和响应](https://www.redhat.com/sysadmin/sites/default/files/styles/embed_large/public/2021-08/Screen%20Shot%202021-08-10%20at%203.30.51%20PM.png?itok=JEEkZmrJ)
(Ashish Bharadwaj,CC BY-SA 4.0)
-
从DNS客户端向DNS服务器发送请求称为**查找请求。** - 从DNS服务器获得对DNS客户端的响应称为**查找响应**。 - 配置DNS服务的系统称为DNS**服务器**。 - 访问DNS服务器的系统称为DNS**客户端**。
## DNS 在哪里获取 IP 地址? 您可能会想知道DNS如何获取相应主机名或域名的IP。DNS如何在不同的IP地址之间搜索并正确关联您的域名?谁存储了域名和IP地址之间的映射? DNS工作流程说明了DNS内部通信的方式以及它如何解决地址问题。
图像
![DNS工作流程](https://www.redhat.com/sysadmin/sites/default/files/styles/embed_large/public/2021-08/Screen%20Shot%202021-08-10%20at%203.31.08%20PM.png?itok=SHZbSD1u)
(Ashish Bharadwaj,CC BY-SA 4.0)
- 当客户端搜索域名`www.example.com`时,请求最初将发送到互联网服务提供商(ISP)解析器。它将响应用户解析域名的请求。 - 如果在解析器上找不到IP地址,请求将转发到根DNS服务器,然后转发到顶级域(TLD)服务器。 - TLD服务器存储顶级域的信息,如**.com**或**.net**。 - 请求被转发给名称服务器,这些服务器知道有关域和IP地址的详细信息。 - 命名服务器响应ISP的解析器,然后解析器使用请求的IP响应客户端。 - 当解析器不知道IP时,它会将IP及其域存储在缓存中,以服务未来的查询。
***\[立即下载:[系统管理员IT自动化指南](https://www.redhat.com/en/engage/system-administrator-guide-s-202107300146?intcmp=701f20000012ngPAAQ)。】*** ## 向前和反向查找 **正向查找区域**使用域名搜索IP地址,而**反向查找区域**使用IP地址搜索域名。
图像
![正反向查找流程](https://www.redhat.com/sysadmin/sites/default/files/styles/embed_large/public/2021-08/Screen%20Shot%202021-08-10%20at%203.31.27%20PM.png?itok=0EJNawAa)
(Ashish Bharadwaj,CC BY-SA 4.0)
## 安装和配置DNS BIND是一个名称服务器服务,负责在基于Linux的DNS服务器上执行域名称到IP的转换。
```shell [root@servera ~] # yum install bind ```
BIND软件包提供`named`服务。它从`/etc/named`和`/etc/named.conf`文件中读取配置。安装此软件包后,您可以开始配置DNS。 ### 配置 /etc/named.conf 文件 首先,在**选项**字段中添加或编辑这两个值。一个是DNS服务器地址,另一个是**允许查询任何**地址。
```shell [root@servera ~] # vim /etc/named.conf listen-on port 53 { 127.0.0.1; 192.168.25.132; }; allow-query { localhost; any; }; ```
以下是上述文件中的值:
- **192.168.25.132** – DNS 服务器地址 - **任何** – 匹配每个 IP 地址
### 定义正反区域 在`/etc/named.conf`或`/etc/named.rfc1912.zones`中定义正向和反向区域(您可以在其中任何文件中定义区域)。在本例中,我将区域定义详细信息附加到`/etc/named.rfc1912.zones`文件中。
```shell [root@servera ~] # vim /etc/named.rfc1912.zones   zone "example.com" IN { type master; file "example.forward.zone"; allow-update { none; }; }; zone "25.168.192.in-addr.arpa" IN { type master; file "example.reverse.zone"; allow-update { none; }; }; ```
### 创建前进和反向区域文件 您还需要在`/var/named`目录中创建正向和反向区域文件。 **注意**:默认情况下,`named.conf`文件包括用于检查区域文件的`/var/named`目录。在安装BIND软件包期间创建`named.localhost`和`named.loopback`的示例区域文件。
```shell [root@servera ~] # vim /var/named/example.forward.zone ```
图像
![前瞻性查找区域](https://www.redhat.com/sysadmin/sites/default/files/styles/embed_large/public/2021-08/Screen%20Shot%202021-08-10%20at%203.31.46%20PM.png?itok=o8e0bphQ)
(Ashish Bharadwaj,CC BY-SA 4.0)
```shell [root@servera ~] # vim /var/named/example.reverse.zone ```
图像
![反向查找区域](https://www.redhat.com/sysadmin/sites/default/files/styles/embed_large/public/2021-08/Screen%20Shot%202021-08-10%20at%203.32.03%20PM.png?itok=KJ3hjy5E)
(Ashish Bharadwaj,CC BY-SA 4.0)
### 将nameserver IP添加到/etc/resolv.conf 首先,您必须禁用NetworkManager的DNS处理,因为它从其活动连接配置文件中动态更新带有DNS设置的`/etc/resolv.conf`文件。要禁用此功能并允许手动编辑`/etc/resolv.conf`,您必须创建一个文件(例如`90-dns-none.conf`),作为`/etc/NetworkManager/conf.d/`目录中的根文件,其中包含以下内容:
```plaintext [main] dns=none ```
保存文件并重新加载(重新启动)NetworkManager。
```shell # systemctl reload NetworkManager ```
重新加载NetworkManager后,它不会更新`/etc/resolv.conf`。现在,您可以手动将nameserver的IP地址添加到`/etc/resolv.conf`文件中。
```shell [root@servera ~] # vim /etc/resolv.conf # Generated by NetworkManager search localdomain example.com nameserver 192.168.25.132 ```
***做好准备,以防出错。阅读[DNS故障诊断简介](https://www.redhat.com/sysadmin/intro-dns-troubleshooting)。】*** ### 启动/重新启动并启用指定的服务 如果`named`服务没有运行或被禁用,则启动并启用它。如果它已经处于活动状态(正在运行),并且您进行了所有这些配置,则需要重新启动服务以进行更改。
```shell [root@servera ~] # systemctl status named.service [root@servera ~] # systemctl start named.service [root@servera ~] # systemctl enable named.service [root@servera ~] # systemctl restart named.service ```
## 验证DNS名称分辨率 您已安装BIND软件包,配置`named`文件,创建了查找区域,并重新启动了服务以使配置生效。现在使用`nslookup`和`dig`命令来检查DNS是否正常工作,并验证您是否得到了预期结果。
- `nslookup`是一个查询互联网域名服务器的程序。 - `dig`是查询DNS服务器的工具。它执行DNS查找并显示从nameserver返回的答案。
### 使用nslookup查询
```shell [root@servera ~] # nslookup servera.example.com   Server: 192.168.25.132 Address: 192.168.25.132#53 Name: servera.example.com Address: 192.168.25.132 [root@servera ~] # nslookup 192.168.25.132 132.25.168.192.in-addr.arpa name = servera.example.com. ```
### 询问挖掘 以下是前瞻性查找,其中DNS以**192.168.11.132**作为IP forservera**.example.com进行**响应:
```shell [root@servera ~] # dig servera.example.com    ...output truncated... ;; ANSWER SECTION: servera.example.com. 86400 IN A 192.168.25.132 ;; AUTHORITY SECTION: example.com. 86400 IN NS servera.example.com. ...output truncated... ```
此示例显示反向查找,其中DNS服务器以**servera.example.com**作为**192.168.25.132**的域名进行响应:
```shell [root@servera ~] # dig -x 192.168.25.132   ...output truncated... ;; ANSWER SECTION: 132.25.168.192.in-addr.arpa. 86400 IN PTR servera.example.com. ;; AUTHORITY SECTION: 25.168.192.in-addr.arpa. 86400 IN NS servera.example.com. ;; ADDITIONAL SECTION: servera.example.com. 86400 IN A 192.168.25.132 ...output truncated... ```
## 总结 在本文中,您了解了什么是DNS及其工作原理。此外,您现在知道什么是正向和反向查找区域以及它们的工作原理。您还学习了如何安装BIND软件包,该软件包负责在系统上设置DNS并配置`named`文件和查找区域。最后,您学习了两个命令,`nslookup`和`dig`,来查询DNS分辨率。 # windows 5G路由器安装 [https://cloud.tencent.com/developer/article/1678119](https://cloud.tencent.com/developer/article/1678119)