大陆网络出境环境日益恶劣,很多人都利用了国内的服务器来中转流量,比如采用阿里云、腾讯云等国内 BGP 线路中转流量落地到香港 PCCW、日本 NTT 等线路。
基本上大多数人都用的最简单的 iptables 或者 socat 转发,直接将收到的包转到落地节点,本来这并没有什么问题,但自 2020 年以来,墙不断发威,SS/SSR 直连会被非常迅速的识别并封禁。尤其是2020的五中全会期间更为严重。此时,构建一条加密中转隧道就成了必要的选择。
利用GOST自建安全隧道中转加密流量实现科学上网
1、隧道中转机场的诞生
众所周知,GFW对SS/SSR流量的识别已经越来越精准,几乎是想封就封,且V2Ray也逐渐被针对,受到GFW的严重干扰,而使用IPLC/IEPL内网专线的成本太高,于是就出现了使用虚拟专线替代物理的IPLC/IEPL内网专线,通过高强度的加密和混淆,以绕过GFW的检测封锁。与此同时,常规的科学上网代理服务器与国内用户的连接速度受当地的网络环境影响比较大,速度极不稳定,而在国内入口使用BGP多线机房服务器就可以有效缓解这一难题,而且价格相较于物理专线便宜很多。其实,这种技术就类似于VPN,只不过VPN注重的是加密,而机场的隧道中转线路侧重于混淆。于是,机场的隧道中转线路就迅速走上了对抗GFW的舞台中央,而且变得越来越受欢迎。
2、什么是隧道中转?
隧道是把一种网络协议封装进另外一种网络协议进行传输的技术,而隧道中转是在用户端和终端之间建立的一种虚拟专用通道,把用户和服务器之间的通信数据通过隧道加密,以绕过GFW的检测。隧道中转技术可以使用各种安全的协议进行流量转发,如HTTP/HTTPS/HTTP2/SOCKS4(A)/SOCKS5等。隧道中转技术比普通的科学上网协议技术多了一次流量转发(增加了中转服务器,提高了成本),而且在此过程中可以对流量进行再次加密和混淆,有效缓解了GFW对SS/SSR/V2Ray代理流量的识别概率,提高了数据传输效率。
3、隧道转发的原理和类型
机场所用的隧道中转线路结构原理为:用户 – [国内BGP多线服务器 – 非中国大陆地区的服务器] – 目标网站。其中,“[国内BGP多线服务器 – 非中国大陆地区的服务器]”之间的通信线路也就是我们今天所说的隧道,隧道中转比以往的科学上网代理服务增加了国内BGP多线服务器作为中转跳板,所以增加成本,但是速度和稳定性提升都很明显。
隧道中转 与 iptables 等流量转发的区别:
一般情况下,我们所接触到的中转服务器大体是使用 iptables 或者 socat 等工具,直接转发数据包(流量)到落地服务器。 在这种转发方式中,中转服务器没有对数据包进行任何操作(如加密、混淆等),仅仅将数据包原封不动地转发到落地服务器。而隧道中转服务器会对数据包进行再次处理(如加密、混淆等)。如下图所示:
iptables-流量转发跟隧道中转的区别
使用隧道转发流量和使用iptables转发流量,谁的效率更高?据有大佬说,隧道中转流量速度更快,但我没有做实际测试对比,另外,国内环境是不建议使用 UDP 协议传输的,同时隧道中转流量的安全性要高于iptables,毕竟至少多一层加密,但需要配合混淆骗过GFW,效果会更好。
目前,关于隧道转发的实现方式主要有以下两种:
(1)TLS 加密隧道,通过 TLS 或其他加密方式,将数据包加密传输,在落地节点上解密转发到最后的出口,如 Stunnel、GOST、Brook、Ehco 等。
(2)VPN组网形式,将异地的两台机器组成一个内网,然后在内网中直接进行数据转发,此时数据会由组网工具进行加密处理,如 Zerotier、WireGuard 等。
由于VPN是特定的加密协议,特征明显,且 WireGuard 基于 UDP 协议,而中国大陆的网络环境对 UDP 协议不友好,所以我们只有选择基于 TCP 协议的 TLS 加密隧道方案。