HTTPDNS解析

article/2025/10/25 13:05:20

简介

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. 当一个客户端要访问http://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 请求即可。

文章来源:HTTPDNS解析 - 知乎


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

相关文章

httpdns技术有什么用

dns解析现状问题1&#xff1a;暴利的dns劫持# 要说为啥会出现httpdns&#xff08;先不用管意思&#xff0c;后面解释&#xff09;&#xff0c;那么&#xff0c;首先要说一下&#xff0c;现在的dns解析&#xff0c;是不是有啥问题&#xff1f; dns能有啥问题呢&#xff0c;就是…

什么是HTTPDNS跟随阿里的httpdns demo一步一步了解httpdns

阿里巴巴是这样说的 HTTPDNS使用HTTP协议进行域名解析&#xff0c;代替现有基于UDP的DNS协议&#xff0c;域名解析请求直接发送到阿里云的HTTPDNS服务器&#xff0c;从而绕过运营商的Local DNS&#xff0c;能够避免Local DNS造成的域名劫持问题和调度不精准问题。 分析demo htt…

HTTPDNS 快速入门

作者&#xff1a;林子 对于互联网&#xff0c;域名解析是访问的第一步&#xff0c;而这一步很多时候会导致访问速度慢、失败&#xff0c;甚至无法访问等&#xff0c;那么怎么解决这些问题呢&#xff1f;本文将带你快速入门 HTTPDNS&#xff0c;怎么解决 LocalDNS 异常导致用户访…

HttpDNS 服务详解

http://www.ttlsa.com/web/httpdns-detailed-service/ 摘要 对于互联网&#xff0c;域名是访问的第一跳&#xff0c;而这一跳很多时候会“失足”&#xff0c;导致访问错误内容&#xff0c;失败连接等&#xff0c;让我们在互联网上畅游的爽快瞬间消失&#xff0c;而对于这关键…

HTTPDNS 解析

简介 HTTPDNS使用HTTP协议进行域名解析&#xff0c;代替现有基于UDP的DNS协议&#xff0c;域名解析请求直接发送到阿里云的HTTPDNS服务器&#xff0c;从而绕过运营商的Local DNS&#xff0c;能够避免Local DNS造成的域名劫持问题和调度不精准问题。 HTTPDNS是面向移动开发者推…

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.默认效果功能分区整齐排…