Если для переменной среды ALL_PROXY
задан адрес, отличный от SOCKS, это приводит к proxy: unknown scheme: http
когда вместо этого следует игнорировать его.
go version
)?go env
)?ALL_PROXY
и попробуйте запустить Docker Toolbox, например docker run hello-world
ALL_PROXY
ALL_PROXY
SOCKS https://github.com/golang/net/blob/master/proxy/proxy.go#L93.Обходной путь: запустите unset ALL_PROXY
при появлении ошибки.
Я не уверен на 100%, но уверены ли вы, что установка ALL_PROXY
в протокол http
или https
имеет смысл? Может быть трафик, который не является 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)}
Но использование net.Dial
и net.DialTimeout
менее просто для схемы прокси, отличной от SOCKS5.
Самый полезный комментарий
Не могу поверить, что это все еще открыто.