gpt4 book ai didi

tcp - 了解 SOCKS5 协议(protocol) RFC

转载 作者:可可西里 更新时间:2023-11-01 02:45:11 30 4
gpt4 key购买 nike

我正在阅读 SOCKS5 RFC ,它有:

CONNECT

In the reply to a CONNECT, BND.PORT contains the port number that the server assigned to connect to the target host, while BND.ADDR contains the associated IP address. The supplied BND.ADDR is often different from the IP address that the client uses to reach the SOCKS server, since such servers are often multi-homed. It is expected that the SOCKS server will use DST.ADDR and DST.PORT, and the client-side source address and port in evaluating the CONNECT request.

对于本段的最后一部分,我有两个问题:

  1. 文档指出 SOCKS 服务器通常是多宿主的,并且会回复客户端与客户端最初连接到的绑定(bind)地址和端口不同的绑定(bind)地址和端口。这是否意味着客户端连接到的 SOCKS 服务器将连接重定向到另一个 SOCKS 服务器?如果是这样,让客户端感知重定向的 SOCKS 服务器的存在有什么意义?客户端通常会如何处理 SOCKS 服务器回复的绑定(bind)地址和端口?
  2. 文档指出预计SOCKS 服务器将使用DST.ADDR 和DST.PORT,以及评估CONNECT 请求时的客户端源地址和端口,究竟是什么意思通过评估 CONNECT 请求?如果我要实现 SOCKS 服务器,我应该在这个评估过程中做什么?

最佳答案

  1. SOCKS 代理是多宿主的,因为它们通常安装在防火墙等网络边界处。客户端连接到防火墙的内部接口(interface),但传出地址是外部接口(interface)。由于某些协议(protocol)(如 FTP)需要包含外部可见 IP 地址和带内端口(请参阅 FTP 数据传输,即 PORT 和 PASV),它们需要知道此外部可见 IP 和端口。
  2. 普通的 socks 代理将连接到客户端想要的地方,即 DST。但是,当配置了上游代理时,或者当防火墙 ACL 表示不同时,代理的行为可能会有所不同。

关于tcp - 了解 SOCKS5 协议(protocol) RFC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36809380/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com