关于代理的一些理解,请大家帮我看下对不对

2023-03-27 17:46:55 +08:00
 yezheyu

之前对代理一直半懂不懂,对于如何设置代理软件,一直玩不太明白

今天看了些文档,感觉代理的主要功能就是消息转发。

我按照个人的理解画了个图,大家帮我看看,我的理解有偏差吗?

2396 次点击
所在节点    程序员
10 条回复
kop1989smurf
2023-03-27 17:49:25 +08:00
中间还差了一个拦截的过程。

严格意义上讲,开了代理软件以后,所有的 http 请求都会走代理,只不过有的被分配到 direct ,有的被分配到走节点( PAC/规则模式)。
kop1989smurf
2023-03-27 17:50:04 +08:00
勘误:“开了代理软件以后” => “打开了代理软件的系统代理模式以后”
cnuser002
2023-03-27 18:12:57 +08:00
没毛病啊。
NoOneNoBody
2023-03-27 18:57:30 +08:00
没太大毛病
如果只是“玩”(用),也没必要理解得太透彻,搞清每个步骤的进|出协议就够了,中间怎么换就交给软件完成

就如穿几件衣服,不穿别人能直接看到皮肉,穿哪一件在最外面,看到的就是那件的样子
这几件衣服码号是相同或相近的,因为你的身体尺寸摆在那,但具体每一件,拿尺子量还是不同的,因为外套总要考虑里面有其他衣服的厚度

如果几个工具,一个端口接另一个,就是串联,如果没有接起来,就是并联或者独立
你可以在 socket 和 browser 之间再加一个,做其他工作,例如拦截某些域名不发送或者不接收,当防火墙用也行
leafin
2023-03-27 19:06:42 +08:00
socks5 协议是浏览器到代理客户端的协议,客户端到服务器的协议是各种自定义的代理协议
josephxrays
2023-03-28 01:02:11 +08:00
一般来说 socks5 客户端和服务端均在本地实现,因为 socks5 是明文传输的。
以 shadowsock 为例,一般分为 ss-local 和 ss-server ,具体的请求流程是:本地浏览器 /用户程序 -> 本地 ss-local(实现 socks 服务器,监听来自 socks 客户端的请求,当然也可以监听 http 请求) --(走 shadowsock 协议)--> ss-server -> 目标服务器(比如 Google )
sillydaddy
2023-03-28 09:39:46 +08:00
对,就是转发。如果关注隐私的话,还要稍微深入了解一下,比如如果 proxy server 被黑客登录了,那么黑客能不能拿到你的访问记录,或者换个说法,如果你用了别人的机场,他能否看到你的浏览记录。
Hccake
2023-03-28 17:01:59 +08:00
1. 本机的代理工具,以下简称 client, 一般同时支持 http 代理和 socks5 代理,所以浏览器到 client 之间可以是 http 协议也可以是 socks5 协议,取决于你的配置。

2. client 和 proxy server 之间可以使用各种自定义协议,如 ss 、trojan 等,几乎不会使用 socks5 ,因为 socks5 是明文协议,特征明显,分分钟被 ban.

全流程就是:浏览器将流量发送到 proxy client ,client 接收流量后根据对应的代理协议对原始流量进行包装,并转发到 proxy server, proxy server 接收到数据后再其解包获得原始流量,转发到最终目标地址。
yezheyu
2023-03-28 19:52:56 +08:00
@Hccake @kop1989smurf @NoOneNoBody @josephxrays @sillydaddy 首先谢谢大家!

所以,如果浏览器到 proxy client 之间如果使用的 socks5 ,是谁把原本用户使用浏览器发出的 http 请求转换成 socks5 呢?

是 switchyomega 这个插件吗?那这个 switchyomega 实际上也是扮演着一个微型的代理角色是吗?

而在代理软件上,一般我们也可以进行流量的访问控制,所以我们可以把 PAC 写在 switchyomega ,也可以写在 shadowsocks 上对吗?


游戏加速器也是类似这种架构吗?

加速器软件代理游戏发出的 UDP 请求,通过自己的专线发给国外的代理服务器,再交给游戏服务器。收到数据后再原路返回
Hccake
2023-03-28 21:24:43 +08:00
switchyomega 插件应该只是管理浏览器的代理行为,控制浏览器要不要走代理,走哪个代理,具体的流量请求行为应该是 chrome 内核处理的,所以浏览器才是所谓的 socks5 client 。

proxy client 是个中转服务,肩负多重角色,对于浏览器来说,它是 socks5 server, 对于代理服务器来说,它是代理客户端。

switchyomega 和 proxy client 都可以实现流量的转发控制。

游戏加速器基本流量转发流程一致,主要是多了一个针对指定游戏的流量处理。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/927612

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX