自建VPS-防火长城

相信很多做技术、科研的童鞋,都会找一些资料,但是这些资料毕竟相对于国内,国外跟好一些,所以我们经常会去浏览一些国外的网站,但是你如果想访问一些国外的网站,你会发现“找不到该网页”,这是因为国内为了让我们的孩子茁壮成长,对于一些网站做了封锁,那么我们怎么绕过这些封锁呢?。

防火长城-GFW

在上面我们提到需要绕过封锁,那首先我没得知道封锁到底是什么?

“中国长城”是我们对它的称呼,也称中国国家防火墙,也可以直接简称为GFW,是为了让我们国内拥有一个良好网络环境的一个互联网审查系统,如果某个网站被审查了,我们称这个网站“被墙了”,这个“墙”就是GFW

如我们访问Youtube就出现了“无法访问此网站”的字样。

怎么检测这个是否被墙了呢?可以通过Ping的方式去验证

国内服务器Ping

国外服务器Ping

从上面可以看出,国内Ping的结果是全部丢失,而国外却全部成功,如果细心的童鞋会发现返回的IP地址不一样,这是为什么呢?这个会在下面的解释。

常见的GFW封锁有下面几种方式:

  1. 域名解析服务缓存污染-DNS污染(常见被墙的方式)
  2. IP地址或传输层端口封锁
  3. 针对TCP和UDP连接的封锁

DNS污染

被墙的常用手法就是DNS污染,什么叫做DNS污染?我们先来看一张正常的访问DNS解析流程

DNS解析流程

从上图我们大概可以知道这几个步骤

  • 浏览器(DNS应用程序)通过域名发起DNS请求
  • DNS服务器(国外)收到这个dns请求后,在服务器中进行数据查询,查询到了就返回当前域名的IP地址。
  • 最后将IP地址返回给浏览器(DNS应用程序),然后就可以进行HTTP请求了。

那GFW到底是在这个过程中哪里进行了‘污染’?
因为dns请求使用的是UDP网络传输协议,UDP协议是没有进行校验机制的,所以当dns请求返回到国内的宽带上时,GFW就会进行伪装,并且检测携带的IP地址,如果发现是被墙的IP的话,就将这个IP替换成一个错误的ip地址,这也就是上面所说的国内和国外使用Ping,但是返回的IP不一样的原因。

代理

所谓“道高一尺魔高一丈”,所有很多大牛为了突破这种封锁,通过使用代理的方式。

什么是代理?大概就是如下的一个过程

  1. 先买一个国外的服务器并搭建好服务器代理程序(代理商会提供)
  2. 在应用端也需要安装应用代理程序(代理商会提供)
  3. 通过代理程序连接上代理服务器,然后应用就可以通过代理应用向代理服务器发起请求(传输协议)。
  4. 代理服务器请求dns获取ip,并通过ip请求数据
  5. 代理服务器通过传输协议向代理应用返回数据
  6. 代理应用将数据交还给发起请求的应用

代理流程

代理协议

在上面的流程中,我们知道代理的核心是代理应用和代理服务之间的数据转发与接收。数据传输协议通过传输协议,比如L2TP/IPsecPPTPSOCKS5等协议。

在前两年就出现了大批VPS供应商国外服务器无法使用的问题,这是因为我们国家越来越强大了,GFW能够对L2TP/IPsecPPTP这些传输协议进行审查。

当然,办法总比问题多,很多大神以及团队,致力于打造一个稳定的网络通信,提供了很多的工具,比如XRayV2ray以及Trojan,他们大都支持SocksHttpVMESSVLESS等协议