登录
首页 >  Golang >  Go问答

使用Golang的tcp-tls库连接socks5代理客户端

来源:stackoverflow

时间:2024-02-15 16:09:23 108浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《使用Golang的tcp-tls库连接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 的顺序嵌套三个 dialer,最后使用 proxydialer.dial("tcp", "remote:port") 连接服务器?

我的环境:

  • 操作系统:windows 10 x64
  • golang:1.16(无 cgo)

任何帮助将不胜感激:) 第一次在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库连接socks5代理客户端》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>