socks 属于会话层,用于进行会话连接,基于与socket,和tls类似的
1,客户端发送数据前先连接代理服务器,建立会话,此时只用知道代理ip:port
2,需要认证进行认证(socks5的功能)
3,客户端给代理发送链接命定,指定目标ip:port,代理服务器做链接目标服务器 ,并返回结果(有规范)https://www.ietf.org/rfc/rfc1928.txt,属于socket,会话层操作
3,认证,链接后,即可发送正常数据,不需要做其他的操作,目的ip:port为代理的地址,数据不用变,此前已建立连接了,代理服务器收到后会直接转发 。(此时代理服务器类似透明代理)
https://www.ddhigh.com/2019/08/24/socks5-protocol.html

Http代理用户发送的请求头会变化,代理服务器收到也会做修改。

  1. 代理需要:ip:port ,上述是手动代理,
  2. 透明代理:client网关指向proxy,不用配置ip,此时proxy内部应该还有个代理服务,监听一个端口,
    1. 因此透明代理就是,把自己收到的ip判断下,目的ip是不是自己,若是自己,表示访问自己的服务,
    2. 若不是,表示可能需要代理,就把**数据(TCP数据)**转给自己的代理程序监听的端口。


  3. 此时的IP数据包(源IP:源port,目的ip:目的port,数据),转发给给代理程序,代理程序socket会使用getsocketopt获取目的ip,主要是IP_TRANSPARENT的作用,它使得socket可以监听任何ip,即使不是本机的,实现了即使目的不是本机,也可建立tcp链接,

    1. 然后代理进行目的链接,一般都是将这两个链接绑定到一起的,看起来proxy不存在似的
    2. 现存的各种工具,其实不是vpn,vpn重在安全,只是也可以达到科学上网的功能,但vpn的几种方法都是加密ip包,重新封装,到目的网关解开(大多都需要vpn server支持),特征明显。
    3. 而其他的那些只是代理,用客户端在tcp中混淆请求,服务端解开,重在穿透,但不安全


标签: none

评论已关闭