[内容] 全球公共免费 DNS

AdGuard

94.140.14.14
94.140.14.15
94.140.15.15
94.140.15.16

Cloudflare

1.0.0.1
1.0.0.2
1.0.0.3
1.1.1.1
1.1.1.2
1.1.1.3

COMODO

8.20.247.20
8.26.56.26

DNS Watch

84.200.69.80
84.200.70.40

Dyn

216.146.35.35
216.146.36.36

Level 3

209.244.0.3
209.244.0.4

Neustar

156.154.70.1
156.154.71.1

FreeDNS

37.235.1.174
37.235.1.177

Google

8.8.4.4
8.8.8.8

OpenDNS

208.67.220.220
208.67.222.222

SAFEDNS

195.46.39.39
195.46.39.40

Symantec

199.85.126.10
199.85.137.10

[内容] DNS 客户端的设置 (Linux 版)

内容一:设置 DNS 客户端
1.1 直接在本地指定域名
1.1.1 直接在本地指定域名的方法

# vim /etc/hosts

添加以下内容:

......
<IP address> <domain name>

(注意:/etc/hosts 里记录的 DNS 优先级要比 /etc/resolv.conf 里的高)

1.1.2 直接在本地指定域名的案例

# vim /etc/hosts

添加以下内容:

......
192.154.240.64 eternalcenter.com

(补充:这里以将 192.154.240.64 解析为 eternalcenter.com 为例)

(注意:/etc/hosts 里记录的 DNS 优先级要比 /etc/resolv.conf 里的高)

1.2 使用远程的 DNS 服务器解析域名
1.2.1 使用远程的 DNS 服务器解析域名
1.2.1.1 使用远程的 DNS 服务器解析域名的方法
1.2.1.1.1 直接修改 /etc/resolv.conf 文件

# vim /etc/resolv.conf

添加以下内容:

......
nameserver <IP address of DNS server>

(注意:/etc/hosts 里记录的 DNS 优先级要比 /etc/resolv.conf 里的高)

1.2.1.1.2 使用 nmcli 命令
1.2.1.1.2.1 使用 nmcli 命令配置一个 DNS 服务器的 IP 地址

# nmcli connection modify <network card name> ipv4.dns <IP address of DNS server>

(补充:不将 /etc/NetworkManager/NetworkManager.conf 里的 [main] dns=none 参数修改为 none 的话,此参数会覆盖 /etc/resolv.conf 里的设置)


注意:
1) 此方法只对 CentOS8&RHEL8 适用
2) /etc/hosts 里记录的 DNS 优先级要比使用 nmcli 命令的高

1.2.1.1.2.2 使用 nmcli 命令配置多个 DNS 服务器的 IP 地址

# nmcli connection modify <network card name> ipv4.dns "<first IP address of DNS server>,<second IP address of DNS server>,<third IP address of DNS server>......"

(补充:不将 /etc/NetworkManager/NetworkManager.conf 里的 [main] dns=none 参数修改为 none 的话,此参数会覆盖 /etc/resolv.conf 里的设置)


注意:
1) 此方法只对 CentOS8&RHEL8 适用
2) /etc/hosts 里记录的 DNS 优先级要比使用 nmcli 命令的高

1.2.1.2 使用远程的 DNS 服务器解析域名的案例
1.2.1.2.1 直接修改 /etc/resolv.conf 文件

# vim /etc/resolv.conf

添加以下内容:

......
nameserver 8.8.8.8

(补充:这里以使用 8.8.8.8 DNS 服务器为例)

(注意:/etc/hosts 里记录的 DNS 优先级要比 /etc/resolv.conf 里的高)

1.2.1.2.2 使用 nmcli 命令

# nmcli connection modify eth0 ipv4.dns 8.8.8.8


补充:
1) 这里以给 eth0 网卡添加 8.8.8.8 DNS 服务器为例
2) 不将 /etc/NetworkManager/NetworkManager.conf 里的 [main] dns=none 参数修改为 none 的话,此参数会覆盖 /etc/resolv.conf 里的设置

(注意:/etc/hosts 里记录的 DNS 优先级要比使用 nmcli 命令的高)

