阿里云是用什么技术拦截未备案的域名的?

本来我一直以为是域名备案的问题,看了轮子哥@vczh的回答之后我试了一下把一个没有备案的域名(moe)解析到一个已经绑定过备案域名的阿里云,刷新几次都没有拦,所以我认为轮子哥说的实际上需要备案的是服务器没有错。另外补充一点是已备案域名指向未备案主机也是可以的,只要有一个二级域名备案过其他二级域名理论上在国内都是可以用的。(基友的域名就是挂了一个http://beian.xxx.com指向阿里云,主站并没有放在阿里云上)所以不如说服务器和域名备案是逻辑上的或关系,两个里只要有一个备案过就可以用。阿里云有防火墙也就是所谓的云盾一类的东西,入站的请求阿里会先过滤一遍,你说他知不知道你的域名有没有备案呢?不过其实阿里云的话用https就不会拦截,我备案没下来前试过,虽然现在web server都有SNI但是阿里云似乎没有检测 备案的原理不是轮子哥说的(服务器地址,IP地址,域名)这个 tuple ,而是 (域名,主机地址,联系人)这个 tuple 。联系人是为了出问题的时候能通知你去删帖子的,主机地址是为了万一你没删帖子的时候去拔网线的,所以会精确到机柜上的位置(当然也就精确到了某个网线插口)。然而阿里云说,服务器在我手上,域名也在我手上,域名解析我也有,管局你帮我个忙,简化一下流程吧,反正出问题了保证拔线。那么这样一来通过阿里云的备案就不需要精确到哪个可用区的哪个主机去了,当然阿里自己也懒得检查你备案时候用的那个服务号是不是实际用的那个(反正都在阿里云我怕啥)。这样就能解释为什么【在阿里云内部换主机不用重新备案】以及【在别的地方备案之后阿里云不让用】的现象了。另外这个拦截机制跟阿里云的代备案系统不通,因此即使在备案过程中也不会放行的。这就出现了一个矛盾:管局要求网站能正常访问才能进行备案(我就被卡过)。为了这个矛盾他们还专门对管局的 IP 段(我猜的)做了个白名单,并且如果投诉的话通过工单可以手动放行。【如何拦截】是通过类似于云盾之类的一套服务进行的,请求会发到服务器来(我打过日志),但是返回值不会返回给浏览器。跟具体的操作系统没关系,基于 HTTP 的请求都会受到影响。【既然拦截了为什么不直接写进去】估计是做拦截的地方对性能要求很高,不便于处理那么长的内容吧。用个中间页跳转一下也方便改提示信息。如果玩 302 跳转并没有什么意义。所以如果是手动建立 TCP 连接然后再处理 HTTP 的话,只要 HTTP 头里面 Host 填了个备案过的域名应该也可以吧?(当然服务器端要对这个伪装的 Host 做处理,并且这一招对浏览器并没有什么价值)


本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.xiaosb.com/beian/11491/