创建一个 go socks5 客户端

所以我正在查看net/proxy文档,但根本没有关于如何使用其任何方法的示例。我正在考虑使用socks5。这是函数的外观:

func SOCKS5(network, addr string, auth *Auth, forward Dialer) (Dialer, error)

现在一切都说得通了,除了我对forward哪个是类型Dialer和函数本身返回一个Dialer. 其他一切network, add, auth都有意义只是向前让我失望。我将如何设置我的客户端以使用 socks5 拨号器?


胡说叔叔
浏览 183回答 3
3回答

江户川乱折腾

所以我能够找到我的问题的答案,任何人都对如何在 go 中设置 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 clientmyClient := &http.Client{    Transport: tr,}

慕沐林林

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

冉冉说

如果您需要带有身份验证的socks5 客户端代理,您可以使用以下内容:auth := proxy.Auth{    User:     "YOUR_PROXY_LOGIN",    Password: "YOUR_PROXY_PASSWORD",}dialer, err := proxy.SOCKS5("tcp", "PROXY_IP", &auth, proxy.Direct)if err != nil {    fmt.Fprintln(os.Stderr, "can't connect to the proxy:", err)}tr := &http.Transport{Dial: dialer.Dial}myClient := &http.Client{    Transport: tr,}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go