使用代理有各种不同的方式。如果说到大家使用的最多,最简单的。那一定是直接在自己的电脑和手机上安装代理软件从而直接的实现代理。而本文将浅谈一些客户端的实现方式与原理。

系统代理

相信许多用户在使用Clash_For_Windows或v2rayN的时候,最开始接触到的肯定是系统代理模式。

系统代理模式运行的原理是在本地运行一个HTTPS代理服务器,并通过设置代理服务器为本地计算机(localhost)后代理使用https代理的网络请求和流量。其常见网络拓扑结构如下(已省略无关结构):

image.png

这种方式的优点是无需配置,使用简单,即用即走。

而缺点也很明显,因为HTTPS代理本身就不是强制的,应用可自行选择是否遵循系统HTTPS代理设置。所以此方式很难保证所有的流量都经过代理,例如海外游戏便不可通过此方式实现网络加速。

Tunnel模式

目前最推荐使用的代理上网模式,其原理是通过在本地创建一张虚拟网卡,并设置此虚拟网卡为默认网卡,从而接管操作系统的大多数网络流量。

在使用Tunnel模式代理时,常见的网络拓扑结构如下

image.png

优点显而易见,由于Tunnel模式运行在网络层$^1$,其层级低于游戏所使用的TCP与UDP协议所在的传输层,所以其可用于提供游戏加速服务。在Tunnel代理模式下使用其他应用,表现也将优于HTTPS代理,

网关代理模式

<aside> 🚧 前方施工,请等待后续更新!

</aside>


[1] 在OSI模型中,网络层级结构如下,越靠下的层级越接近底层。

image.png

此图也可上下颠倒,解释和原理都是类似的。