我正在本地笔记本上运行一个golang应用程序,它与kubernetes集群中的Service连接。为了允许我的笔记本电脑和Kubernetes集群上的Service之间的通信,我设置了Socks5代理,并能够通过CURL命令连接所有服务。
但我无法在Golang应用程序中设置相同的代理。我已经尝试过各种选择了
- http\_proxy
- https\_proxy
- all\_proxyfunc InsecureTLSTransport() *http.Transport {
// START - Only for Proxy - Dev Mode.
var dialer, err = proxy.SOCKS5("socks5", "<IP:port>", nil, proxy.Direct)
if err != nil {
fmt.Fprintln(os.Stderr, "can't connect to the proxy:", err)
}
return &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
Dial: dialer.Dial,
}
}我希望socks5代理在运行时被我的golang应用程序使用。有什么建议吗?
发布于 2021-08-31 11:24:03
您应该在网络参数中使用tcp而不是socks5。
package main
import (
"fmt"
"golang.org/x/net/proxy"
)
func main() {
d, err := proxy.SOCKS5("tcp", "<IP:port>", nil, proxy.Direct) // <-- here
if err != nil {
fmt.Println(err)
return
}
c, err := d.Dial("tcp", "https://google.com")
if err != nil {
fmt.Println(err)
return
}
defer c.Close()
}https://stackoverflow.com/questions/68983804
复制相似问题