Skip to content

Latest commit

 

History

History
52 lines (30 loc) · 3.28 KB

绕开电信80封锁.md

File metadata and controls

52 lines (30 loc) · 3.28 KB

绕过电信80封锁

1. 获得公网 IP

如果你是使用电信宽带的话,那么你可能有一个公网 IP,如果没有公网 IP 可以找电信客服索要,就说自己家里安装了摄像头,无法通过公网进行访问。

有了公网 IP 之后,你就可以在家里的电脑或者树莓派之类的设备上搭建一些服务供外部访问了。

当然,如果你不是用的电信,那么使用反向代理的的方式来实现这种服务。参见这篇文章:内网穿透策略

2. 动态解析

然而,即使有了公网 IP,也可能无法实现全天候的外网访问,因为电信的公网 IP 有可能是动态公网 IP,也就是说,可能过了一段时间,它的 IP 就换了,通过之前的 IP 就无法访问到了。

这时候就需要动态 DNS 来帮助了,及 DDNS,提供 DDNS 服务的厂家有不少,你可以选择一家免费服务,据我所知,小米路由器支持多家 DDNS 服务,你可以选择一家合适的。

甚至你可以利用阿里云的开放 API 来自己实现 DDNS 服务,原理很简单:

  1. 获取当前公网 IP,可以借助第三方服务
  2. 利用阿里云 SDK 更新解析记录

当然,前提是你有一个阿里云的域名,和一台能 24 小时运行的设备来定时的更新 IP。

如果你恰好有一台小米路由器,那么你可以将公网 IP 解析到某一家服务上,然后使用阿里云域名解析到重定向来指向被解析的动态域名,同样可以实现用自己的域名访问。

3. 绕过 80 端口

不幸的是,电信的宽带集中封禁了 80 和 443 等常见的对外提供 web 服务的端口。这也就意味着我们只能通过加端口号来实现 web 页面的访问了。

如果你是个人用户也无所谓,这样用就好。但如果你有强迫症,就是觉得加端口号不好看,那么还有一种方法可以看不见端口号,那就是隐式URL解析

在阿里云 DNS 解析中,有两种 URL 解析方式,一种是显式URL解析,另一种是隐式URL解析。实际上,所谓的显式URL解析就是一个 302 跳转,而隐式URL解析则是一个iframe,像下面这样:

<HTML>
<frameset rows="100%"><frame src="http://www.gcssloop.com"></frame></frameset>
</HTML>

这样就能通过自己的域名去访问到任何一个网站(前提是这个网站没有做同源限制)。

当然,这样也是有缺陷的,那就是本来网站的真实 URL 根本不会显示出来,只能显示一个固定不变的 URL。

你可以写一个这样简单的模版,放到 github pages,coding pages 或者任何可以放静态网页的地方,然后把链接指向带端口的真实地址。这样就能实现不带端口进行访问了。

4. 后记

这种方案相当于曲线救国,看起来比较复杂,然而相比于要用到服务器的反向代理方案来说,确实节省了大量的成本,并且,所有的数据都是掌握在自己手中,可以有效降低数据泄漏风险。

使用第三方的 DDNS 服务,只会在查询过程中流经第三方服务器,最终访问时则直接通过公网 IP,则降低了数据流经第三方的风险。

如果你还是不放心,自己利用阿里云 API 实现一个自定义的 DDNS 服务也并不是很困难。