创建本地HTTP CONNECT代理以在Go中使用远程HTTPS代理

时间:2019-06-20 10:20:41

标签: http go https proxy firewall

我想使用HTTPS CONNECT代理来代理AnyDesk。问题在于它不支持HTTPS CONNECT,仅支持HTTP。所以我想创建一个本地代理,它将“升级” CONNECT到与我的远程代理的HTTPS连接。我在下面说明了这一点:

diagram

我可以使用Go来实现吗?

编辑:如评论中的建议,我使用了一个普通的TCP侦听器,如下所示:

l, _ := net.Listen("tcp", "localhost:3000")
for {
    src, _ := l.Accept()
    go func() {
        dst, _ := tls.Dial("tcp", "proxy:443", nil)

        go io.Copy(src, dst)
        io.Copy(dst, src)
    }()
}

虽然可以正常工作,但在AnyDesk成功建立连接之前会有2分钟的延迟。使用网络浏览器不会出现此类问题。可能是什么问题?

0 个答案:

没有答案