使用golang的socket5做正向代理,如何做链式?

背景:有个场景需要使用链式的正向代理(工作优化场景,不是什么奇怪的功能),目前已经使用ssh 隧道实现,不过在此之前想用的是socket5,请大佬指教,如何做链式client把请求变成socket5丢给服务器A,A接收到后转发给B,B再去真正访问
网上一般都是一层代理的代码,这很简单也很好实现,但如果是链式代理应该怎么做?
如下是一层的

package main

import (
  "flag"
  "fmt"
  "log"

  "github.com/armon/go-socks5"
)

func main() {
  var port int
  flag.IntVar(&port, "port", 58888, "Port for the proxy server")
  flag.Parse()

  // 创建 SOCKS5 服务器实例
  conf := &socks5.Config{}
  server, err := socks5.New(conf)
  if err != nil {
    log.Fatalf("Failed to create SOCKS5 server: %v", err)
  }

  // 监听并处理请求
  addr := fmt.Sprintf(":%d", port)
  log.Printf("SOCKS5 proxy server started on port %d\n", port)
  if err := server.ListenAndServe("tcp", addr); err != nil {
    log.Fatalf("Failed to start SOCKS5 server: %v", err)
  }
}

阅读 683
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