找回密码
 立即注册
搜索

[隐私安全] 翻墙

[复制链接]
智慧谋略 发表于 2023-9-14 02:55:59 | 显示全部楼层 |阅读模式
GFW的工作原理

在没有GFW的完美情况下,一个网络通讯的数据包是这样运作的。


首先从本地计算机发出一个数据包请求,经过本地网络接入骨干网,经由DNS(Domain Name Servers)域名解析就是把输入的这一串英文字符到底是要连接到哪个服务器,把这个服务器的真实ip地址解析出来。比如输入google.com,DNS就会把这个地址解析成真实的服务器地址。这一串经过解析之后到达国际出口,最后接入到对应的服务器,服务器对数据进行处理,然后返回一个数据包,再发送回计算机。这一套流程就是在没有GFW的情况下,一个数据包的一个通讯过程。

有了GFW之后,就变成了下面这样。


- DNS污染(劫持)
  同样本地计算机发出了一个数据包给Google,经过本地网络接入骨干网,经由DNS解析。因为数据包发送的方式是HTTP,是一种明文的流量,GFW可以探测到流量的部分内容。一看到你访问的是Google,于是给你解析出一个错误的服务器地址,于是你就访问不了Google了。
- 关键词阻断  
  GFW探测到HTTP流量的内容,这一点是另一个GFW用来封锁网络的方式,叫做关键字阻断。当传输的这个数据流里面包含一些敏感词的时候就会被中断连接。

- 数据归集屏蔽  
  除此之外GFW还会在某些特定的IP服务器的主机的特定端口,进行端口阻断来切断VPN或者是SSL的连接,比如443,242这些端口。经过一些时间的运作GFW还会把记录到的大量IP地址进行屏蔽,导致很多国外网站被封锁。
  
以上这些就是大概的GFW的工作方式,但是不限于这些。随着时间的推进还会有很多新的方式来阻断连接。同时我们也会采用新的方式来突破这个封锁。这种博弈,就是目前的这个现状。

翻墙手段 初代博弈 — VPN

GFW部署之后,根据它的工作原理判断出只要有不探明数据包的真实意图,那么可以通过连接一台符合GFW认为合理的服务器作为中转来替代去做想做的事情,然后把结果同步回来全部过程加密,那么这一套完整的逻辑就很合理了。这套逻辑也正是很多初期http代理、VPN、SSH代理这些突破封锁的实现方式,这里拿SSH代理的这个流程示意。


本地网络上的计算机发送一个请求建立加密通道的数据包,接入骨干网域名解析,发现访问的并非Google或者是Facebook,而是一台允许访问的国外服务器。放行数据包,经过中转服务器解密出真实想要访问的地址转到Google,然后再返回数据给中转服务器,再经过墙再传回本地计算机。会发现这样一来就完美规避掉了GFW的一切有效探测手段。首先数据流量不再是明文而是加密数据,GFW看不到关键字。第二是DNS解析的时候发现访问的对象是允许的服务器而不是Google,DNS也正常解析。这里有一个问题就是GFW又逐渐发现越来越多的流量都是这种类似的模式。


先发送一个数据包请求和一个服务器建立加密连接,紧跟着一个代理请求,这就是特征。VPN和HTTP代理曾经一度非常流行,后来由于太多用户使用这种方式来翻墙,所以GFW根据这些特别有明显特征的这种流量做了两件事。第一屏蔽掉VPN用的端口,以后在用VPN需要申请报备,审核通过才可以用。第二慢慢积累提供VPN服务主机的IP,屏蔽掉这些IP。经过打压,VPN这种代理翻墙的这种方式就慢慢死掉了。

消除特征 — Shadowsocks

重头戏来了,Shadowsocks出现可以说是一个拐点。Shadowsocks引出了一个把代理服务器拆分成本地和远程两个的这种概念,实现经过GFW流量全部加密,从而消除明显的流量特征的这个概念。后来衍生出来的SSR、v2ray等都是基于类似的这个原理,下面来讲一下具体原理。


同样是从本地计算机发出一个数据包,给本地的shadowsocks服务器发送数据加密请求。这里说的这个本地服务器指的是电脑上或者手机上装的Shadowsocks翻墙软件,当然这个本地服务器也可以是翻墙路由器或者是软路由,这些硬件形式可以有很多种但是逻辑是一样的。本地网络因为在本地所以不过墙,而且瞬间能完成加密然后发送加密数据,经过DNS解析通过骨干网到达国际出口。GFW因为探测不到具有特别明显特征的流量所以也放行,到达远程中转服务器也就是远程的shadowsocks服务器。这个可以是自己的VPS也可以是机场的服务器,然后解密数据转发到Google得到回应,数据发送回来经过远程中转服务器的加密,发送加密数据到达GFW。因为探测不到特征特别明显的流量,也不是HTTP的明文数据,所以GFW无法嗅探到敏感词,只好放行到达本地shadowsocks服务器。这套流程就是shadowsocks的基本工作原理和逻辑。

后面出现的SSR和v2ray,虽然具体细节上有一些微小差异,但都是基于这种基础的逻辑。目前各种各样的这种加密方式和算法基本都是在GFW这个位置用于伪装和消除特征的。至于为什么GFW不封锁所有的国际加密流量,是因为相比翻墙的这个流量,超过99%的这些通信流量都是正常的需求,如果把这些所有的国际加密流量都封锁掉,那中国真的就成了局域网。所以目前来说shadowsocks这种实现原理是相对安全的。和VPN的翻墙模式最大的区别在于VPN的特征很明显,过墙的数据遵循一个固定的一套路,都是先发送一个建立加密通道的数据包。shadowsocks则是在本地完成加密过墙,数据已经是加密数据,所以GFW无法探测到这个固定的模式和特征。

三大方式

软件翻墙(VPN、Shadowsocks等)

硬件翻墙(路由器翻墙)

网关模式翻墙

1. 软件翻墙

VPN【Virtual Private Network,虚拟私有网络】

最早应用在一些大公司,根据私密通讯的需求产生。相对普及之后,不少有私密和安全通讯需求的个人也慢慢用起了VPN。VPN的好处是端对端加密,避免通讯流量被中间劫持之后泄密。并且近乎所有的流量都能被代理。缺点上面说过了,特征很明显【都是最先发送一个建立加密通道的数据包】,容易被GFW探测。VPN从绝对用户基数上说是主流。

Shadowsocks、SSR、V2ray、Trojan、Xray

这些手段都采用本地服务器加密流量,发送至远程服务器再进行转发的这种方式来突破GFW的封锁,所以把这些都归到一类。协议并非越新越复杂越好,一定要亲自尝试。

软件方式的翻墙手段有一个比较明显的缺点,就是绝大多数的软件都没有很高的底层权限,只能代理应用层的网络流量。

就算打开了所谓的全局代理模式,全局的意思指代表作为翻墙软件本身所接管到的所有的流量全部转发到代理服务器。但是有些软件跑在系统层,权限更高甚至不遵循这个操作系统代理规则,根本不把通讯流量交给翻墙软件接管,这种情况下就没有办法实现翻墙了。比较有代表性的应用有一系列的UWP应用【微软商店下载的那些软件】、应用程序商店本身、VR设备的客户端,还有很多的游戏流量等,都不遵循系统代理的设置。

2. 硬件翻墙(路由器翻墙)

路由器是本地网络接入互联网的最后一个环节,并且独立于电脑,所以可以无视计算机操作系统的代理规则,强制接管所有的网络流量来实现真全局代理。路由器翻墙的原理可以理解把翻墙软件部署在了路由器上,连接路由器的网络设备都可以通过路由器翻墙。路由器翻墙的原理和实现,以及协议算法这些概念都跟刚才讲的软件的部分基本一致,不过仍然存在一些差异。
路由器翻墙相比软件翻墙有一个明显的优点,就是可以应用于无法安装翻墙软件的网络设备,帮助这些设备能实现传说中的透明代理。路由器翻墙的缺点也很明显,路由器的CPU算力基本上只能满足最基础的路由功能,然而却要让它进行大量的加密解密运算,导致的结果就是网络通讯会产生卡顿,带宽跑不满宕机。大体上来说,路由器翻墙确实存在这个性能的瓶颈问题。
引出下一个要讨论的一个话题,软路由。软路由简单来说就是改造过的路由器。一台软路由可以理解为一台小型的计算机,你甚至可以在上面装操作系统,这类软路由的性能足够强大,也具备刚才所说的优点,可以拖家带口带着所有的网络设备一起翻墙。通讯流量再限于只能代理外部流量或者是应用层流量,性能方面也不再是短板,也不用担心可能会带来网络问题。但是软路由也有缺点,第一软路由相对比较贵。入门级的性能的这个软路由动辄几百上千。第二配置起来相对繁琐。技术门槛确实比较高,涉及到虚拟机、linux这些相关的知识。第三点稳定性。在复杂的网络环境中,多一个硬件设备就多一道出现问题的可能,第四点日常维护相对繁琐。比如固件更新、更换节点都需要进后台调试。建议可以根据需求同时部署软路由和使用客户端软件翻墙,不冲突。有了自己的翻墙中转服务器就可以灵活的部署在任何需要的软件和平台上。

3. 网关模式翻墙

网关模式可以理解为在局域网里面,不需要一个专属的像路由器这样的硬件,而是通过一台计算机上跑的软件来实现路由器的功能。比较有代表性的有Windows下的Clash和Mac操作系统下的Surge。在本地局域网里面部署了一台运行了Surge或者Clash的电脑当做网关,可以接管局域网里面其他所有网络设备的所有流量同时翻墙。这种方式的优点在于第一异常的方便,无论是切换节点还是调试都比路由器、软路由效率更高,直接在电脑上跑的软件里面进行操作,不用登录路由器后台之类的,如果是出现问题或者是更换节点这些操作点几下鼠标就完成了。第二个优点翻墙的性能要碾压路由器甚至软路由。因为是靠电脑的CPU来进行加密解密运算,而和电脑的CPU的对比,是路由器或者软路由的CPU性能的几十上百倍的。第三个优点便于集中管理。家里所有的网络设备,只需要在网络设置里面填好路由和DNS就能够实现全部设备透明代理。从实用和便捷的角度来说,网关模式翻墙要大幅优于软路由,也大幅优于刷了第三方固件的路由器。




 楼主| 智慧谋略 发表于 2023-9-14 11:15:29 | 显示全部楼层
协议分析                      Kxs                              2023/08/25                  
               
          Shadowsocks协议Shadowsocks是继VPN这种曾经的主流的翻墙的手段被确认能够被GFW精确识别和封锁之后,后面的一切代理服务器中转的翻墙方式SSR、V2ray、Trojan这些的始祖。早期的shadowsocks协议确实存在着技术漏洞,涉及到采用非AD的加密的流量的会被主动探测,并且在GFW那里会得到一个百分之百流特征的一个服务服务器反馈。这是个漏洞已经被修正了。  
