2020公共DNS

国内

同一个 DNS 服务器在不同国家不同地区的表现并不完全相同,解析速度、响应时间等都有所区别,所以建议大家多多对比。

★ DNSPod Public DNS+

Public DNS+ 是属于 腾讯云旗下的公共 DNS 服务。拥有 80 多条国内线路和 4 条海外线路,有 BGP Anycast 技术,也是国内首家支持谷歌 ECS (edns-client-subnet) 协议的公共 DNS 解析服务。它只使用一个 IP,但有三地集群容灾和秒级自动故障切换,在国内大多数地方的测速数据都非常好,值得推荐。

IPv4 地址
首选:119.29.29.29

★ AliDNS 阿里公共 DNS 解析服务

阿里公共 DNS 是 阿里云 推出的免费 DNS 递归解析系统,宣称全球数百台服务器组成的集群,拥有充足的带宽资源,目标是成为国内互联网基础设施的组成部分,支持 BGP Anycast 以及 ECS 技术。

IPv4 地址
首选:223.5.5.5
备用:223.6.6.6

★ 114 DNS

114 DNS 在国内的用户量相当巨大,其 DNS 解析成功率高,与 ISP 的 DNS 相比,能访问更多的国内外网站;号称纯净、无劫持、无需再忍受被强插广告或粗俗网站之痛苦;114DNS 做得比较早,有一定的技术积累,稳定性不错,尽管速度比前两者差一点点,但也都能让人满意。它还有一个特色,就是根据不同用途可以选择不同的 DNS 组。推荐,笔者正在是使用。

常规公共 DNS (干净无劫持)
首选:114.114.114.114
备选:114.114.115.115
拦截钓鱼病毒木马网站 (保护上网安全)
首选:114.114.114.119
备用:114.114.115.119
拦截色情网站 (保护儿童)
首选:114.114.114.110
备用:114.114.115.110

★ 百度 BaiduDNS

百度 DNS 公共解析服务,支持 ipv4 和 ipv6。作为中国最大的搜索引擎,百度拥有一流的基础设施和强大技术实力,国内速度相当快!该服务快速稳定无劫持,智能拦截恶意网站,支持 BGP Anycast 和 ECS 技术。

IPv4 地址:180.76.76.76
IPv6 地址:2400:da00::6666

360 DNS 派 (DNSpai Public DNS)

DNS 派是由 360 出品的免费公众 DNS 解析服务。它可以让网上冲浪更加稳定、快速、安全;为家庭拦截钓鱼网站,过滤非法网站,建立一个绿色健康的网上环境;为域名拼写自动纠错等。

首选(电信 / 移动 / 铁通):101.226.4.6
备选(电信 / 移动 / 铁通):218.30.118.6
首选(联通):123.125.81.6
备选(联通):140.207.198.6

CNNIC sDNS

sDNS (SecureDNS,简称 sDNS) 是由中国互联网络信息中心 CNNIC 与国内外电信运营商合作推出的免费公共云解析服务,旨在为用户提供高速、安全、智能的上网接入解析服务。sDNS 递归云解析服务采用 IP Anycast+BGP 技术跨区域、跨运营商的分布式异构部署,比运营商提供的 DNS 更快更稳定。

IPv4 地址
首选:1.2.4.8
备用:210.2.4.8

OneDNS

OneDNS 是一个安全、快速、免费的小众 DNS 服务。它能屏蔽恶意网站、摆脱无良 ISP 的 DNS 污染与劫持。同时横跨南北的高速线路加速您的网络连接。

IPv4 地址
首选:117.50.11.11
备用:117.50.22.22

国外

顾名思义,国外的 DNS 当然是适合海外用户使用咯。而对于国内用户来说,尽管这些 DNS 服务器在国内访问速度不算快,但作用也不少,比如买了国外的 VPS 来搭建番 · 羽 · 土 · 啬相关的应用时,可以配置它使用国外的 DNS 等等。

★ Google Public DNS (8.8.8.8)

