背景:有个场景需要使用链式的正向代理(工作优化场景,不是什么奇怪的功能),目前已经使用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)
}
}
。