背景
笔者在阿里云买了两个服务器和两个域名,有一个域名之前做了个人博客的icp备案,但是另一个做备案的时候又不给了,于是就得考虑绕过阿里云的icp未备案拦截
尝试
首先需要判断拦截是发生在DNS解析还是服务器前面的防火墙。
已知的情况是:
1.直接使用A解析到vercel(云服务厂商)的ip能够访问vercel上部署的web服务,如下配置

2.通过已备案域名解析到未备案服务器ip可以访问
综上说明拦截发生在阿里云的NameServer:当其检测到A类解析到了一个未备案ip上的时候会触发拦截
解决
更换NameServer(名称服务器)
更换NameServer从阿里云到一个非国内的服务商上可以绕开ICP拦截,笔者这里使用的是vercel的免费解析服务,除此之外Cloudflare也是可以使用的
首先进入阿里云域名管理页面,点击管理

点击修改DNS,修改成DNS服务商提供的Nameserver域名,比如vercel的ns1.vercel-dns.com和ns2.vercel-dns.com

修改完成后可能需要等待DNS生效,最多可能要等两天(摊手);生效后去vercel Domains模块下添加A解析到服务器ip就能够绕开国内ICP备案了
后记
vercel的DNS解析其实锁死了通配解析和默认解析,所以只能通过二级域名解析来访问服务器,每加一个都要手动配置而不能*全部解析然后用nginx反向代理,相对来说还是有点麻烦的;可以的话可以试试cloudflare的DNS解析服务,但是没那么稳定可能需要梯子

后后记
不对,阿里云拦截的原理改了,阿里云的服务器防火墙检测到未备案域名解析过来的请求后才会触发拦截;也就是说换DNS服务商也不行了,来源必须是备案过的域名阿里云才会放行,CNAME也不行
拦截发生在服务器外的防火墙上而不是阿里云的DNS服务
Comments NOTHING