1.2.2 显示正在使用远程的 DNS 服务器解析的域名

# nmcli connection show | grep -i ipv4.dns

内容二:检查 DNS 域名解析
2.1 使用 ping 命令解析域名
2.1.1 使用 ping 命令解析域名的格式

# ping <domain name>

2.1.2 使用 ping 命令解析域名的案例

# ping eternalcenter.com
PING eternalcenter.com (192.154.240.64) 56(84) bytes of data.
64 bytes from v144-48-142.ap-east.sugarhosts.net (192.154.240.64): icmp_seq=1 ttl=50 time=144 ms
64 bytes from v144-48-142.ap-east.sugarhosts.net (192.154.240.64): icmp_seq=3 ttl=50 time=70.8 ms
64 bytes from v144-48-142.ap-east.sugarhosts.net (192.154.240.64): icmp_seq=4 ttl=50 time=81.3 ms
64 bytes from v144-48-142.ap-east.sugarhosts.net (192.154.240.64): icmp_seq=5 ttl=50 time=103 ms
......

2.2 使用 host 命令解析域名
2.2.1 使用 host 命令解析域名的格式

# host <domain name>

2.2.2 使用 host 命令解析域名的案例

# host eternalcenter.com
eternalcenter.com has address 192.154.240.64

(补充:这里以解析 etenalcenter.com 域名为例)

2.3 使用 nslookup 命令解析域名
2.3.1 使用 nslookup 命令解析域名的格式

# nslookup <domain name>

2.3.2 使用 nslookup 命令解析域名的案例

# nslookup eternalcenter.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	eternalcenter.com
Address: 192.154.240.64

(补充:这里以解析 etenalcenter.com 域名为例)

[工具] Shell 批量检测域名的 DNS 解析是否正确

介绍:

作者:朱明宇
名称:批量检测域名的 DNS 解析是否正确
作用:批量检测域名的 DNS 解析是否正确

使用方法:
1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本

脚本分割线里的变量:
1. main_domain=eternalcenter.com #此处填写网站的“主域名”,网站一般会有几个域名,其中“主域名”直接指向 ip 地址,其他的域名都指向主域名
2. ip=192.154.240.64 #域名指向的 ip 地址
3. nginx=1.16.0 #web 程序的对应版本的版本
4. content1=”eteranlcenter” # 随即填写一个具有代表性的网站首页的内容
5. content2=”Mingyu” # 随即填写一个具有代表性的网站首页的内容,但是要和前面的 content1 在同一行
6. domain=”eternalcenter.com eternalcentre.com zhumingyu.com mingyuzhu.com eternalcenter.org eternalcentre.org” #需要检测的域名

脚本:

#!/bin/bash

####################### Separator ########################

main_domain=eternalcenter.com
ip=144.48.142.148
nginx=1.16.0
content1="eternalcenter"
content2="Mingyu"
domain="eternalcenter.com eternalcentre.com zhumingyu.com mingyuzhu.com eternalcenter.org eternalcentre.org"

####################### Separator ########################

check_domain_name(){
if [ $1 == $main_domain ];then
	
	ping -c4 -i0.4 $1 | grep $ip &> /dev/null
	if [ $? -ne 0 ];then
		echo -e "\033[31m $1 is error !!!!! ip is error !!!!! \033[0m"
	else
		curl $1 | grep $nginx &> /dev/null
		if [ $? -ne 0 ];then
			echo -e "\033[31m $1 is error !!!!! software is error !!!!! \033[0m"
		else	
			elinks $1 | grep "$content1" | grep "$content2" &> /dev/null
			if [ $? -ne 0 ];then
				echo -e "\033[31m $1 is error !!!!! web is error !!!!! \033[0m"
			else
				echo -e "\033[32m $1 is ok \033[0m"
			fi
		fi
		
	fi
else
	elinks $1 | grep "$content1" | grep "$content2" &> /dev/null
	if [ $? -ne 0 ];then
		echo -e "\033[31m $1 is error !!!!! web is error !!!!! \033[0m"
	else
		echo -e "\033[32m $1 is ok \033[0m"
	fi


fi
}

for i in $domain
do
	check_domain_name $i
done