避开备案租中国大陆的服务器

首先,如果不想备案,最简单的就是租香港的服务器。我这里特指中国大陆。

其次,澄清一个概念:租中国大陆的服务器并非要备案。备案特指的是域名备案。

再次,域名可以指向中国大陆的服务器,只要不建站,也可以不备案。比如,拿它做 SIP server。

那么,建站想用中国大陆的服务器,不备案可以吗?我只想从技术上挑战一下,还成了。是在一定限定条件下的成功,但已具有极强的实操性,所以我有兴致讲一讲。

大陆机房会抓数据包来分析 http(s) 流量是否为某个未备案的域名,是,则拦截并提示去备案。依我所见,无法 100% 抓包来分析(机房路由器算力无法 100% 抓包分析?),所以会有个别几次 http://unicped.domain 访问成功。机房的算法也是相当巧妙,所以也只是偶尔能访问成功,绝大部分次数是不成功的。

有人说,只要改掉 http 默认的 80 端口就可以不备案建站。我已试过,此路不通,不管曾经有没有通过,反正现在不通。未加密的数据包能被分析,https 协议下的数据包是无法被分析的。所以,要避开备案,只能用 https 建站。

好在如今 https 已是主流,http 建站可以不考虑了。需要注意的是,在 tls 1.3 出来前,https 的握手数据包是不加密的,不加密就能被分析,分析后就能阻断握手。

好在如今的主流浏览器和主流 web server 都已支持 tls 1.3,这让不备案建站有了实操性。简单点说,就是用最新版的 web server 建个 https://any.domain。

最后,我想用一点时间讲一讲如何不备案建一个 free SSL certificated https://freepbx.server.domain。

1,FreePBX 安装完成后,用 http://ip.address 是可以管理的。

2,在 System Admin > Hostname 输入域名 freepbx.server.domain,在 > Port Management 修改 Admin port 80 至一个未使用的端口,比如 48561,这样 80 端口就可以留给 LetsEncript 做 http-01 challenge。

3,之后可以用 http://ip.address:48561 来管理。但这样去 Certificate Management 生成 LetsEncript 证书会失败,因为 FreePBX 只会用 http-01 challenge(如果会 dns-01 challenge 就好了)。

4,我的研究表明,用 http://non-fqdn-domain:48561 来管理,就能让 FreePBX 完成 http-01 challenge。这需要在本地解析 non-fqdn-domain。

5,在 System Admin > HTTPS Setup 启用这张证书就可以用 https://freepbx.server.domain 来管理了。

后记:虽然成功了,但我挺纳闷的,用 http://non-fqdn-domain:48561 来管理和用 http://ip.address:48561 来管理,LetsEncript http-01 challenge 所涉及的数据包都是未加密的、无分别的、能被分析的,为什么 http://non-fqdn-domain:48561 一次就挑战成功,而 http://ip.address:48561 屡次失败。

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *