HTTPDNS 解析

article/2025/10/25 12:58:53

简介

HTTPDNS使用HTTP协议进行域名解析,代替现有基于UDP的DNS协议,域名解析请求直接发送到阿里云的HTTPDNS服务器,从而绕过运营商的Local DNS,能够避免Local DNS造成的域名劫持问题和调度不精准问题。
HTTPDNS是面向移动开发者推出的一款域名解析产品,具有域名防劫持、精准调度等特性。开通HTTPDNS服务后,您就可以在管理控制台添加要解析的域名,调用服务API进行域名解析。HTTPDNS是一款递归DNS服务,与权威DNS不同,HTTPDNS并不具备决定解析结果的能力,而是主要负责解析过程的实现。

众所周知,发送HTTP请求后,会通过DNS解析,找到服务器后再响应请求。不过,传统的DNS系统存在很多问题,最常见的就是DNS劫持、平均访问延迟较高、用户连接失败率较高这三个问题。其中最重要的是DNS劫持,因为DNS解析是交给运营商来做的,所以解析结果被运营商劫持插入广告,解析结果不按 TTL 缓存,解析被错误递归(跨地区甚至跨运营商)等问题导致我们不得不去寻找一种可以绕开运营商的办法来做【域名->IP】的映射方式,那就是HttpDNS。

HttpDNS是通过ip直接请求http获取服务器A记录地址,不存在向本地运营商询问domain解析过程,所以从根本避免了劫持问题。同时由于是ip直接访问省掉了一次domain解析过程,可以在一定程度上降低平均访问延迟。HttpDNS和LocalDNS最大的区别在与:前者使用HTTP协议进行域名解析;后者协议运行在UDP协议之上,使用端口号53。

DNS

什么是DNS

网络通讯大部分是基于TCP/IP协议的,而TCP/IP是基于IP寻址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”之类的IP地址,而不能认识域名,而其中的转换工作就需要借助DNS域名解析服务。简单来说,DNS就是提供将主机名和域名转换为IP地址的工作,工作原理如下图。
在这里插入图片描述

DNS工作流程

事实上,DNS是一个应用层协议,他为其他应用层协议提供解析工作,包括不限于HTTP和SMTP以及FTP,用于将用户提供的主机名解析为ip地址。具体的工作过程如下:
①用户主机上运行着DNS的客户端,就是我们的PC机或者手机客户端运行着DNS客户端了;
②浏览器将接收到的url中抽取出域名字段,就是访问的主机名,比如http://www.baidu.com/, 并将这个主机名传送给DNS应用的客户端;
③DNS客户机端向DNS服务器端发送一份查询报文,报文中包含着要访问的主机名字段(中间包括一些列缓存查询以及分布式DNS集群的工作);
④该DNS客户机最终会收到一份回答报文,其中包含有该主机名对应的IP地址;
⑤一旦该浏览器收到来自DNS的IP地址,就可以向该IP地址定位的HTTP服务器发起TCP连接。

DNS体系架构

可以发现,当应用程序发送网络请求时,会调用DNS的客户机端,并指明需要被转换的主机名。当用户主机的DNS客户端接收到请求后,会向网络中发送一个DNS查询报文。所有DNS请求和回答报文使用的UDP数据报经过端口53发送,经过若干ms到若干s的延时后,用户主机上的DNS客户端接收到一个提供所希望映射的DNS回答报文。因此,从用户主机上调用应用程序的角度看,DNS是一个提供简单、直接的转换服务的黑盒子。但事实上,实现这个服务的黑盒子非常复杂,它由分布于全球的大量DNS服务器以及定义了DNS服务器与查询主机通信方式的应用层协议组成。并且,全球的根域名服务器只有13个,为什么是13个,而不是更多,请看为何根域名服务器只有13个?。

DNS的一种简单的设计模式就是在因特网上只使用一个DNS服务器,该服务器包含所有的映射,在这种集中式的设计中,客户机直接将所有查询请求发往单一的DNS服务器,同时该DNS服务器直接对所有查询客户机做出响应,尽管这种设计方式非常诱人,但他不适用当前的互联网,因为当今的因特网有着数量巨大并且在持续增长的主机,这种集中式设计会有单点故障(嗝屁一个,全球着急),通信容量(上亿台主机发送的查询DNS报文请求,包括但不限于所有的HTTP请求,电子邮件报文服务器,TCP长连接服务),远距离的时间延迟(澳大利亚到纽约的举例),维护开销大(因为所有的主机名-ip映射都要在一个服务站点更新)等问题。

