Cloudflare配置动态dns(ddns)

Cloudflare配置动态dns(ddns),第1张

  最近因为一些事情,不敢再使用国内的dns解析商,故转而使用国外的dns解析商;本来想使用dns.he.net提供的服务,但是对一些免费的域名(tk\ml\cf)不友好,故换为Cloudflare的dns解析,具体地域名申请、域名解析操作这类教程,网上已经有很多,在此不做更多的说明,重点说说关于DDNS的操作。   Cloudflare提供了功能强大的api,根据自身的网络拓扑结构,可以很方便的更新公网IP到dns解析服务上。如果你的公网ip在电脑上(即通过PPPoE拨号上网),ddns的方法就很多了,可以使用Python脚本,使用requests、json这两个库,就可以搞定ddns配置,如果是在路由上,就要使用Linux shell来实现,在此将脚本列出并作以说明   特别地,参数ipl(ip local)是通过本地命令获得的公网ip地址,参数ip则是通过外网来确定的公网ip。公网ip的判断是基于自身网络的情况,如多拨后拥有多个公网ip,做负载均衡的时候的nat配置,则需要通过参数ipl来制定通过哪一个公网IP访问

可以通过腾讯云提供的域名接口来实现。使用php更新腾讯域名的步骤如下:1.注册腾讯云账号并开通域名服务;2.登录腾讯域名管理控制台,获取Appid、secretId、secretKey;3.根据官方API文档,使用PHP编写sdk,对域名进行操作,进行域名的添加、删除、修改等操作;4.根据腾讯云域名的接口文档,定义域名的操作,如增加解析、修改解析、删除解析等;5.将请求参数和腾讯云接口发送请求,等待其返回响应信息,以判断是否成功更新。

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

HTTPDNS代替了传统的LocalDNS完成递归解析的功能,基于HTTP协议的设计可以适用于几乎所有的网络环境,同时保留了鉴权、HTTPS等更高安全性的扩展能力,避免恶意攻击劫持行为。

传统域名解析的调度精准性问题,本质根源在于Local DNS的部署和分配机制上。由于碎片化的管理方式,这些环节的服务质量同样很难得到保障。HTTPDNS在递归解析实现上优化了与权威DNS的交互,通过<a name="https://datatracker.ietf.org/doc/rfc7871">edns-client-subnet</a>协议将终端用户的IP信息直接交付给权威DNS,这样权威DNS就可以忽略Local DNS IP信息,根据终端用户的IP信息进行精准调度,避免Local DNS的坐标干扰

服务端提供API接口,app端直接通过ip地址访问,ip地址可以有多个

请求方式:HTTP GET

URL参数说明:

请求示例:

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

错误码列表如下:

异常下的出错兼容逻辑,主要包括异步请求,重试,降级

异步请求

重试

降级

OkHttp默认使用系统DNS服务InetAddress进行域名解析,但同时也暴露了自定义DNS服务的接口,通过该接口我们可以优雅地使用HttpDns。

OkHttp暴露了一个Dns接口,通过实现该接口,我们可以自定义Dns服务:

创建OkHttpClient对象,传入OkHttpDns对象代替默认Dns服务:

相比于通用方案,OkHttp+HttpDns有以下两个主要优势:

基于NSURLProtocol可拦截iOS系统上基于上层网络库NSURLConnection/NSURLSession发出的网络请求;

通过以下接口注册自定义NSURLProtocol,用于拦截上层网络请求,并创建新的网络请求接管数据发送、接收、重定向等处理逻辑,将结果反馈给原始请求。

自定义NSURLProtocol处理过程概述:


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/756600.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-17
下一篇2023-08-17

发表评论

登录后才能评论

评论列表(0条)

    保存