Go: x/net/proxy: Non-SOCKS ALL_PROXY menghasilkan proxy: skema tidak diketahui: http

Dibuat pada 16 Agu 2016  ·  3Komentar  ·  Sumber: golang/go

Jika variabel lingkungan ALL_PROXY disetel ke alamat non-SOCKS, ia menghasilkan proxy: unknown scheme: http padahal seharusnya mengabaikannya.

  1. Versi Go apa yang Anda gunakan ( go version )?
    go1.6.3 melalui buruh pelabuhan
  2. Sistem operasi dan arsitektur prosesor apa yang Anda gunakan ( go env )?
    windows/amd64
  3. Apa yang kamu lakukan?
    Setel variabel lingkungan http ALL_PROXY dan coba jalankan Docker Toolbox, misalnya docker run hello-world
  4. Apa yang Anda harapkan untuk dilihat?
    Docker seharusnya berfungsi dengan baik, Go harus mengabaikan variabel lingkungan non-SOCKS ALL_PROXY
  5. Apa yang Anda lihat sebagai gantinya?
    Docker tidak berfungsi karena variabel lingkungan ALL_PROXY non-SOCKS tidak diabaikan. Kesalahan dapat ditelusuri kembali ke https://github.com/golang/net/blob/master/proxy/proxy.go#L93.

Solusi: Jalankan unset ALL_PROXY ketika Anda mendapatkan kesalahan.

Komentar yang paling membantu

Aku tidak percaya ini masih terbuka.

Semua 3 komentar

Saya tidak 100% yakin, tetapi apakah Anda yakin menyetel ALL_PROXY ke protokol http atau https masuk akal? Mungkin ada lalu lintas non-HTTP yang ingin melewati proxy.

Aku tidak percaya ini masih terbuka.

@nathanleclaire Saya pikir Anda harus mendaftarkan Dialer Type sendiri: https://godoc.org/golang.org/x/net/proxy#RegisterDialerType

Baca lebih lanjut di sini dan di sini:
http://blog.ralch.com/articles/network-programming-and-proxies-in-golang/
https://Gist.github.com/jim3ma/3750675f141669ac4702bc9deaf31c6b

Tetapi saya juga tidak yakin dan dalam proses mencoba mengatur proxy untuk dialer TCP. Modifikasi klien HTTP sangat mudah:
http.DefaultTransport = &http.Transport{Proxy: http.ProxyURL(proxyURL)}

Tetapi menggunakan net.Dial dan net.DialTimeout tidak begitu mudah dengan skema proxy non-SOCKS5.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat