我打算写一篇文章,来整理翻墙技术大全,对于想要了解翻墙技术细节的朋友们,可以有个参考,本文会白话详细解释各种翻墙技术,包含SSR,VPN, Trojan, V2ray 等,虽然对于只想要马上翻墙回国或出国的朋友们,或许没有太大帮助,但至少可有一个依据,本文就不推荐任何VPN了,当存作为一篇知识性文章,且引用各种参考资料,很多博主根本不懂VPN,不懂加密,不懂密码学,整天拿厂商钱到处推荐VPN,一点进他网站,就是广告,就是弹出广告要你购买他的推荐品,实在是没意思,本文就来讲点知识,跟大家分享分享。
如果单纯只是想看我推荐的翻墙软体,可以直接参考: 翻墙、科学上网指南-2023年更新 。
我们会介绍:
- 常见加密技术详解
- 各种协议的详解
- VPN 翻墙技术
- SSR 翻墙技术
- Trojan 翻墙技术
- V2Ray 翻墙技术
- 科学上网浅谈
- 科学上网常見問題
墙知乎(自由享受高墻后的自在晴空)
声明如下: 本网站跟其他网站不一样,不会有弹出推荐的VPN广告,也不会跟你搜集任何电子邮件,因为我并没有直接受惠于我推荐的任何VPN厂商,我也不是他们员工,他们也没有付钱给我叫我帮他写几句好话,我针对超过一百款以上的翻墻软件进行测速,加上我自己在中美工作多年经验,能用的,我就坐速度测试并且推荐,不能用的我就写不能用,希望让大家可以自由享受高墻后的自在晴空。
常见加密技术详解
加密是保护敏感数据的最常用方法之一。加密的工作原理是采用纯文本并将其转换为由看似随机的字符组成的密文。只有拥有特殊密钥的人才能解密它。简单说,你给你的讯号,一个操作(数学操作),然后传给对方,对方有一些你的资讯,可以解密。加密分两种,对称加密,和非对称加密,
对称密钥算法
对称密钥算法(英语:Symmetric-key algorithm)又称为对称加密、私钥加密、共享密钥加密,是密码学中的一类加密算法。举个例子简单说,就是你跟对方都有钥匙,想像你有个黑盒子,你把讯息放进去然后锁起来,对方有钥匙,再打开来看,这样讲大家很好懂。常见的对称加密算法有AES、ChaCha20、3DES、Salsa20、DES、Blowfish、IDEA、RC5、RC6、Camellia。
非对称加密
与之相对的,就是非对称加密: 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。不同于加密和解密都使用同一个密钥的对称加密。公钥可以公开,可任意向外发布;私钥不可以公开,必须由用户自行严格秘密保管,绝不透过任何途径向任何人提供,也不会透露给被信任的要通信的另一方。举个例子大家比较好懂,就是假设我想传个讯息给银行,银行给我他的公钥,我就把我的资讯,用公钥加密,银行会用他的私钥打开。像是:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
相比之下,你会发现假设你有n个人,每个人在非对称加密下,需要2*n的钥,公钥私钥各一把,但是对称加密,每两人之间,都需要一组密钥,大概需要n平方这么多的密钥,比较消耗资源。但好处是算法公开、计算量小、加密速度快、加密效率高。非对称加密和解密花费的时间长、速度相对较慢,只适合对少量数据的使用。至于为什么? 这说来太复杂了。需要很多数学,很多数论相关的知识。常见的RSA,椭圆曲线加密都是非对称加密,很可能会使用到代数几何。数学中的天书,公钥加密在在计算上相当复杂,性能欠佳、远远不比对称加密。
对称密钥算法(Symmetric-key algorithm) | 非对称加密Asymmetric cryptography |
密钥数量较多 | 较少 |
速度快 | 速度慢 |
较不安全 | 比较安全 |
AES、ChaCha20、3DES、Salsa20、DES、Blowfish、IDEA、RC5、RC6、Camellia | RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用) |
新型态可能威胁到VPN的技术以及解方
量子计算跟VPN的关係
量子计算是一个令人兴奋的新研究领域,有可能彻底改变计算领域,许多人对它与密码学的关系很感兴趣。虽然关于量子计算还有很多未知之处,但人们普遍认为它有可能大大增强计算机的能力,这可能对密码学领域产生重大影响。 量子计算在密码学中最有趣的潜在应用之一是能够快速分解大数,这是许多现代密码算法中的关键步骤。使用足够大的量子计算机,可能比目前使用经典计算机更快地分解数字,这可能会允许开发新的和更安全的密码算法。 量子计算在密码学中的另一个潜在应用是能够创建新的、更安全的密钥分发方法。在经典密码学中,系统的安全性往往依赖于某些数学问题的难度,例如大数的因式分解。有了量子计算,就有可能创建新的密钥分配方法,而不是基于这些数学问题的难度,从而提供额外的安全层。 总的来说,虽然关于量子计算及其在密码学中的潜在应用仍有很多未知之处,但很明显它对该领域有着巨大的前景,许多研究人员正在努力探索其潜力。
并行计算跟VPN的关係
并行计算是一种同时执行多个计算的计算方法,可以更快、更高效地处理大量数据。在密码学领域,并行计算可用于执行加密和解密消息所需的复杂数学计算,使过程更快、更高效。 在密码学中使用并行计算的主要方式之一是实现设计为高度可并行化的算法。这些算法可以在多个处理单元上运行,例如单台计算机上的多个内核或网络中的多台计算机,从而可以更快地执行计算。这对于需要处理大量数据的应用程序特别有用,例如在加密和解密大文件的情况下。 并行计算可用于密码学的另一种方式是开发新的密码算法。通过使用并行计算技术,研究人员可以探索加密和解密数据的新方法,这些方法可能比现有方法更安全或更有效。这对于需要高安全级别的应用程序尤其有价值,例如在通过 Internet 传输敏感信息的情况下。 总体而言,并行计算具有极大提升密码运算速度和效率的潜力,是密码学领域的一个活跃研究领域。
异构计算跟VPN的关係
异构计算是一种计算类型,其中不同类型的处理单元一起使用来执行计算。这可能包括使用中央处理器 (CPU) 和图形处理器 (GPU) 的组合,以及其他专用类型的硬件,例如现场可编程门阵列 (FPGA) 或数字信号处理器 (DSP)。
在密码学领域,异构计算可用于以更高效和可扩展的方式执行加密和解密消息所需的复杂数学计算。通过使用不同类型的处理单元的组合,可以比使用单一类型的处理单元更快地执行计算并且消耗更少的能量。
密码学异构计算的主要优势之一是能够利用不同类型处理单元的专门功能。例如,GPU 非常适合执行密码算法中常见的高度并行化计算,而 FPGA 可以定制以非常高效地执行特定类型的计算。通过使用这些不同类型的处理单元的组合,可以创建比依赖单一类型处理单元的系统更高效和可扩展的密码系统。
总体而言,异构计算具有极大提升密码系统性能和效率的潜力,是密码学领域的一个活跃研究领域
各种翻墻协议的详解和比較
哪个是最好的 VPN 协议?PPTP vs. OpenVPN vs. L2TP/IPsec vs. SSTP。這問題我常常被問很多次。每家VPN提供商或多或手都提供多种翻墙的VPN协议,而這每一个协议都有它的优缺点。你可以自由選擇,這裡就來講如下幾種,並且舉出他在速度跟安全性上的優缺點: PPTP,L2TP / IPsec,IKEv2 / IPsec,OpenVPN,SSTP,WireGuard,SoftEther,SSL / TLS,TCP和UDP。
VPN的两种类型
VPN有分两种,一种是用户自己连接到安全网路(透过服务商),或是公司到公司,或是住家到公司。通常为了远距工作而使用,这类的协议包含:
- Ipsec(互联网协议安全):此协议的安全性分为两个阶段:它对会话进行认证,然后加密数据。更详细可以参考: IPsec VPN Overview
- L2TP(第2层隧道协议):隧道协议,与第一种的IPSec组合,来优化VPN连接的安全性。L2TP基本上在这个协议的两个不同连接之间创建了一个隧道。常见的两种方法都可以透过VPN Gate 来实作,windows 可由”使用 L2TP/IPsec VPN 协议连接到 VPN Gate“
- PPTP(点到点隧道协议):该协议基本上创建了一个隧道来放入数据包。
在所有 VPN 协议中,PPTP 是最常见、最容易设置且计算速度最快的一种。出于这个原因,PPTP 对于速度至关重要的应用程序(如音频或视频流)以及处理器更有限的较旧、较慢的设备非常有用。PPTP 也存在严重的安全漏洞。它的底层身份验证协议,通常是 MS-CHAP-v1/v2,从根本上讲是不安全的。所以像是expressvpn,都不会有这类的协议。
- SSL / TLS(安全套接字层/传输层安全性:此协议在电子商务网站中非常常见。
- Open VPN:此协议是一个开源VPN,它创建点对点和站点到网络连接。它还使用另一种基于SSL / TLS的自定义协议。
OpenVPN是一个用于创建虚拟私人网络加密通道的软件包,最早由James Yonan编写。OpenVPN允许创建的VPN使用公开密钥、电子证书、或者用户名/密码来进行身份验证。细节可以参考: OpenVPN
- SSH(安全Shell):此协议创建一个隧道,同时加密所有数据。对linux系统最为方便
- WireGuard:WireGuard是开放源代码VPN程序及协议,基于Linux内核实现,利用Curve25519进行密钥交换,ChaCha20用于加密,Poly1305用于数据认证,BLAKE2用于散列函数运算,支持IPv4和IPv6的第3层。
VPN 翻墙技术
VPN(ˋ多。经过伪装(加密)后的使用者IP、位置、跟个人资讯,就可以翻墙来访问一些被防火墙屏蔽的网站。
不如换这个比喻:如果你的车开出你的车道,有人可以跟着你,看看你要去哪裡,你在目的地多久了,什么时候回来。他们甚至可以偷看您的车内并了解有关您的更多信息。看看车上有谁。假如你使用 VPN,就好像您从家裡开车进入地下隧道,进入封闭的停车场,换到另一辆车,然后开车出去。想要知道你讯息的人没有人知道你去了哪裡。。
当您的 VPN 开启时,任何窥探您网络的人都无法看到您在做什么。即使窥探者控製网络。最常见的就是无处不在且方便的公共 Wi-Fi 网络。例如,您怎么知道“starbucks_wifi”实际上真的是是咖啡店的 Wi-Fi 网络?事实上,一个流行的安全研究人员常常做的恶作剧是创建一个与免费、流行的服务同名的网络,看看有多少设备会自动连接。。
即使即使您倾向于信任他人,仍然不应该信任您的互联网服务提供商 (ISP)。在中国,您的 ISP 可以深入了解您的在线活动。更糟糕的是,中国决定允许您的 ISP 出售您的匿名浏览历史记录。甚至可能出售您的数据,这十分恶劣了。VPN 甚至可以防止您的 ISP 监视您的活动,基本上VPN对于你的自身网路安全是至关重要的。
许多美国人也常使用VPN,目的不是为了翻墙,而是想要保护自己的资料不外泄(像是我自己在疫情期间,需要远端办公,也是透过VPN)。目前主流的VPN均为美国公司所开发,然而由于中国政府近年来强力打击加密流量,因此绝大多数的VPN已经无法在中国使用。
关于加密的细节,有兴趣的朋友们可以搜寻RSA加密(透过数论学家认为质因数分解对电脑来说是很难的问题)来应用,另一种是所谓椭圆式加密,透过椭圆曲线上面的阿贝尔群来操作,除了这两种最常见的加密方式,还有运用其他数学结构来加密的,像是最短向量(Shortest Vector)。基本上加密就是用到许多数学跟程式来完成,是一门非常高深的学问。甚至牵涉到着名的P versus NP的问题。
SSR 翻墙技术
多型态多技术的类型成为VPN软体主流
传统的VPN是虚拟私人网路,常见用途是在学校或企业内建立私有的网路系统。SSR 则可以想像成是透过一个代理人,这个代理人(专有名称是Sock5)可以访问被屏蔽的网站,借由与这个代理人传输资料来翻墙,而且资料同样经过加密,而且没有专用网路,所以相较传统VPN来说,SSR更不容易被防火墙侦测到。
SSR原本是一个开源专案,后因中国政府打压,源代码已经下架,但由于传统VPN多数已被墙,SSR现在已经取代VPN成为国内翻墙的主流。近年来近年来由于中国打击翻墙手段趋严,许多国内VPN像是光年VPN,熊猫VPN等暂时无法使用,而且常会有团队因为法律而跑路,因此建议使用欧美VPN,安全性有保证,团队也不会突然消失,造成使用者血本无归。
除了SSR之外,還有像是V2-ray 跟Trojan。Trojan是一个比较新的翻墙软件,在设计时采用了更适应国情的思路。 在穿透GFW时,人们认为强加密和随机混淆可能会欺骗GFW的过滤机制。 然而,Trojan实现了这个思路的反面:它模仿了互联网上最常见的HTTPS协议,以诱骗GFW认为它就是HTTPS,从而不被识别。
简单说,由于传统VPN的技术已经被中国防火墙识破,所以现在都是使用多技术的方式来翻墙。 像是光年VPN採用的就是特殊SSR技术。
Trojan 翻墙技术
現在來講講Trojan翻墻技術,Trojan 是一個開源專案,更多細節跟操作可以參考github的官網。建議熟悉程式的玩家自己去探求,如果是程式小白,當作故事看看就好。簡單就是透過Trojan來模仿成HTTPS。
在騙過 GFW 时,人们认为强加密和随机混淆可能会欺骗 GFW。然而,特洛伊木马实现了截然相反的功能:它模仿最常见的跨墙协议HTTPS
,以欺骗 GFW 认为它是HTTPS
。
有效的木马协议
当木马客户端(木马客户端只是一个木马协议SOCKS5
转换器。没有特別的)连接到服务器时,它首先执行真正的 TLS
信息交換。如果 信息交換 成功,所有后续流量将受到保护TLS
;否则,服务器将像任何HTTPS
服务器一样立即关闭连接。(木马现在也支持对普通 HTTP 请求的类似 nginx 的响应。)然后客户端发送以下结构:
+-----------------------+---------+----------------+---------+----------+
| hex(SHA224(password)) | CRLF | Trojan Request | CRLF | Payload |
+-----------------------+---------+----------------+---------+----------+
| 56 | X'0D0A' | Variable | X'0D0A' | Variable |
+-----------------------+---------+----------------+---------+----------+
where Trojan Request is a SOCKS5-like request:
+-----+------+----------+----------+
| CMD | ATYP | DST.ADDR | DST.PORT |
+-----+------+----------+----------+
| 1 | 1 | Variable | 2 |
+-----+------+----------+----------+
where:
o CMD
o CONNECT X'01'
o UDP ASSOCIATE X'03'
o ATYP address type of following address
o IP V4 address: X'01'
o DOMAINNAME: X'03'
o IP V6 address: X'04'
o DST.ADDR desired destination address
o DST.PORT desired destination port in network octet order
如果连接是 a UDP ASSOCIATE
,则每个UDP
数据包具有以下格式:
+------+----------+----------+--------+---------+----------+
| ATYP | DST.ADDR | DST.PORT | Length | CRLF | Payload |
+------+----------+----------+--------+---------+----------+
| 1 | Variable | 2 | 2 | X'0D0A' | Variable |
+------+----------+----------+--------+---------+----------+
当服务器收到第一个数据包时,它会检查散列密码是否正确以及木马请求是否有效。如果不是,则该协议被视为“其他协议”。请注意,第一个数据包将附加有效负载。这避免了长度模式检测并且可以减少要发送的数据包的数量。
如果请求有效,特洛伊木马服务器连接到由DST.ADDR
和DST.PORT
字段指示的端点,并在端点和特洛伊木马客户端之间打开直接隧道。
其他协议
因为通常将特洛伊木马服务器假定为HTTPS
服务器,所以侦听套接字始终是TLS
套接字。执行TLS
交換后,如果木马服务器确定流量是“其他协议”,则在预设端点(默认为127.0.0.1:80
本地HTTP
服务器)到客户端之间打开隧道,以便预设端点控制解密TLS
流量.
防检测
主动检测
所有没有正确结构和密码的连接都将被重定向到预设的端点,因此HTTP
如果可疑的探针连接(或者只是您的粉丝连接到您的博客 XD),木马服务器的行为与该端点完全相同(默认情况下)。
被动检测
因为流量受到保护TLS
,如果您正在访问一个HTTP
站点,流量看起来是一样的HTTPS
(握手RTT
后只有一个TLS
);如果您没有访问某个HTTP
站点,则流量看起来与HTTPS
保持活动或WebSocket
. 因此,木马也可以绕过 ISPQoS
限制。
Ray 翻墙技术
最後來說說近年很紅的V2Ray. 技術細節可以參考V2Ray Beginniner's Guide。或是GitHub https://github.com/v2fly/v2ray-step-by-step。
簡單說,V2Ray可以當作是進化版的SSR,包含各種不同的混淆跟偽裝。
V2Ray 本身不是协议或规避系统。相反,V2Ray 是一个平台或框架,允许您运行一个或多个代理,具有各种分层代理协议、传输和混淆。例如,您可以在一个端口上运行 SOCKS-in-TLS,在另一个端口上运行 VMess-in-QUIC(可以选择混淆 QUIC 数据包)。在客户端,您可以配置路由来控制什么流量应该使用什么代理,或者根本不应该被代理。
在最底层,V2Ray 支持多种代理协议,有些是混淆的,有些则不是:
- 标准的HTTP 代理(GET/CONNECT)。
- 普通Socket。
- MTProto,由 Telegram 使用 并且只能代理到 Telegram 服务器。
- Shadowsocks,使用推荐的AEAD 密码,或者不幸的是,已弃用的流密码和一次性 auth。
- VMess,一种自定义的经过身份验证和加密的代理协议。有一个技术协议规范。
有一个可选的mux(多路复用)层通过一个代理连接隧道传输多个流。
代理协议本身并不是通过任何特定类型的网络连接实现的。相反,您必须为每个指定传输:
- 一个TCP 连接。
- mKCP,一种使用 UDP 数据包实现的可靠通道。我不确定 mKCP 与KCP有何不同,如果有的话。本 BBS 的读者会回忆起之前关于 Turbo Tunnel 内部会话层的讨论中的 KCP(#9,#14)。
- 基于 TCP的WebSocket 连接。
- HTTP/2。
- 一个QUIC 连接。
任何传输层都可以选择应用一层 TLS。TLS 选项对于 HTTP/2 和 QUIC 传输是必需的。
最后,在最高级别,一些传输支持额外的、可选的混淆选项:
V2Ray 模型提供了很大的灵活性。您可以设置未经身份验证的 SOCKS 代理而不进行任何加密,或者您可以设置仅对授权用户开放的 VMess,通过 WebSocket 和 TLS 进行隧道传输。
V2Ray 和 Shadowsocks 有什么区别?
不同的是Shadowsocks只是一个简单的代理工具;它是一种加密协议。但是,V2Ray 是作为一个平台设计的,任何开发者都可以使用 V2Ray 提供的模块来开发新的代理软件。
熟悉Shadowsocks历史的人都应该知道,它是clowwindy开发的一款自用软件。开发的初衷是让穿越防火墙和审查变得简单高效。在clowwindy 将Shadowsocks 开源之前,它作为私有代理协议已经使用了很长时间。V2Ray 是在 clowwindy 受到中国政府威胁后开发的,而 Project V 团队则是为了抗议而开发的。由于历史背景不同,他们具有不同的特点。
单纯说Shadowsocks是单代理协议,V2Ray比单协议代理复杂。Shadowsocks 听起来有点黯淡?当然不是!从另一个角度来说,Shadowsocks 易于部署,而 V2Ray 在部署时有更复杂的配置。簡單說V2Ray就是進化版的SSR。
既然 V2Ray 比较复杂,那我们为什么要用它呢?
事物的优点和缺点总是随之而来。例如,V2Ray 具有以下优点:
- 全新强大的协议:V2Ray采用全新自主研发的VMess协议,改善了Shadowsocks现有的一些缺点,更难被防火墙检测到。
- 更好的性能:更好的网络性能,具体数据可以看V2Ray官方博客
- 更多特性:以下是V2Ray的一些特性:
- mKCP:V2Ray 上的 KCP 协议实现,不需要另外安装 kcptun。
- 动态端口:动态改变通信端口,对抗长期大流量端口的限速
- 路由特性:可以自由设置指定数据包的流向,屏蔽广告,开启反跟踪
- 出站代理,或者说链代理,使用许多链接来获得更好的隐私
- 混淆:类似于ShadowsocksR的混淆,mKCP的数据包也可以混淆。混淆其他协议流量,增加检测难度
- WebSocket 协议:只使用 WebSocket 代理,或用于 CDN 中间代理(更好的抗阻塞)
- Mux:复用,进一步提高代理的并发性能
科学上网浅谈
据中央社引述中国官方消息报道,中国上网人数突破9亿,网购用户超过7亿,可见大家对上网的需求日益增加,在网上搜寻过翻墙的朋友,肯定常听到用vpn翻墙。vpn翻墙在确实是主流且成功率高的翻墙方法,无奈的是,因为中国对于互联网审查日益严格,防火墙更新频繁,网路上有许多博主推荐的vpn软件,不是常常钓线,服务器被墙,就是有安全性问题(像是2019年就有网友使用蓝灯vpn被公安抓捕的纪录)针对2023中国翻墻现况,美国之音有一篇报导,中国拟推新法加固防火墙,严惩翻墙者。
可知从中国访问“免费”互联网比几年前要困难得多。很多梯子已经不能用了,关于这点,我亲自测试了许多VPN,有兴趣的人可以参考: 翻墙、科学上网指南-2023年更新。
有任何问题或想法,欢迎提出,也欢迎参考我的: 翻墙、科学上网指南-2023年更新
當你的 VPN 連接很慢,突然斷開連接更甚者直接無法連接,有一些簡單的功能障礙排查小技巧,你可以瞭解一下,畢竟,VPN 出現一些小問題是老生常談的事情,遇到問題解決問題,這些小技巧,你值得學習一下。
2022年最新翻墙与科学.上网指南,翻墙软件该选VPN还是机场👉https://dr-wall.com/
这是我看过最清楚的VPN技术文章
谢谢您对我VPN的支持
SSR技术现在还有用吗?
现在基本上都是综合使用了
加密系统这一段介绍写得非常好
有v2ray 的手把手教学嘛
可以参考我网站的连结
TROJAN 翻墙技术 太深奥了
這是我見過說明最仔細最用心,關於VPN的文章