来自 Google 提供的免费全球公共 DNS 服务,主要为了改进网络浏览速度、改善网络用户的浏览体验。这个基本上不用多做什么介绍了,可能它也是目前全球范围内使用量最大的公共 DNS 了,老牌、稳定、技术强劲。

IPv4 地址
首选:8.8.8.8
备用:8.8.4.4
IPv6 地址
首选:2001:4860:4860::8888
备用:2001:4860:4860::8844

★ CloudFlare DNS (1.1.1.1)

CloudFlare DNS 是号称全球最快的 DNS 服务 (当然天朝不算在全球范围内>_<), CloudFlare 是全球最大的 CDN / DDOS 防护服务提供商之一 (在国内与百度云加速合作),其遍布全球的基础设施资源极其丰富,资金和技术实力相当雄厚。在国外实测速度相当强劲,目前我已将海外的 VPS 全部换到此 DNS,解析速度非常快,相当值得推荐!

IPv4 地址
首选:1.1.1.1
备用:1.0.0.1
IPv6 地址:
首选:2606:4700:4700::1111
备用:2606:4700:4700::1001

IBM Quad9 (9.9.9.9)

IBM 、Global Cyber Alliance 和 Packet Clearing House 合作推出的免费 Quad9 公共 DNS 服务 (9.9.9.9),主打安全,它会智能屏蔽恶意网址、僵尸网络、钓鱼攻击和其它恶意主机相关联的域名,而且更注重隐私保护。对安全有需求的朋友可以使用这组 DNS。

IPv4 地址
首选:9.9.9.9
备用:149.112.112.112
IPv6 地址
首选:2620:fe::fe
备用:2620:fe::9

Cisco OpenDNS

OpenDNS 是一个老牌的免费公共 DNS 提供商,后来被 Cisco (思科) 全资收购。

IPv4 地址
首选:208.67.222.222
备用:208.67.220.220
IPv6 地址
首选:2620:0:ccc::2
备用:2620:0:ccd::2

Hurricane Electric Public DNS (HE)

IPv4 地址
首选:74.82.42.42
备用:66.220.18.42
IPv6 地址
首选:2001:470:20::2
备用:2001:470:0:9d::2

科摩多 Comodo SecureDNS

IPv4 地址
首选:8.26.56.26
备用:8.20.247.20

Verisign Public DNS

IPv4 地址
首选:64.6.64.6
备用:64.6.65.6
IPv6 地址
首选:2620:74:1b::1:1
备用:2620:74:1c::2:2

Neustar Recursive DNS

IPv4 地址
首选:156.154.70.1
备用:156.154.71.1
IPv6 地址
首选:2610:a1:1018::1
备用:2610:a1:1019::1

ORACLE Dyn Public DNS

IPv4 地址
首选:216.146.36.36
备用:216.146.35.35

Level3 Public DNS

IPv4 地址
首选:209.244.0.3
备用:209.244.0.4

Alternate DNS

IPv4 地址
首选:23.253.163.53
备用:198.101.242.72

香港

香港宽频 / HKBN

IPv4 地址
首选:203.80.96.10

和记环球电讯 DNS

IPv4 地址
首选:202.45.84.58
备用:202.45.84.59

Pacific SuperNet DNS

IPv4 地址
首选:202.14.67.4
备用:202.14.67.14

台湾

中华电信 / HiNet

IPv4 地址
首选:168.95.1.1
备用:168.95.192.1
IPv6 地址
首选:2001:b000:168::1
备用:2001:b000:168::2

数位联合电信 / Seednet

IPv4 地址
首选:139.175.252.16
备用:139.175.55.244

台湾网路资讯 / TWNIC Quad101 Public DNS

IPv4 地址
首选:101.101.101.101
备用:101.102.103.104
IPv6 地址
首选:2001:de4::101
备用:2001:de4::102

韩国

KT olleh

IPv4 地址:
首选:168.126.63.1
备用:168.126.63.2

SK Broadband

首选:210.220.163.82
备用:219.250.36.130

LG U+

