Golang tcp-tls over socks5 代理客户端

我通过创建拨号器


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")用来连接服务器?


我的环境:


操作系统:Windows 10 x64

Golang:1.16(无 CGO)

任何帮助将不胜感激:) 第一次在 SOF 中提问,如果我错过了某事,请告诉我 :)


慕的地8271018
浏览 317回答 1
1回答

至尊宝的传说

拨号器用于建立连接 - 但只需建立一个连接。使用 proxyDialer 创建连接,然后在 proxyDialer 提供的连接上使用 tls.Client 将其“升级”为 tls.Conn。只需将代理连接“升级”到 tlsproxyDialer, err := proxy.SOCKS5("tcp", "proxyserver:1080", nil, proxy.Direct)conn, err = proxyDialer.Dial("tcp", "server:port")conn = tls.Client(conn, &tls.Config{InsecureSkipVerify: true})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go