HttpDns 替代普通 dns 解析 IP 的方式。 看到 aliyun 的 HttpDns Api 是通过调用固定 ip 返回 domain 的 json 数据(数据返回 api 中 domain 参数的解析地址),通过 http 协议,因此绕过本地运营商,防止劫持。
但是看到网上文章说的是:移动端是获取到该 ip 之后,在原有 URL 基础上,将域名替代为 ip,然后用新的 URL 发起请求。
想请教下,这样是否有个问题:假如我的 web 服务器上 nginx 配置的是 server_name 模式,移动端使用 IP/URL 这样的方式不是会 404 吗,请问有大佬使用这个 API 吗,具体实现方式是咋样的呢?
1
jim9606 2020-09-08 23:32:47 +08:00
nginx 并不知道客户端用何种方式得到服务器的 IP 地址的,可以是 DNS 也可以是 DoH 。
HTTP 请求的 Host 头会包含域名,HTTPS 会包含 SNI 扩展指定域名,nginx 是认这个的。 |
2
xmumiffy 2020-09-09 01:39:22 +08:00 via Android
一般是在 DNS 解析层做的,不会去改 URL
|
3
wjhjd163 2020-09-09 01:50:48 +08:00 via Android
类似于
你请求 HTTP 时候请求了 IP 但 Header 里面手动写入了 Host: xxxx 到了 WEB 服务器手里面还是一样处理 |
4
ochatokori 2020-09-09 02:15:18 +08:00 via Android
server_name 匹配的是 host,你客户端设置 host 就好了
当然了,只有 web 客户端就不行了 |
5
wangritian 2020-09-09 09:24:16 +08:00
url 里面的域名要替换成 httpdns 的结果 ip,然后手动设置 Host 为域名
http 层并没有目标 ip 地址,ip 是封装在 tcp 包里的,所有的代理软件都是查看 http header 的 Host 识别用户访问域名 |
6
594duck 2020-09-09 09:50:39 +08:00
HTTP DNS 简单讲可以认为是类似像 HOSTS 一样的东西
DNSPOD 有这个服务 应用场景是因为国内 DNS 劫持太猛了,特别是像广东地区,重庆地区,东北地区,那叫一个乱。所以只有用这个办法解决被 DNS 劫持的恶果。 普通 浏览器还不支持,一般是在移动端打个 SDK 包。 |
7
Yakir OP @594duck
请问像这种运营商级别的劫持,除了这种通过不走 UDP 协议的方式还有其他解决方法吗? 移动端打包 SDK 的话就是用 IP 替换域名的方式请求服务器吗? 顺便问下,为啥这几个地区劫持会这么乱呢,难道不会被查水表吗? |
8
594duck 2020-09-09 11:02:08 +08:00
@Yakir 是 SDK 在第一次请求的时候通过私有方法先到一台网关上获得你的 IP 和 HOSTS 对应表,之后的请求就直接查这个表,这样你永远不会被污染
至于为什么会这么乱,以前 ISP 劫持浏览器打广告更猛 。 |
9
wangyapu 2020-09-09 16:26:22 +08:00
@jim9606
@wjhjd163 看到阿里云的文档里是这么说的: 「当客户端使用 HTTPDNS 解析域名时,请求 URL 中的 host 会被替换成 HTTPDNS 解析出来的 IP,所以在证书验证的第 2 步,会出现 domain 不匹配的情况,导致 SSL/TLS 握手不成功。」 https://help.aliyun.com/document_detail/30143.html?spm=5176.doc30140.6.562.9duHZH 我的理解是,HTTP 请求报文中只有一个地方来指定服务地址:Host 字段。既然换成 IP 了,怎么还能保留原本的域名呢? |
10
wjhjd163 2020-09-09 17:45:49 +08:00 via Android
@wangyapu URL 中的 Host 和 Header 里面的 Host 也不是一样的
至于 HTTPS 还有个 SNI |
11
wangyapu 2020-09-09 20:37:02 +08:00
@wjhjd163
感谢回复! 但是根据我查阅的资料,HTTP 的报文,首行的 URL 不是只包含 path 吗,host 被放在了 host 字段,比如: http://www.ituring.com.cn/figures/2013/HTTP_The%20Definitive%20Guide/07.d03z.05.png 资料来源:《 HTTP 权威指南》 https://www.ituring.com.cn/book/miniarticle/44596 |