Node 的 socks 包使用 SocksClient 实例并通过 command: 'associate' 来处理 UDP。它便捷的 SocksClient.createConnection() 工厂方法处理的则是 TCP CONNECT。

项目中的关联示例把 SOCKS 客户端与一个独立的本地 UDP 套接字结合起来:

  1. 建立 UDP ASSOCIATE,并保留其 TCP 控制连接。
  2. 读取服务器返回的中继主机和端口。
  3. 使用 createUDPFrame() 将传出负载与其目标地址一起封装成帧。
  4. 把数据报发送给中继,然后在交付负载给应用之前,对传入的中继帧使用 parseUDPFrame()。

Node 的 dgram 套接字提供 UDP 传输;它并不解析 SOCKS URL。关联与分帧在这些数据报周围提供代理协议。

服务器必须支持 UDP,并且中继端点必须可达。成功连接到初始代理端口并不检验这条路径。不再需要该关联时,请关闭控制资源和 UDP 资源。

相关文章