DNS服务器一般分三种,根DNS服务器,顶级DNS服务器,权威DNS服务器,架构图如下。
在这里插入图片描述

  • 根DNS服务器:返回顶级域DNS服务器的IP地址
  • 顶级域DNS服务器:返回权威DNS服务器的IP地址
  • 权威DNS服务器:返回相应主机的IP地址

假设全国有多个数据中心,托管在多个运营商,每个数据中心三个可用区。对象存储通过跨可用区部署,实现高可用性。在每个数据中心中,都至少部署两个内部负载均衡器,内部负载均衡器后面对接多个对象存储的前置服务器。
在这里插入图片描述
在上面的DNS架构体系中,其工作的流程大体如下:

  1. 当一个客户端要访问object.yourcompany.com时,需要将域名转为ip,所以请求本地DNS解析器。
  2. 本地DNS解析器查看是否有本地缓存这个记录,如果有则直接使用
  3. 如果没有,请求本地的DNS服务器。
  4. 本地的DNS服务器一般部署在你的数据中心或所在运营商的网络中,本地DNS服务器需要查看本地是否有缓存,如果有则返回。
  5. 若无,本地DNS需要递归的从根DNS服务器,查到顶级域名服务器,最终查到权威DNS服务器,返回给本地DNS服务器。

DNS缺点

不过,正如文章开头说的,传统的DNS存在很多缺点:
域名缓存问题:本地做一个缓存,直接返回缓存数据。可能会导致全局负载均衡失败,因为上次进行的缓存,不一定是这次离客户最近的地方,可能会绕远路。
域名转发问题:如果是A运营商将解析的请求转发给B运营商,B去权威DNS服务器查询的话,权威服务器会认为你是B运营商的,就返回了B运营商的网站地址,结果每次都会夸运营商。
出口NAT问题:做了网络地址转化后,权威的DNS服务器,没法通过地址来判断客户到底是哪个运营商,极有可能误判运营商,导致跨运营商访问。
域名更新问题:本地DNS服务器是由不同地区,不同运营商独立部署的,对域名解析缓存的处理上,有区别,有的会偷懒忽略解析结果TTL的时间限制,导致服务器没有更新新的ip而是指向旧的ip。
解析延迟:DNS的查询过程需要递归遍历多个DNS服务器,才能获得最终结果。可能会带来一定的延时。

HTTPDNS

简介

HTTPDNS 利用 HTTP 协议与 DNS 服务器交互,代替了传统的基于 UDP 协议的 DNS 交互,绕开了运营商的 Local DNS,有效防止了域名劫持,提高域名解析效率。另外,由于 DNS 服务器端获取的是真实客户端 IP 而非 Local DNS 的 IP,能够精确定位客户端地理位置、运营商信息,从而有效改进调度精确性。

正是由于传统的DNS存在诸多的缺点,所以现在稍微有点规模的公司都会自己搭建HTTPDNS服务器。HTTPDNS 的原理很简单,将 DNS 这种容易被劫持的协议,转为使用 HTTP 协议请求 Domain <-> IP 映射。 获得正确 IP 之后,Client 自己组装 HTTP 协议,从而避免 ISP 篡改数据。它的架构图也比较简单,如下图所示。
在这里插入图片描述

解决的问题

使用HttpDns,可以有效解决传统DNS的DNS劫持、访问时间延迟等问题。

  • Local DNS 劫持:由于 HttpDns 是通过 IP 直接请求 HTTP 获取服务器 A 记录地址,不存在向本地运营商询问 domain 解析过程,所以从根本避免了劫持问题。
  • 平均访问延迟下降:由于是 IP 直接访问省掉了一次 domain 解析过程,通过智能算法排序后找到最快节点进行访问。
  • 用户连接失败率下降:通过算法降低以往失败率过高的服务器排序,通过时间近期访问过的数据提高服务器排序,通过历史访问成功记录提高服务器排序。

HTTPDNS改造

关于HTTPDNS改造的文章和方案也很多,如下:
【鹅厂网事】全局精确流量调度新思路-HttpDNS服务详解
沪江从DNS到httpdns的演进

除了自己搭建外,也可以直接使用第三方服务,国内有一部分厂商已经提供了这种解析服务,如阿里云HttpDNS。
阿里云的 HttpDNS 服务的 API 比较标准,直接发一个 Get 请求,带上请求参数,返回结果以 json 返回,如下所示。

http://203.107.1.1/d?host=www.linkedkeeper.com

请求成功时,返回结果如下所示。

{"host": "www.linkedkeeper.com","ips": ["115.238.23.241","115.238.23.251"],"ttl": 57
}

在移动端,将由 HttpDns 获得的 IP 地址在原有 URL 的基础上,将域名替换为 IP,然后用新的 URL 发起 HTTP 请求即可。


http://chatgpt.dhexx.cn/article/kpT2Ebka.shtml

相关文章

HttpDNS简述

顾名思义&#xff0c;httpdns就是基于http协议进行域名解析的基础服务。可以用来代替传统的基于tcp/udp协议的dns服务。 HttpDNS解决的问题 HttpDNS 目的在于解决移动互联网中传统DNS 解析超时&#xff08;异常&#xff09;、域名劫持等问题&#xff1a; 传统DNS的现状&#x…

关于HTTPDNS,你知道多少?

导读&#xff1a; 全网域名劫持率高&#xff0c;域名解析失败、解析超时&#xff0c;IP调度不精准&#xff0c;域名解析变更生效不实时&#xff0c;这些问题是否一直困扰着你&#xff1f;作为网络请求最前置的环节&#xff0c;域名解析的稳定与精准程度直接决定了APP的访问体验…

Windows 桌面美化

大家都是程序员&#xff0c;我平时上班用mac&#xff0c;mac没啥想调整的&#xff0c;自己用的win想搞美化一点&#xff0c;就网上搜了不少东西。 这是我现在的桌面&#xff0c;桌面软件用的是wallpaper&#xff0c;stream18元有售。内部还有福利。。。。 我只保留了垃圾桶&…

WIN10桌面美化(折腾)

WIN10桌面美化(折腾) 先上我现在桌面的截图:我觉得mac dock挺好看的,所以我把任务栏改成Macdock 修改 :任务栏 修改工具 :MyDock (点击下载) 修改方法 : 先把win任务栏隐藏起来 下载解压

WIN10美化桌面

说到美化桌面这方面&#xff0c;每一个人都有自己的想法。没有最好&#xff0c;只有最适合。由于自己有强迫症这一点&#xff0c;所以我的方案是适合强迫症的。废话不多说&#xff0c;先上桌面截图吧&#xff1a; 下面说下步骤&#xff1a; 由于有强迫症&#xff0c;所以桌面一…

win10电脑桌面html,手把手教你美化win10电脑桌面的小技巧

电脑开机之后首先映入眼帘的是桌面&#xff0c;如果桌面背景不美观&#xff0c;会影响一整天的工作心情。美化Win10系统桌面大家只停留上更换桌面壁纸&#xff0c;改改图标又或者是字体&#xff0c;没什么个性。追求个性化的用户想要打造不一般的桌面&#xff0c;比如主题&…

win10主题美化(单)

网站&#xff1a;https://zhutix.com/tag/win10-zhuti/ Win10美化教程 以下内容新手必看必做&#xff0c;否则请做好重装系统的准备&#xff0c;一切后果自负 01、增加系统登录密码️ 并 关闭系统自动更新&#xff0c;可预防95%因美化引起的闪屏&#xff0c;万一闪屏可以在登录…

171029 windows10 桌面美化

最终效果 视频 https://www.youtube.com/watch?v6-5mromnf3c 壁纸 http://qph.ec.quoracdn.net/main-qimg-2cde0a53288265fd5dbe4285d60c3afc RocketDock https://rocketdock.com/download Win10-Theme https://limera1n.deviantart.com/art/Win10-Theme-for-RocketD…

WIn10桌面美化(一)Rainmeter的使用

随着时代的进步&#xff0c;人们使用电脑的频率越来越高&#xff0c;死板的桌面已经无法满足我们的需求&#xff0c;下面我就简单介绍美化桌面的方法。 这里我使用的是一款名为 Rainmeter 的软件 &#xff0c;Rainmeter原本是一个系统状态监视软件&#xff0c;由于其强大的可定…

美化你的Xfce桌面

