基础模型
OSI
OSI 模型,全称为开放系统互连参考模型(Open System Interconnect),是由国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定。
网络互连的七层框架
- 物理层(Physical Layer)
- 数据链路层(Data Link Layer)
- 网络层(Network Layer)
- 传输层(Transport Layer)
- 会话层(Session Layer)
- 表示层(Presentation Layer)
- 应用层(Application Layer)
TCP/IP
TCP/IP 模型是一种网络通信协议模型,由传输控制协议(TCP)和互联网协议(IP)组成
5 层 TCP/IP 模型
- 物理层(Physical Layer)
- 数据链路层(Data Link Layer)
- 网络层(Network Layer)
- 传输层(Transport Layer)
- 应用层(Application Layer)
即:将 OSI 模型的 应用层、表示层、会话层
合并成了一个 应用层
层级与设备及常见的协议,如图
通信协议
TCP
传输控制协议(Transmission Control Protocol),是 TCP/IP模型 中的传输层协议之一
关于TCP
- 特点:它是一种面向连接的协议,需要进行三次握手来建立连接
- 优劣:虽然这种机制确保了数据的稳定传输,但它会产生较大的延迟
- 场景:常用于文件传输、网页浏览、电子邮件等
UDP
用户数据报协议(User Datagram Protocol),是 TCP/IP模型 中的传输层协议之一
关于UDP
- 特点:它为应用程序提供了一种无需建立连接,就可以发送封装的 IP 数据包的方法
- 优劣:虽然效率高,但是稳定性并不强
- 场景:常用于音频、视频、实时游戏等
HTTP
超文本传输协议(Hypertext Transfer Protocol),缩写:HTTP
关于HTTP
- 特点:基于 TCP协议 ,用于从Web服务器传输超文本到本地浏览器的传送协议,是一种是无状态协议,使用cookie和session开管理。最新的版本为 HTTP/3 ,采用基于 UDP协议的QUIC
- 优劣:使用明文不加密;无法验证数据完整性;不验证身份
- 场景:HTML 文件、图片文件、查询结果等
HTTPS
超文本传输安全协议(Hypertext Transfer Protocol Secure),缩写:HTTPS
关于HTPS
QUIC
谷歌公司开发的一种全新的传输协议,全称:quick
关于QUIC
- 特点:基于 UDP协议,可实现可靠传输、快速握手、拥塞控制、加密等功能
- 优劣:连接建立速度快、可以多路复用、头部压缩;但现有的网络设施兼容支持差
- 场景:被广泛运用到 HTTP/3 中
WS
WebSocket是一种在单个TCP连接上进行全双工通信的协议,简称:WS
关于WS
- 特点:基于 TCP协议,使用HTTP协议进行握手,使用TCP协议进行传输
- 优劣:更高的实时性;但的兼容性差、占用较多服务器资源、数据完整性和安全性有待提升
SSH
安全外壳协议(Secure Shell Protocol),简称:SSH
关于SSH
- 特点:基于 TCP/IP协议 应用层上的加密的网络传输协议
- 优劣:数据加密传输、防止身份伪造;加解密会增加延迟,不支持硬件加速
- 场景:常用于远程登录系统、隧道传输或端口转发
KCP
KCP以浪费 10%-20% 的带宽的代价,换取平均延迟降低 30%-40% 的传输效果
仓库:https://github.com/skywind3000/kcp
对比 TCP
TCP保证数据准确交付,UDP保证数据快速到达
KCP则是两种协议的一个折中,在力求在保证可靠性的情况下提高传输速度
mKCP
mKCP是一个基于 UDP 的流式传输协议,由 KCP 协议修改而来,可以按顺序传输任意的数据流
对比TCP
mKCP 同样也是牺牲带宽来降低延迟,传输同样的内容,mKCP 一般比 TCP 消耗更多的流量
KCPTUN
Kcptun 基于 KCP 协议的 UDP 隧道,它可以将 TCP 流转换为 KCP+UDP 流
仓库:https://github.com/xtaci/kcptun
安全协议
TLS
传输层安全性协议(Transport Layer Security),缩写:TLS
关于SSL
TLS的前身就是安全套接层(SSL,Secure Sockets Layer)
- 特点:基于 TCP/IP协议 上实现的一种安全协议,采用公开密钥技术
- 优劣:密码算法过时,容易被破解,现已用TLS代替
SSL不使用了,浏览器却还是SSL证书
- 浏览器中使用的数字证书(Digital Certificate),早期是SSL
- 但后来由于安全问题已经废弃,如今使用的都是TLS,也称:SSL/TLS 证书
关于TLS
- 特点:基于 TCP/IP协议 上实现的一种安全协议
- 优劣:加密、数据完整性、身份认证;加解密会消耗CPU资源
XTLS
由 Project X Community 开发并维护,基于 TLS 1.3 开发的网络代理工具
关于XTLS
- 特点:使用 TLS 1.3 协议 握手,TCP协议 进行传输
- 优劣:通过混淆、伪装和流量控制等技术,增加了网络流量的隐蔽性和安全性;但可能会减慢通信速度
代理协议
HTTP(S)
HTTP 代理协议是一种基于 HTTP协议 的特定协议,用于实现代理服务器
关于HTTP代理协议
- 特点:它允许客户端通过一个中间服务器来访问其他服务器上的资源
- 优劣:提高网速、隐藏真实IP;但增加了带宽消耗,数据可能被篡改或泄露
- 区别:HTTP协议,用于传输数据;HTTP代理协议,用于代理
Socks5
防火墙安全会话转换协议(Protocol for sessions traversal across firewall securely),简称 socks,最新的版本为:socks5
::: info关于 Socks5
- 特点:基于 TCP/IP协议,用于客户端与外网服务器之间通讯的中间传递
- 优劣:速度比 HTTP 快,但数据是明文没有加密,需配合 SSL/TLS 进行加密 :::
Shadowsocks
一种基于 Socks5代理 方式的加密传输协议,中文名影梭,简称:SS
仓库:https://github.com/shadowsocks/shadowsocks-rust
ShadowsocksR
在 Shadowsocks 的 Socks5 基础上添加了混淆协议,简称:SSR
VMess(V2Ray)
在 Shadowsocks 被封杀后,V2Ray成立,VMess协议是其专属的加密通讯协议
仓库:https://github.com/v2ray/v2ray-core
V2Ray 现在已经是 Project V 项目的核心工具,而 Project V 是一个平台
关于VMess
全称 Virtual Machine Encryption Security Service,简称VMess,它是一种基于TLS的网络传输协议,用于建立安全的TCP和UDP连接
支持协议:
- Blackhole(出站协议)
- Dokodemo-door(入站协议)
- Freedom(出站协议)
- HTTP(HTTP代理协议)
- MTProto(telegram专用协议)
- Shadowsocks(梯子协议,不支持SSR)
- Socks(传统代理协议)
- VMess(v2ray专用加密传输协议)
- Vless(xray协议)
Trojan
利用 TLS 加密方式的协议,全称为Trojan-GFW,2019年沿用至今,是目前最成功的科学上网伪装技术之一
官网:https://trojan-gfw.github.io/trojan/
仓库:https://github.com/trojan-gfw/trojan
简介
Trojan-Go
Trojan-Go 兼容原版 Trojan 的绝大多数功能,2020年沿用至今
官网:https://p4gefau1t.github.io/trojan-go/
仓库:https://github.com/p4gefau1t/trojan-go
新特性
- WebSocket 传输支持,以实现 CDN 流量中转(基于 WebSocket over TLS)和对抗 GFW 中间人攻击
- 支持对用户更友好的 YAML 配置文件格式
- 自定义路由模块,可实现国内外分流 / 广告屏蔽等功能
ShadowTLS
一个可以使用别人的受信证书的 TLS 伪装代理
官网:https://www.ihcblog.com/a-better-tls-obfs-proxy/
仓库:https://github.com/ihciah/shadow-tls
对比Trojan
它和 trojan 的表现类似,但它在做真实 TLS 握手的同时,可以直接使用别人的受信证书(如某些大公司或机构的域名),而不需要自己签发证书
当直接使用浏览器打开时,可以正常显示对应可信域名的网页内容
VLESS(Xray)
Xray是 V2ray 的升级版,包含V2ray所有协议,以及新的VLESS协议
仓库:https://github.com/XTLS/Xray-core
XrayR:基于Xray的后端框架
历史进程
关于VLESS
简介:VLESS 是一个无状态的轻量传输协议,最突出的就是它可以配合 XTLS 进行数据加密,效果更好、性能更强
优势:在使用 TLS 的情况下,VLess 协议比 VMess 速度更快,性能更好,因为 VLess 不会对数据进行加解密
Hysteria2
Hysteria 2 基于经过修改的 QUIC协议 ,简称hy2
官网:https://v2.hysteria.network/zh/
仓库:https://github.com/apernet/hysteria
关于hy2
- 特点:伪装成标准的 HTTP/3 流量,有很强的的防封锁能力;但是无法套CDN
mieru
mieru【見える】是一款安全的、无流量特征、难以主动探测的,基于 TCP 或 UDP 协议的 socks5 / HTTP / HTTPS 网络代理软件
仓库:https://github.com/enfein/mieru
关于mieru
- 原理:mieru 的翻墙原理与 shadowsocks / v2ray 等软件类似,在客户端和墙外的代理服务器之间建立一个加密的通道。GFW 不能破解加密传输的信息,无法判定你最终访问的网址,因此只能选择放行
- 特性:实现客户端和代理服务器之间所有传输内容的完整加密
naive
消除了客户端的tls指纹和tls-in-tls特征
仓库:https://github.com/klzgrad/naiveproxy/
历史进程
- NaiveProxy,挪威语叫NaïveProxy,翻译成中文:天真的代理
- 2019年底由klzgrad大神开发的一种突破GFW网络审查的新型科学上网代理技术,它使用Chrome的网络堆栈来伪装流量,具有较强的抗审查能力和较低的可检测性,重用Chrome网络堆栈是确保性能和安全性的最佳实践
对比Trojan
Trojan最大的优点就是伪装成互联网最常见的HTTPS流量,而NaiveProxy最大的优势不仅伪装成 HTTP/2 的流量
而且使用互联网最常用的浏览器Chrome网络堆栈的指纹,更加难以被识别,而且这些也是Go语言模仿不了的
Brook
Brook 是一个高效的 Socks5 代理软件,官方支持Windows、Linux、MacOS、IOS、Android、树莓派等设备
仓库:https://github.com/txthinking/brook
支持协议
Brook(自主研发新版)、Stream Brook(旧版)协议、Shadowsocks 协议、SOCKS5 协议等
参考: