SS/SSR客户端的工作过程



  • SS/SSR客户端的工作过程

    在使用SSR客户端软件的时候,使用网上简洁易懂的教程就可以轻松实现科学上网,但是SSR客户端的工作流程是什么样的呢?就让小编带你来看看吧,手动狗头
    ShadowsocksR(SSR)本身是一种科学上网技术,从架构层面看是C/S架构,即客户端-服务器架构(主从式架构)。实现这个科学上网的技术,需要一台运行着SSR服务端的外网服务器,和客户端软件。那么客户端软件是如何处理流量的呢?

    efe12b57-d0f2-4f5d-aaeb-376074a850d7-image.png
    图:SSR客户端(小飞机)的右键菜单

    两个规则方式

    SSR客户端判断流量是否需要代理,主要有两个规则方式:系统代理模式(System Proxy)和代理规则模式(Proxy Rule)。

    ① 系统代理模式:通过黑白地址名单来判断流量是否需要经过代理客户端。系统代理模式控制系统层面上的网络连接,相当于代理客户端的外层。 细分为Global和PAC(Proxy auto-config,智能分流)两种Mode:

    • Global:不分黑白名单,全部流量通过代理客户端
    • PAC,通过匹配PAC文件中的黑白名单进行判断

    ② 代理规则:通过IP和选择的规则,来判断是否需要经过代理客户端。代理规则模式控制代理客户端内部的层面的代理,相当于第二层。 规则又细分为:

    • Bypass Lan,绕过局域网IP
    • Bypass Lan & China,绕过局域网和中国大陆IP
    • Bypass Lan & not China,绕过局域网和非中国大陆IP
    • User Custom,用户自定义规则

    代理规则从字面上就很好理解,不再细讲,详细请看:链接

    总体流程

    以上介绍了两种规则方式,那么代理客户端总体的处理流程是什么样的呢?

    答:首先,系统层面上的网络请求通过 ①系统代理模式 来判断是否需要进入代理客户端,进入代理客户端后,通过 ② 代理规则 判断当前请求是否需要进行代理。

    📌需要注意的是,①系统代理模式 是可以进行关闭的,从而直接让全部流量进入代理客户端,通过IP和规则直接决定是否代理。

    91fd0d0c-067b-42a5-9b92-bb8ec2a18cf2-image.png
    图:关闭系统代理模式,直接走代理规则

    例子

    以下是一个通过SSR访问Google的例子[1]

    浏览器访问谷歌网站 -->>
    浏览器根据系统代理设置中的PAC(或者代理管理扩展设置)判断谷歌域名要走代理-->>
    浏览器将网站连接信息发送给 127.0.0.1 1080 SSR的本地监听地址 -->>
    SSR 收到信息后,开始代理规则判断(绕过局域网和非大陆) -->>
    SSR 先通过代理服务器的DNS获取域名的无污染解析IP -->>
    然后再判断IP是否为大陆IP,不是,所以最后结果为:直连。

    Reference

    [1] ShadowsocksR PC客户端中的 [代理规则 – 用户自定义] 功能使用教程, Toyo, https://doubibackup.com/3we1qxzj-7.html


Log in to reply