httpdns技术有什么用

article/2025/10/25 13:00:09

dns解析现状问题1:暴利的dns劫持#

要说为啥会出现httpdns(先不用管意思,后面解释),那么,首先要说一下,现在的dns解析,是不是有啥问题?

dns能有啥问题呢,就是输入一个域名xxx.com,dns服务器递归获取xxx.com背后的ip,看起来,人畜无害的技术。

但是,如果我就是负责维护某运营商的dns服务器的技术人员,手里很缺钱,我可能会想,是不是可以“科技向善”,搞点钱来画画?

比如,假设xxx.com网站很火,每天很多人访问,那我可以这样,xxx.com进行dns查询,本来应该返回的ip是1.1.1.1,我呢,我给返回另一个我手里的服务器的ip(2.2.2.2),那么,用户后续再访问xxx.com,就是访问我手里的2.2.2.2了。我的2.2.2.2服务器,做个反向代理,把用户请求转发到1.1.1.1,再把1.1.1.1的响应转回给用户,用户也不知道它的流量已经被劫持了,全得从我的2.2.2.2上过一道手,看起来还神不知鬼不觉。

我这时候想赚钱的话,完全可以去找广告商谈合作了,谁给钱多,我就:转发1.1.1.1的响应给用户时,加点广告,用户只要打开xxx.com,就会被强制弹广告,我呢,等着广告商给我送钱即可。

以上就是最简单的dns劫持的例子,大家看了后也不要觉得好像我可以,首先,你得进到运营商公司,掌握相关服务器;其次,现在好多流量都是https域名了,https防中间人篡改的功能还是很强的,所以,基本还是说,你劫持归劫持,你劫持了也不能改我流量,那你也很难加广告,所以还是可以防这种弹广告的。

我在百度搜了下dns劫持,发现这个行业还是真的很刑很赚钱,适合各位喜提毕业礼包的程序员们再就业(震惊!全国首起涉通信运营商“内鬼”DNS劫持案告破!5年收益超5000万!|通信运营商|dns|运营商)

dns解析现状问题2:调度不准#

前面有篇文章,讲gslb的,提到过如下事情:

依赖运营商帮我们做dns解析,不一定很靠谱,比如我们把xxx.com要解析到我们在深圳和北京的两个机房,一般来说,是期望可以根据用户所在的地区来返回就近的地址,如广东用户就返回xxx.com在深圳机房的地址,北京用户就给北京机房的地址。或者是dns运营商那边,也支持按用户的运营商路线来解析,

但是呢,总归来说,这个解析是掌握在别人手里,他要是靠谱,那就没问题;他那边要是解析不靠谱,那就问题较大,比如广东用户给你个北京机房地址,你说用户是不是得卡死在你的网站上,体验就完全不行。

httpdns的定义#

定义#

dns劫持,发生在dns解析过程中,一般来说走的是udp协议;dns解析,无非就是要拿到xxx.com背后的ip,那我是不是可以自己开发一个服务,对外提供http接口,接口的功能就是:接收一个参数,即待查询的域名,如xxx.com;返回呢,就是xxx.com对应的ip或者ip列表或者ip列表再加点各个ip的负载情况(如有这个数据)。

api请求参数#

按理说我们是要自己去开发这么一个http服务的,但是,现在的各大云厂商也做了这个功能,我就直接贴点他们的资料:

比如上面这个云厂商,对外提供的接口,就是http://203.107.1.33/xx/d,其中,203.107.1.33是一个公网ip,是这个httpdns服务的对外ip,参数呢,主要就是两个:host和ip,host就是你要查的域名,ip是客户端的ip(如有,如果自身取不到自己的对外出口ip,服务也会默认取socket中的client ip,即客户端ip),所以,这个接口就模拟了dns服务器的dns查询功能。

这边也有两个请求示例:

  • 示例1(默认来源IP):http://203.107.1.33/100000/d?host=www.xxx.com
  • 示例2(指定来源IP):http://203.107.1.33/100000/d?host=www.xxx.com&ip=42.120.74.196

api响应参数#

在该云厂商的网站上,也介绍了响应体的格式:

 

Copy

{ "host":"www.xxx.com", "ips":[ "140.205.140.234" ], "ipsv6":[ "2400:3200:1300:0:0:0:0:3e" ], "ttl":57, "origin_ttl":120 }

可以看到,ips也是支持返回多个的。假设是我们自己实现这个api呢,也和上面这个api差不多,ips这边,可能可以多点想法,比如把每个ip的当前状态也返回给客户端,客户端就可以按照一些策略来,比如选一个负载最低的;

我看云厂商这边呢,都是只返回ip,毕竟它不可能知道我们每个ip的更多信息;云厂商的做法,大概就是:

  1. 根据你的参数中的要查的域名,xxx.com,去dns系统查询背后的真实ip地址,如查到1.1.1.1(深圳)、2.2.2.2(北京)
  2. 根据客户端的ip(请求参数中的ip,如没传就从socket里取对端ip)来判断该返回xxx.com在北京的ip,还是深圳的ip;另外,我看到云厂商也支持你自己写一段代码,让你自定义策略。

答疑解惑#

重大缺陷#

只适合有客户端的场景,可以看到,这个方案是需要先去查询httpdns服务,才能拿到真实的ip;这就需要在客户端(安卓、ios、pc端均可)编码实现。

B/S这种场景是没办法了,浏览器不支持先去httpdns查真实ip,再发起访问。

为啥httpdns服务对外直接暴露ip#

因为httpdns就是要解决dns劫持问题,总不能自己再套一层dns吧;另外,这个ip是有要求的,需要全国各地的用户访问这个ip都要足够快,所以,这个ip所在服务器一般是要放在BGP机房,BGP机房简单理解就是各大主流运营商,如移动、电信、铁通、网通等等,都和这个机房直连,因此,各大运营商的用户访问这个机房的服务器都很快。

具体我也不是很懂,可以这么理解,市面上很多IDC公司提供数据中心租用、服务器托管等服务,它手里的机房呢,也是有差异的,有的可能主要接了电信运营商,适合南方用户访问,北方用户访问就很慢;有的就是适合北方用户访问;还有一些呢,就是同时接入了很多家运营商,各大运营商访问这个机房都比较快,即所谓BGP机房。

httpdns服务如何保证高可用#

httpdns服务,像前面我们看的那个云厂商,只有一个ip?其实不是的,是在该云厂商的很多机房有部署,有多个ip的。

考虑到服务IP防攻击之类的安全风险,为保障服务可用性,HTTPDNS同时提供多个服务IP,当某个服务 IP在异常情况下不可用时,可以使用其它服务IP进行重试。上述文档中使用的203.107.1.33是其中一个服务IP。

HTTPDNS提供Android SDK和iOS SDK,两个平台的SDK中已经做了多IP轮转和出错重试的策略,通常情况下,建议开发者直接集成SDK即可,不需要自己手动调用HTTP API接口。

httpdns使用http协议明文传输,不安全?#

那就使用https,云厂商也是支持这么玩的,

HTTPS服务URL:https://203.107.1.33/{account_id}/d

客户端最佳实践#

客户端最好不要依赖这个机制,万一httpdns服务出问题了呢,那我们的app不就完全不能用了吗,此时可以降级为使用传统的dns方案,劫持就劫持吧,其实概率也没那么大(毕竟太刑了);要是传统的dns方案还是有问题,客户端还可以预埋一些ip,到时候就从预埋的ip里选一个去访问,保证高可用。

云厂商提供了sdk的方案,也详细讲解了一些细节问题,比如,通过httpdns拿到了某个ip,为1.1.1.1,此时,就向1.1.1.1发起了https业务请求(假设我们的后端服务器都是使用https),此时就会遇到个问题:https一般是只支持域名访问(因为https服务器会返回证书给客户的,证书都是颁发给某个域名的,没听说颁发给某个ip的),此时用ip去访问https服务器,就会有一点问题。

云厂商毕竟是要赚钱的,这些问题的解决方案,在他们文档里倒是都有写。

我感觉我都成了推销的了,其实我就是讲下这个httpdns而已,广告费都没有,对吧。


http://chatgpt.dhexx.cn/article/8XiYcHEs.shtml

相关文章

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

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

HTTPDNS 快速入门

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

HttpDNS 服务详解

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

HTTPDNS 解析

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

HttpDNS简述

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

关于HTTPDNS,你知道多少?

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

Windows 桌面美化

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

WIN10桌面美化(折腾)

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

WIN10美化桌面

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

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

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

win10主题美化(单)

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

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的使用

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

美化你的Xfce桌面

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

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

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

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

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

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

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

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

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

Win10美化

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

windows 10 主题美化

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