Indy 的零 UDP ASSOCIATE 地址不是数据报的目标
区分客户端关联地址、返回的 SOCKS 中继以及每个 UDP 包中编码的目标。
Indy UDP ASSOCIATE 请求中的 0.0.0.0:0 可能是有意为之。该请求描述客户端一侧预期的 UDP 端点,RFC 1928 允许在未知时使用零值。它并不选择最终服务。
响应中的 BND.ADDR/BND.PORT 指明客户端将封装数据报发送到的中继。
TCP control: client → SOCKS5 proxy → UDP association reply
UDP payload: client → returned relay address → target service在 Indy 中,TIdUDPClient.Connect 调用透明代理的 OpenUDP。TIdSocksInfo 提供零值关联字段。随后 SendBuffer 把所需服务交给 SendToUDP,后者在应用负载之前构造 SOCKS UDP 目标头。
如果关联成功但流量失败,请检查返回的中继、编码的目标以及 UDP 回程路径。NAT/防火墙可能放行 TCP 交换却阻断 UDP。
保持 TCP 控制连接打开;关闭它会结束关联。SOCKS4/4a 没有此操作,仅凭 SOCKS5 名号并不能保证服务器支持 UDP。