创建一个go socks5客户端

Rod*_*igo 6 go socks

所以我正在查看net/proxy文档,并且没有任何示例可以使用它的任何方法.我正在研究使用socks5.这是函数的外观:

func SOCKS5(network, addr string, auth *Auth, forward Dialer) (Dialer, error)
Run Code Online (Sandbox Code Playgroud)

现在一切都有意义,除非我对forward哪个类型Dialer和函数本身返回一个感到困惑Dialer.其他任何有意义的事情就是让network, add, auth我失望.如何设置我的客户端以使用socks5拨号器?

Rod*_*igo 10

所以我能够找到我的问题的答案,任何有兴趣如何设置socks5客户端的人都会在这里:

dialSocksProxy, err := proxy.SOCKS5("tcp", "proxy_ip", nil, proxy.Direct)
if err != nil {
    fmt.Println("Error connecting to proxy:", err)
}
tr := &http.Transport{Dial: dialSocksProxy.Dial}

// Create client
myClient := &http.Client{
    Transport: tr,
}
Run Code Online (Sandbox Code Playgroud)

  • 拨号在1.10中已弃用.我如何获得DialContext? (2认同)

lik*_*ike 7

最近版本的 Go 还通过HTTP_PROXY环境变量支持 SOCKS5 代理。您可以http.Client像往常一样编写代码,然后在运行时设置环境变量,例如:

HTTP_PROXY="socks5://127.0.0.1:1080/" ./myGoHttpClient
Run Code Online (Sandbox Code Playgroud)