Golang tcp-tls over socks5 代理客户端

Golang tcp-tls over socks5 proxy client

我通过

创建了一个拨号器
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})