我通过创建拨号器
dialer := &net.Dialer{}
和一个 TLS 拨号器tlsDialer := &tls.Dialer{
NetDialer: dialer,
Config: &tls.Config{InsecureSkipVerify: true},
}
然后我使用创建一个 socks5 代理拨号器proxyDialer, err := proxy.SOCKS5("tcp", "127.0.0.1:1080", nil, proxy.Direct)
如何通过 socks5 代理连接远程服务器?换句话说,如何按照
net.Dialer->tls.Dialer->proxy.Dialer
的顺序嵌套三个拨号器最后使用 proxyDialer.Dial("tcp", "remote:port")
连接服务器?我的环境:
任何帮助将不胜感激 :)
第一次在 SOF 提问,如果我错过了某事,请告诉我 :)
最佳答案
感谢 @Steffen Ullrich
拨号器用于建立连接 - 但只需建立一个连接。使用 proxyDialer 创建连接,然后在 proxyDialer 提供的连接上使用 tls.Client 将其“升级”为 tls.Conn。
只需将代理连接“升级”到 tls
proxyDialer, err := proxy.SOCKS5("tcp", "proxyserver:1080", nil, proxy.Direct)
conn, err = proxyDialer.Dial("tcp", "server:port")
conn = tls.Client(conn, &tls.Config{InsecureSkipVerify: true})
关于Golang tcp-tls over socks5 代理客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71182538/