Shadowsocks协议目前拥有着最快的RTT,也就是通讯延迟,因为数据包在握手的时候用时最短。后面讲到的V2ray和Trojan在机制的限制下,RTT次数一定比Shadowsocks要多,这一点是无解的。Shadowsocks协议因为机制问题,目前还是体验最好,最简单、最快速,极度体现暴力美学的中转代理方式。Shadowsocks的安全性存在一定风险,但是目前依然是翻墙的主流方式。  
ShadowsocksR这个协议是Shadowsocks的优化版,但是并非是同一个作者开发的。  
V2ray【VPS用户优先选择】从开发者的角度看,V2ray是个极具弹性的平台,支持的协议和算法多,机制和花样也多。从写代码的角度看,相比shadowsocks的简单粗暴,V2ray是通过一种不断的在这里加一笔在那里添一划的这种方式来解决各种各样的潜在的可能出现的安全性问题。这个特点同样也是优点也是缺点。  
V2ray的安全性综合来看更高,但是从部署和推广的角度来说,因为更加复杂也的确劝退了很多自建VPS的用户。从通讯延迟的角度来说,因为机制的问题导致握手次数相比 Shadowsocks更多。加解密的性能方面由于V2ray原创的Vmess协议+TLS两次加密,CPU占用对比Shadowsocks更高,不太适合部署在路由器和一些老旧的CPU型号的手机上。  
因为v2ray的花样比较多,这里着重的说的是Vmess+Websocket+TLS的这种情况,目前来说确实是最稳定的方式之一。即便是在一年一度的6月大扫除,其他协议陆续出现问题的时候也是屹立不倒。由于机制问题WebSocket+TLS的HTTPS流量在GFW看来和不计其数的其他的正常的HTTPS流量基本上没有任何区别。尽管流量没有明显的特征,但是如果GFW主动探测,就会发现流量的目的是没有任何一个网站的,这不就是个明显的特征吗?不过这里就是体现V2ray平台弹性的地方了。很多人在V2ray服外面加一层真的网站作为掩护而伪装流量,这就是V2ray+Websocket+TLS+Web的原理。在配置了真实网站之后只有你知道自己是个代理,对GFW来说就是在浏览网站。但是从GFW的角度来看,可能前几天觉得行为没有特征,但是再过一段时间GFW又发现看到天天无时不刻的访问同一个网站,然后来主动探测,发现确实是个正常网站。好吧那让继续访问,但是重点盯着你了。再过一两个月谁上网天天照着一个网站看?这种特征还不算特征不知道什么是特征了。技术角度的完美和现实角度的完美完全不是一个概念,GFW理论上已经具备了探测这种特征的能力。当然没有人能去准确的分析出GFW的算法和探测行为具体是什么样的,但是心里要有个底,人工方式优化GFW已经不是主流,一旦有了成熟利用AI和大数据分析特征的方式,一切所谓的协议和加密都只是暂时的。所以从事技术方面的人大概会有两种思路,一种是陷在技术的角度的陷阱里出不来,只会从技术的角度来判断怎么做到完美,怎么做到安全。但是跳出来宏观的看特征是一定有的,只是时间样本够不够的问题。这就是另一种能够从更高的宏观的角度来看待封锁和反封锁的人,能够明白这个博弈过程一定是永恒的,除非GFW不存在。  
总结一下,V2ray的协议和加密算法相比Shadowsocks在安全性和潜在的对抗GFW的封锁的能力上要强一些,但是依然不是绝对的安全。V2ray的优点在于弹性大,功能多,支持的协议和算法多,缺点在于部署起来难度比较大,多次加密解密延迟相对比较高,对设备的算力要求也更高一些。
TrojanTrojan解决的是V2ray的一些缺点,但是翻墙的核心原理还是借鉴Websocket+TLS。第一解决了复杂部署难度大的这个问题。Trojan走的是轻量化的解决方案,定死了通信协议只有一种就是Websocket+TLS,不像V2ray支持和兼容那么多协议。第二Trojan在V2ray的Vmess+TLS的两层加密的结构里面剥离了一层Vmess的加密协议,只用到了TLS。TLS的加密方式非常成熟,哪怕政府和银行用的都是TLS,随着TLS的1.3版本的出现,加密的角度来看安全性几乎不会被强行解密。由于Trojan只用了高效率的加密,所以对比V2ray执行效率还有加解密的耗时耗力的问题也有了进步。
同时带来的缺点,首先定死了唯一的通讯协议就意味着对其他协议不支持,弹性比较差。由于比较新所以多平台兼容性较V2ray差。  
总结一下,Shadowsocks协议依然适合绝大多数机场用户使用,但是VPS用户建议优先选择相对比较安全的V2ray,对速度有严格要求的就选Trojan。  
我个人还是建议各位尽量选择使用Trojan协议的机场,理由有两点:  
  • 目前与GFW的博弈状态愈发紧张,用户数据信息安全十分重要,2023年以来跑路关停、面板数据库被攻破的事情络绎不绝,Trojan作为相对新的协议安全性更有保证;
  • Trojan对于速度的稳定更加友好,花钱购买了机场服务当然不希望卡顿~


高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|探索掌握未知、共创美好未来

GMT+8, 2026-9-17 02:30 , Processed in 0.052325 second(s), 32 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表