Xfce的鼎鼎大名你是不是早有耳闻了&#xff1f;Xfce是一个很好的轻量级桌面环境&#xff0c;占用系统资源少是他的优点&#xff0c;你可能会在一些嵌入式系统中见到他的身影&#xff0c;但他也有一个缺点&#xff0c;那就是默认的界面看起来有点旧。但这是不Xfce的错&#xff0…

Win10桌面美化(桌面数字时钟,悬浮侧边栏、透明任务栏、底部居中软件图标)

生命在于折腾&#xff0c;一个简洁清爽的界面可以让人心情愉悦&#xff0c;整理分享一下我的Win10桌面美化历程&#xff0c;先上效果图&#xff1a; 首先得准备一张好看的壁纸&#xff0c;文中涉及到的图片&#xff0c;软件已经全部打包&#xff0c;下载链接在文末。 1. 桌面数…

Win10值得推荐的软件,提升效率和桌面美观

某乎真强&#xff0c;删后留存 桌面镇楼&#xff0c;最近重装了win10&#xff0c;感觉系统又变得流畅了许多&#xff1f; 因为没有备份&#xff0c;所以软件都重新装了一遍&#xff0c;下面来记录一下Win10下不错的软件吧。 mac的可以查看另一篇文章&#xff1a;MAC值得推荐…

六款顶级桌面美化软件推荐(Windows)

电脑已经渐渐融入我们日常的生活&#xff0c;每天打开电脑娱乐和工作成了多数人生活的一部分。当然&#xff0c;看什么东西时间一长都会产生疲乏和厌倦感&#xff0c;所以不少软件开发者瞄准了系统美化这一块&#xff0c;制作出了很多独具特色的系统美化工具&#xff0c;并且解…

技巧:win10的另一种美化字体的方式,使用noMeiryoUI

目录 1. 前提2. 字体选择3. 查看已经安装的字体并查看效果4. 安装软件修改系统字体5. 修改浏览器字体 1. 前提 21年的时候写了一篇文章&#xff0c;《Windows10下美化字体&#xff0c;达到类似mac的效果》&#xff0c;当时还很迷恋macType这个软件的使用&#xff0c;觉得好牛逼…

Win10美化

我喜欢比较纯净的桌面&#xff0c;也就是桌面上不放任何图标、文件和文件夹&#xff0c;又嫌搜索应用太麻烦&#xff0c;所以启动应用就落在了win10自带的开始屏幕上&#xff0c;但是自带的磁贴着实简陋&#xff0c;因此就踏上了磁贴美化的漫漫长路。 1.默认效果功能分区整齐排…

windows 10 主题美化

摘要&#xff1a;windows10系统采用扁平化设计&#xff0c;但是我们总有审美疲劳&#xff0c;所以我们也想像以前的windows7系统一样可以更改主题&#xff0c;但是windows 10系统安全性比windows 7系统更加高&#xff0c;也导致了windows10的系统更换主题的麻烦&#xff0c;因为…

Windows桌面美化

Windows桌面美化 链接: https://pan.baidu.com/s/1CZ2EzTbfQBRETdVPHufkrw 提取码: pw9p

Win 10 桌面简单美化(+开始菜单 TileGenie)

Win 10 桌面简单美化&#xff08;开始菜单 TileGenie&#xff09; 任务栏仿Dock任务栏透明化隐藏输入法图标其他 桌面图标开始菜单动态磁贴图片磁贴 个人喜欢优美的壁纸&#xff0c;干净的桌面&#xff0c;所以进行了win10桌面的简单美化&#xff0c;教程如下。 重装了一次操作…

桌面美化 | win10高仿mac桌面

前言&#xff1a;编程之余&#xff0c;程序员最喜欢的就是装饰自己的桌面了&#xff0c;今天给大家带来一个win10高仿mac桌面的教程&#xff0c;外加传送门。师傅领进门&#xff0c;修行在个人&#xff0c;还需要各位自己多去探索了&#xff01; &#xff08;先上DJ先上DJ&…

Windows10桌面美化推荐之Dock栏

给大家推荐一款Windows10的桌面美化软件 ▍BitDock 一款国产桌面工具栏&#xff0c;颜值高&#xff0c;动画流畅&#xff0c;占用小&#xff0c;并且有许多实用功能。 喜欢苹果桌面的可以试试&#xff0c;用了之后桌面确实好看且简洁多了 BitDock支持鼠标拖曳方式来自定义添…