在 RFC 1928 中,它指出:
预计 SOCKS 服务器将使用 DST.ADDR 和 DST.PORT 来评估 BIND 请求。
这是有关
DST
请求上下文中 BIND
字段的唯一信息。也许是客户端想要绑定的主机的地址和端口?如果是这样,服务器是否应该按照
DST
字段中的指定限制与主机的传入连接?
SOCKS v5 的 RFC 1928 没有明确说明在
DST.ADDR
请求中使用 DST.PORT
和 BIND
。然而,SOCKS v5 建立在 SOCKS v4 之上,并且 SOCKS v4 规范确实对此进行了解释:
当来自应用服务器的预期连接建立时,SOCKS 服务器向客户端发送第二个回复数据包。 SOCKS 服务器根据客户端 BIND 请求中指定的 DSTIP 值检查始发主机的 IP 地址。 如果发现不匹配,则第二个回复中的 CD 字段将设置为 91,并且 SOCKS 服务器将关闭两个连接。如果两者匹配,则第二个回复中的 CD 设置为 90,并且 SOCKS 服务器准备好在其两个连接上中继流量。从那时起,客户端在与 SOCKS 服务器的连接上进行 I/O,就像直接连接到应用程序服务器一样。