由于对访问速度由需求,于是新买了个域名拿去备案,备案倒是挺快,一周就搞定(阿里在这方面还是不错,因为没有要求邮寄幕布拍照)。
前几天备案下来了,于是开始捣鼓网站,故事由此开始:
出现问题
在VPS运行acme脚本来给域名生成Let’s Encrypt的证书,验证所有权的时候提示错误:Connection reset by peer;
刚开始怀疑是域名指向还没生效,于是ping了一下,确定没问题;然后又直接通过80端口访问域名,也没问题;
于是开始怀疑是否是国际访问出了问题,毕竟LE的服务器在国外,于是使用国外的VPS发送curl请求,果不其然,直接得到 curl: (56) Recv failure: Connection reset by peer 。
顿时菊花一紧,使用tcpdump观察发送过程: tcpdump -s 0 -i eth0 -vvv dst xx.xx.xx.xx 得到如下结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
15:11:49.100229 IP (tos 0x0, ttl 64, id 18448, offset 0, flags [DF], proto TCP (6), length 60) test.58096 > xx.xx.xx.xx.http: Flags [S], cksum 0xeb78 (incorrect -> 0x59e2), seq 3895370367, win 29200, options [mss 1460,sackOK,TS val 3590409426 ecr 0,nop,wscale 7], length 0 15:11:49.134201 IP (tos 0x0, ttl 64, id 18449, offset 0, flags [DF], proto TCP (6), length 52) test.58096 > xx.xx.xx.xx.http: Flags [.], cksum 0xeb70 (incorrect -> 0xfbfc), seq 3895370368, ack 1898888483, win 229, options [nop,nop,TS val 3590409460 ecr 396277690], length 0 15:11:49.134280 IP (tos 0x0, ttl 64, id 18450, offset 0, flags [DF], proto TCP (6), length 129) test.58096 > xx.xx.xx.xx.http: Flags [P.], cksum 0xebbd (incorrect -> 0x6e2e), seq 0:77, ack 1, win 229, options [nop,nop,TS val 3590409460 ecr 396277690], length 77: HTTP, length: 77 GET / HTTP/1.1 User-Agent: curl/7.29.0 Host: test.和谐.com Accept: */* 15:11:49.167966 IP (tos 0x0, ttl 64, id 62390, offset 0, flags [DF], proto TCP (6), length 40) test.58096 > xx.xx.xx.xx.http: Flags [R], cksum 0x5659 (correct), seq 3895370445, win 0, length 0 15:11:49.168073 IP (tos 0x0, ttl 64, id 62391, offset 0, flags [DF], proto TCP (6), length 40) test.58096 > xx.xx.xx.xx.http: Flags [R], cksum 0x5659 (correct), seq 3895370445, win 0, length 0 |
可以看到,P(PUSH)了HTTP请求之后,后面的包都是R(RST),正常情况下后续的包不可能是reset,很明显“有问题”
尝试定位问题
遂发工单去问问咋回事,对方回复让我换个地方解析,确定是域名问题还是主机问题。于是我作出尝试:
- 将其他域名指向该IP地址,国内和国外访问都没有问题;
- 将该域名指向位于腾讯云的IP,国内和国外访问均被重置;
- 将域名指向万网虚拟主机,国内访问正常,国外访问被重置;
- 将该域名指向境外IP地址,国内访问被重置,国外访问正常;
综上所述,这个域名目前处于一种“双层隔离”状态,首先是被隔离到了阿里的体系之中,如果域名没有指向到阿里旗下的任何产品,那么域名在国内无法使用;其次是被国家网络的进出口隔离,里面访问不出去,外面的访问进不来;
阿里那边回复的原话是:“ 使用国内主机吧或者换个域名。 国际出口限制的咱们无法处理。 ”
解决方案及疑问
最后我选择的办法是:在DNS解析处对国内外的访问分开指向,然后在两边部署相同的内容。
不过我直到现在都没弄明白,按理说如果是某机构的做法,应该是对域名进行污染,如此直白的进出口一刀切我只在很早之前遇到过;如果是这个域名的前主人做了啥牛逼的事导致这个域名被一刀切,那么现在域名换了新主人,为什么依然要把这个状态延续下去?况且现在域名还是实名备案的状态……不过就目前的状态而言,台面上没有机构是管这个的,申诉也不知道上哪申诉,只能一笑而过了。
最后给大家的建议
买域名之前建议先检查域名状态,看看是否有不良记录,发到QQ上看看有没有被qq标记为危险;如果域名有挂靠页面的话可以试试在国内外分别尝试直接访问看看是否可以访问成功。
至少在备案之前,一定要检查好域名的访问状态,否则你将为这个域名的前主人犯的事买单。
2条评论. Leave new
心疼博主,为域名折腾这么久。我工信部备案花了将近半个月,现在还要求公安备案,我去…
那么问题来了,这个域名到底是什么呢?