Go: x/net/proxy:非 SOCKS ALL_PROXY 导致代理:未知方案:http

创建于 2016-08-16  ·  3评论  ·  资料来源: golang/go

如果ALL_PROXY环境变量设置为非 SOCKS 地址,则会导致proxy: unknown scheme: http而应该忽略它。

  1. 您使用的是哪个版本的 Go ( go version )?
    通过 docker go1.6.3
  2. 您使用的是什么操作系统和处理器架构( go env )?
    窗户/amd64
  3. 你做了什么?
    设置一个 http ALL_PROXY环境变量并尝试运行 Docker Toolbox,例如docker run hello-world
  4. 你期待看到什么?
    Docker 应该可以正常工作,Go 应该忽略非 SOCKS ALL_PROXY环境变量
  5. 你看到了什么?
    Docker 不起作用,因为未忽略非 SOCKS ALL_PROXY环境变量。 错误可以追溯到https://github.com/golang/net/blob/master/proxy/proxy.go#L93。

解决方法:出现错误时运行unset ALL_PROXY

最有用的评论

我不敢相信这仍然是开放的。

所有3条评论

我不是 100% 确定,但是您确定将ALL_PROXY设置为httphttps协议有意义吗? 可能有非 HTTP 流量想要通过代理。

我不敢相信这仍然是开放的。

@nathanleclaire我认为您必须自己注册拨号器类型: https : //godoc.org/golang.org/x/net/proxy#RegisterDialerType

在此处和此处阅读更多信息:
http://blog.ralch.com/articles/network-programming-and-proxies-in-golang/
https://gist.github.com/jim3ma/3750675f141669ac4702bc9deaf31c6b

但我也不确定,正在尝试为 TCP 拨号程序设置代理。 HTTP 客户端修改非常简单:
http.DefaultTransport = &http.Transport{Proxy: http.ProxyURL(proxyURL)}

但是对于非 SOCKS5 代理方案,使用net.Dialnet.DialTimeout就不那么简单了。

此页面是否有帮助?
0 / 5 - 0 等级