Wenn die Umgebungsvariable ALL_PROXY
auf eine Nicht-SOCKS-Adresse gesetzt ist, führt dies zu proxy: unknown scheme: http
obwohl sie stattdessen ignoriert werden sollte.
go version
)?go env
)?ALL_PROXY
Umgebungsvariable und versuchen Sie, Docker Toolbox auszuführen, zB docker run hello-world
ALL_PROXY
Umgebungsvariable ignorierenALL_PROXY
nicht ignoriert wird. Der Fehler kann auf https://github.com/golang/net/blob/master/proxy/proxy.go#L93 zurückverfolgt werden Problemumgehung: Führen Sie unset ALL_PROXY
wenn Sie einen Fehler erhalten.
Ich bin mir nicht 100% sicher, aber sind Sie sicher, dass es sinnvoll ist, ALL_PROXY
auf ein http
oder https
Protokoll zu setzen? Möglicherweise gibt es Datenverkehr, der nicht HTTP ist und den Proxy passieren möchte.
Ich kann nicht glauben, dass das noch offen ist.
@nathanleclaire Ich denke, Sie müssen den Dialer-Typ selbst registrieren: https://godoc.org/golang.org/x/net/proxy#RegisterDialerType
Lesen Sie hier und hier mehr:
http://blog.ralch.com/articles/network-programming-and-proxies-in-golang/
https://gist.github.com/jim3ma/3750675f141669ac4702bc9deaf31c6b
Aber ich bin mir auch nicht sicher und versuche gerade, einen Proxy für TCP-Dialer einzurichten. HTTP-Client-Modifikationen sind verrückt einfach:
http.DefaultTransport = &http.Transport{Proxy: http.ProxyURL(proxyURL)}
Aber die Verwendung von net.Dial
und net.DialTimeout
ist bei einem Nicht-SOCKS5-Proxy-Schema weniger einfach.
Hilfreichster Kommentar
Ich kann nicht glauben, dass das noch offen ist.