首选:164.124.101.2
备用:203.248.252.2
首选:164.124.107.9
备用:203.248.242.2

其他国家

俄罗斯 Yandex Public DNS

IPv4 地址
首选:77.88.8.8
备用:77.88.8.1
IPv6 地址
首选:2a02:6b8::feed:0ff
备用:2a02:6b8:0:1::feed:0ff

俄罗斯 SafeDNS

IPv4 地址
首选:195.46.39.39
备用:195.46.39.40

德国 DNS.WATCH Public DNS

IPv4 地址
首选:84.200.69.80
备用:84.200.70.40
IPv6 地址
首选:2001:1608:10:25::1c04:b12f
备用:2001:1608:10:25::9249:d69b

瑞士 http://xiala.net Public DNS

IPv4 地址
首选:77.109.148.136
备用:77.109.148.137
IPv6 地址
首选:2001:1620:2078:136::
备用:2001:1620:2078:137::

丹麦 UncensoredDNS

IPv4 地址
首选:91.239.100.100
备用:89.233.43.71
IPv6 地址
首选:2001:67c:28a4::
备用:2a01:3a0:53:53::

荷兰 Freenom World Public DNS

IPv4 地址
首选:80.80.80.80
备用:80.80.81.81

Dnsmasq

[root@dnsmaster ~]# yum install -y dnsmasq
[root@dnsmaster ~]# systemctl start dnsmasq.service
[root@dnsmaster ~]# systemctl  stop  firewalld --临时关闭防火墙 
[root@dnsmaster ~]# systemctl  disable  firewalld  --永久关闭防火墙
[root@dnsmaster ~]# setenforce 0   --临时关闭
[root@dnsmaster ~]# vim /etc/selinux/config
SELINUX=disabled        --将enforcing改为disabled
[root@dnsmaster ~]# reboot     --重启系统永久生效
[root@dnsmaster ~]# vim /etc/dnsmasq.conf
resolv-file=/etc/resolv.dnsmasq.conf    //dnsmasq 会从这个文件中寻找上游dns服务器
strict-order                               //去掉前面的#
addn-hosts=/etc/dnsmasq.hosts              //在这个目里面添加记录
listen-address=127.0.0.1,192.168.1.123     //监听地址
resolv-file=/etc/resolv.conf
strict-order
listen-address=192.168.153.128
address=/demon.com/192.168.153.128
server=114.114.114.114
bogus-nxdomain=114.114.114.114

对参数的解释
resolve-file     定义dnsmasq从哪里获取上游DNS服务器的地址, 默认是从/etc/resolv.conf获取。
strict-order     表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。
listen-address     定义dnsmasq监听的地址,默认是监控本机的所有网卡上。局域网内主机若要使用dnsmasq服务时,指定本机的IP地址。
address        启用泛域名解析,即自定义解析a记录,如下配置为demon.com这个域名:
*address=/demon.com/127.0.0.1  #访问demon.com时的所有域名都会被解析成127.0.0.1*
bogus-nxdomain     为防止DNS污染,使用参数定义的DNS解析的服务器。注意:如果是阿里云服务器上配置dnsmasq要启用此项。
server       指定dnsmasq程序使用哪个DNS服务器进行解析。对于不同的网站可以使用不同的域名对应解析如下配置
*server=/google.com/8.8.8.8    #表示对于google的服务,使用谷歌的DNS解析。*

实际线上配置
no-resolv
all-servers
server=119.29.29.29
server=223.5.5.5
server=223.6.6.6
server=8.8.8.8
server=8.8.4.4
server=114.114.114.114
no-hosts
addn-hosts=/etc/dns.hosts
dhcp-range=192.168.1.1,192.168.8.255,12h
dhcp-lease-max=2040
cache-size=2040
log-queries
log-facility=/var/log/dnsmasq.log

Ubuntu利用IPSET批量封禁IP

ipset create xxx hash:net 
ipset -N cnip hash:net

