关于酸酸乳和v2的代理研究
摘要:渗透之前挂梯子挂梯子,到底挂梯子有用没用是个问题
Shadowsocks
相关选项
系统代理
- 禁用:所有流量都不会被发送到服务端。
- 全局模式:所有流量都会被发送到服务端。
- PAC模式:在Shadowsocks的安装目录下你会发现有两个文件user-rule.txt和pac.txt。其中pac.txt就是PAC模式用到的规则。
PAC模式
- 编辑GFWList的用户规则:就是编辑user-rule.txt。向user-rule.txt文件写入内容没什么用,必须写入后选择"从GFWLIST更新本地PAC"选项才能使规则生效。
- 从GFWLIST更新本地PAC:不推荐直接改pac.txt而是推荐更改user-rule.txt然后使用"从GFWLIST更新本地PAC"选项,更改pac.txt。此时user-rule.txt的内容会被添加到pac.txt中的__USERRULES__ 变量中。同时pac.txt中__USERRULES__ 记录的规则优先于__RULES__中记录的规则,表现在__USERRULES__ 里的规则,允许某个域名使用代理服务器,那这个域名就必须使用代理服务器。如果禁止某个域名使用代理服务器,那这个域名就不能使用代理服务器。而且__USERRULES__ 和__RULES__中的规则并不是按防火墙里的acl规则按先后顺序,而是如果出现禁止某个域名使用代理服务器那这个域名就不能使用代理服务器。即使允许规则在拒绝规则之前也不行。(可以参考PAC优先级问题,会导致的困扰)
正向代理
- 正向代理:没有合适的socket5服务端没试过(当ssr服务器使用插件时是不会经过正向代理的)。
参考:PAC模式与正向代理的问题 · Issue #2150 · shadowsocks/shadowsocks-windows
“允许来自局域网的连接”以及“正向代理”的设置问题 · Issue #1080 · shadowsocks/shadowsocks-windows
流量的转发机制
- pac.txt决定了流量是否被转发到代理服务器,除非浏览器直接使用socket5。
- 当浏览器通过socket5直接连接到Shadowsocks规则时,流量全部发送到服务端,不会经过pac规则。
流量流程图
shadowsocksR
相关选项:
系统代理模式
- 直连模式:禁用,所有流量都不会被发送到服务端。
- 全局模式:所有流量都会被发送到服务端。
- PAC:在ShadowsocksR的安装目录下你会发现有三个文件user.rule,user-rule.txt和pac.txt。其中pac.txt就是PAC模式用到的规则。
PAC
编辑GFWList的用户规则:应该是和Shadowsocks相同的,这里不在重复。
代理规则
"用户自定义:"勾选时会自动读取在ShadowsocksR的安装目录下user.rule文件,作为用户自定义的代理规则,空的user.rule 文件等于全局模式(所有域名/IP走代理)。
当选择"用户自定义"时的流量匹配顺序:
┏━ SSR客户端 代理规则选择:用户自定义(你已经配置好了规则),然后 SSR客户端 会去代理规则中匹配 域名:
┃
┗┳━ 如果匹配域名规则 返回结果为直连,那么就直连不走代理(将不再继续 IP判断)。
┃
┣━ 如果匹配域名规则 返回结果为走代理,那么就直接走代理(将不再继续 IP判断)。
┃
┗━ 如果匹配域名规则 没有返回结果(就是没找到相应规则),那么就会去 SSR服务端 请求域名的 DNS解析,得到 IP 后,再继续匹配 IP规则:
┃
┗┳━ 如果匹配IP规则 返回结果为直连,那么就直连不走代理。
┃
┣━ 如果匹配IP规则 返回结果为走代理,那么就直接走代理。
┃
┗━ 如果匹配IP规则 没有返回规则(没有找到相应规则),那么就直接走代理。所以,空的 user.rule 文件等于全局模式(所有域名/IP走代理)。
流量的转发机制
先通过pac,pac通过了,在通过user.rule 。 user.rule里面后一条规则可覆盖前一条规则(即最后面的一条规则有效)。user.rule决定了流量是否被发送到代理服务器。
当设置了前置代理服务器时除了直连模式,其他都会经过前置代理服务器。只不过没通过代理规则的,直接通过前置代理服务器。通过代理规则的由前置服务器发送到代理服务器。
流量流程图
关于ssr流量设计的拓展
详情可以见:“允许来自局域网的连接”以及“正向代理”的设置问题 · Issue #1080 · shadowsocks_shadowsocks-windows.pdf
v2ray
相关选项
流量的转发机制
以下摘自github:
流量先经过了pac过滤一遍,然后再v2ray过滤一遍。域名如果已经被pac放行了,就不会再流入v2ray。所以在这里设置没生效,你可以尝试把域名写到最新v2rayN客户端的用户pac设置里。先理解浏览器-->pac过滤->v2ray路由这样一个管道流向。
首先pac并不是v2ray-core的功能,pac只是v2rayN客户端加上,方便浏览器等支持自动pac代理的软件使用的。很多软件是没法支持pac的,那些软件需要设置http代理或者sock5代理为v2ray-core的代理端口,这样就有个问题,这些软件的流量全部被代理了,国内流量被代理就很慢。所以v2ray-core自己实现了路由规则,我们可以自己设置灵活的路由规则,甚至可以选择ban到bt流量。如果你仅仅需要浏览器分流的话,pac+用户自定义pac足够了,v2ray-core这里的路由规则可以无需修改。
摘自:V2RayN客户端直连设置不生效,域名依旧走了代理 · Issue #300·v2ray/discussion
一些参考文档
ShadowsocksR PC客户端中的[代理规则 – 用户自定义]功能使用教程 – LOG@X.X.B.pdf
V2RayN客户端直连设置不生效,域名依旧走了代理·第300期·v2ray _讨论.pdf
PAC模式与正向代理的问题 · Issue #2150 · shadowsocks_shadowsocks-windows.pdf
“允许来自局域网的连接”以及“正向代理”的设置问题 · Issue #1080 · shadowsocks_shadowsocks-windows.pdf
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。