You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tor SOCKS5返回全零BND.ADDR与BND.PORT问题咨询

问题解答

很多人第一次碰到这个返回会误以为是Tor的Bug,但实际上这个行为完全符合SOCKS5的RFC 1928规范,属于Tor的标准实现逻辑。

根据SOCKS5协议标准,客户端发送CONNECT请求后,服务端返回成功响应(响应码0x00)时携带的绑定地址(BND.ADDR)、绑定端口字段,仅用于告知客户端「服务端和目标主机建立连接时使用的源地址信息」,协议本身从来没有要求客户端必须使用、校验这个字段的内容。

Tor作为匿名代理,核心设计目标就是隐藏代理侧的连接细节:它不会把出口节点的真实IP、本地建立出站连接的实际地址暴露给客户端,因此直接在绑定地址字段填充全零0.0.0.0、端口字段填0是刻意做的实现选择,不会对后续隧道通信造成任何影响。

  • 你收到的响应{5,0,0,1,0,0,0,0,0,0}里,第二个字节是0就已经代表SOCKS5协商全流程成功,当前TCP套接字已经是直连目标站点的可用隧道,不需要解析后续的绑定地址内容
  • 无论你是把域名传给Tor做远程解析,还是本地解析完IPv4地址再传给Tor,只要连接建立成功,Tor都会返回全零的绑定地址,这个行为和启动参数、数据目录是否为tmpfs、Arch源的软件包版本都没有关系——你测试直接执行tor命令启动也出现相同现象,已经可以排除环境异常的可能
  • 你在这个套接字上发送HTTP请求能拿到正常响应,就是该行为无功能性影响的直接证明

写SOCKS5客户端逻辑的时候需要注意:只要CONNECT响应的返回码为成功,就可以直接在当前套接字上发送应用层请求,不要额外校验绑定地址必须为非零地址,否则会把Tor这类合规代理的正常响应误判为连接失败。


内容的提问来源于stack exchange,提问作者Halid Beslic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 06:09:24