ipset create blacklist hash:net maxelem 1000000 #黑名单
ipset create whitelist hash:net maxelem 1000000 #白名单

ipset add blacklist 10.60.10.xx

wget -P . http://www.ipdeny.com/ipblocks/data/countries/cn.zone

for i in $(cat /root/cn.zone ); do ipset -A cnip $i; done

将ipset规则保存到文件
ipset save blacklist -f blacklist.txt
ipset save whitelist -f whitelist.txt

删除ipset
ipset destroy blacklist
ipset destroy whitelist

允许cnip访问端口
-A INPUT -p tcp -m set --match-set cnip src -m tcp --dport 51801:51809 -j ACCEPT

VSFTPD被动模式

防火墙配置
 在iptables-config 最下面增加
 IPTABLES_MODULES="ip_conntrack_ftp"
 IPTABLES_MODULES="ip_nat_ftp"

在iptables内增加:
 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 -A INPUT -p tcp --dport 29151:29171 -j ACCEPT

用户设置:
 useradd -d /home/source/UI -s /sbin/nologin UiFtp
 passwd UiFtp
 chown -R UiFtp:root /home/source/UI
 或
 chown -R 用户名.组 /home/source/App

配置vsftp.conf,末尾加入
 pam_service_name=vsftpd
 userlist_enable=YES
 tcp_wrappers=YES
 listen_port=30941
 pasv_enable=YES
 pasv_min_port=29151
 pasv_max_port=29170

配置chroot_list

判断DNS并自动切换

@echo off
 CLS
 ECHO.
 :init
 setlocal DisableDelayedExpansion
 set "batchPath=%~0"
 for %%k in (%0) do set batchName=%%~nk
 set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
 setlocal EnableDelayedExpansion
 :checkPrivileges
 NET FILE 1>NUL 2>NUL
 if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
 :getPrivileges
 if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
 ECHO.
 ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
 ECHO args = "ELEV " >> "%vbsGetPrivileges%"
 ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
 ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
 ECHO Next >> "%vbsGetPrivileges%"
 ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
 "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
 exit /B
 :gotPrivileges
 setlocal & pushd .
 cd /d %~dp0
 if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
 ::判断本地连接 赋值a
 for /f "tokens=2,3" %%i in ('ipconfig /all^|findstr /r "以太网适配器"') do echo %%i %%j >net-name.txt
 for /f "tokens=1 delims==:" %%d in (net-name.txt) do set a=%%d

::判断当前DNS 赋值c
 for /f "tokens=15" %%i in ('ipconfig /all^|findstr /r "DNS"') do echo %%i >DNS.txt
 for /f "tokens=1 delims==." %%h in (DNS.txt) do set c=%%h

::比较当前DNS
 if "%c%"=="8" (goto ToAliDNS) else ( if "%c%"=="223" ( goto ToGoogleDNS ))

::请根据实际情况更改以下内容
 :ToGoogleDNS
 echo Google DNS
 color 1A
 echo ***
 echo 正在修复,请稍后…….
 echo ***
 netsh interface ip set dns name="%a%" source=static addr=8.8.4.4
 netsh interface ip add dns "%a%" 8.8.8.8
 goto EXIT

:ToAliDNS
 echo ALI DNS
 color 1A
 echo ***
 echo 正在修复,请稍后…….
 echo ***
 netsh interface ip set dns name="%a%" source=static addr=223.5.5.5
 netsh interface ip add dns "%a%" 223.6.6.6
 goto EXIT

:EXIT
 ipconfig /flushdns
 echo *
 ipconfig /flushdns
 echo *
 ipconfig /flushdns
 del net-name.txt
 del DNS.txt
 echo *
 echo 修复已完成,祝您游戏愉快
 echo *
 echo 请按任意键退出
 echo **
 pause
 exit

自动修改DNS

@echo off
 CLS
 ECHO.
 :init
 setlocal DisableDelayedExpansion
 set "batchPath=%~0"
 for %%k in (%0) do set batchName=%%~nk
 set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
 setlocal EnableDelayedExpansion
 :checkPrivileges
 NET FILE 1>NUL 2>NUL
 if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
 :getPrivileges
 if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
 ECHO.
 ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
 ECHO args = "ELEV " >> "%vbsGetPrivileges%"
 ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
 ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
 ECHO Next >> "%vbsGetPrivileges%"
 ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
 "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
 exit /B
 :gotPrivileges
 setlocal & pushd .
 cd /d %~dp0
 if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
 ::判断本地连接 赋值a
 for /f "tokens=2,3" %%i in ('ipconfig /all^|findstr /r "以太网适配器"') do echo %%i %%j >DNS.txt
 for /f "tokens=1 delims==:" %%d in (DNS.txt) do set a=%%d
 ::请根据实际情况更改下面三行
 color 1A
 echo ***
 echo 正在修复,请稍后…….
 echo ***
 netsh interface ip set dns name="%a%" source=static addr=223.5.5.5
 netsh interface ip add dns "%a%" 114.114.115.115
 ipconfig /flushdns
 ipconfig /flushdns
 ipconfig /flushdns
 del DNS.txt
 pushd "C:\Windows\System32\drivers\etc"
 echo.>hosts
 echo *
 echo *修复已完成,祝您游戏愉快 *
 echo *
 echo **
 echo 请按任意键退出
 echo **
 pause
 exit

输入域名自动绑定hosts

@echo off
 CLS
 ECHO.
 :init
 setlocal DisableDelayedExpansion
 set "batchPath=%~0"
 for %%k in (%0) do set batchName=%%~nk
 set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
 setlocal EnableDelayedExpansion
 :checkPrivileges
 NET FILE 1>NUL 2>NUL
 if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
 :getPrivileges
 if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
 ECHO.
 ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
 ECHO args = "ELEV " >> "%vbsGetPrivileges%"
 ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
 ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
 ECHO Next >> "%vbsGetPrivileges%"
 ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
 "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
 exit /B
 :gotPrivileges
 setlocal & pushd .
 cd /d %~dp0
 if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)

 color 1A
 set /p domain=请输入您要修复的域名,并按确定键:

:change
 find /i "%domain%" C:\Windows\System32\drivers\etc\hosts>nul
 if "%errorlevel%"=="0" goto view
 if "%errorlevel%"=="1" goto repair2

:view
 echo 您已修复过此域名,是否重新修复
 echo 重新修复请输入“y”,否则请直接关闭程序
 set /p value=请输入:
 if "%value%"=="y" goto repair1
 if "%value%"=="Y" goto repair1

:repair1
 pushd "C:\Windows\System32\drivers\etc"
 copy hosts hosts.bak>nul
 find /v "%domain%" hosts.new
 move hosts.new hosts>nul
 echo,>>hosts
 echo 119.42.34.47  %domain%>>%Windir%\system32\drivers\etc\hosts
 echo 修复已完成,祝您游戏愉快!
 pause
 exit

:repair2
 pushd "C:\Windows\System32\drivers\etc"
 copy hosts hosts.bak>nul
 echo,>>hosts
 echo 119.42.34.47  %domain%>>%Windir%\system32\drivers\etc\hosts
 echo 修复已完成,祝您游戏愉快!
 pause
 exit

批量自动PING

@echo off
 color 1A
 setlocal enabledelayedexpansion
 echo *
 echo *  正在执行,请勿关闭窗口,请等待……..*
 echo *
 pushd "C:\Users\%username%\Desktop"
 if exist result.txt (del result.txt goto step1)
 :step1
 if exist report.txt (del report.txt goto step2)
 :step2
 if exist report1.txt (del report1.txt goto Ping)
 :Ping
 for /f %%i in (domain.txt) do ping %%i -n 1 >>report.txt
 findstr /i /c:"Ping" report.txt >report1.txt
 for /f "tokens=3,4" %%a in (report1.txt ) do echo %%a %%b>>result.txt
 del report.txt
 del report1.txt
 echo * echo 域名检测完毕,请查看桌面result.txt…….. echo *
 pause
 exit