Go: x / net / proxy: resultados não SOCKS ALL_PROXY em proxy: esquema desconhecido: http

Criado em 16 ago. 2016  ·  3Comentários  ·  Fonte: golang/go

Se a variável de ambiente ALL_PROXY for definida como um endereço não SOCKS, isso resultará em proxy: unknown scheme: http quando, em vez disso, deveria ignorá-lo.

  1. Qual versão do Go você está usando ( go version )?
    go1.6.3 via docker
  2. Qual sistema operacional e arquitetura de processador você está usando ( go env )?
    windows / amd64
  3. O que você fez?
    Tenha uma variável de ambiente http ALL_PROXY definida e tente executar o Docker Toolbox, por exemplo, docker run hello-world
  4. O que você esperava ver?
    O Docker deve funcionar bem, Go deve ignorar variáveis ​​de ambiente não SOCKS ALL_PROXY
  5. O que você viu em vez disso?
    O Docker não funciona porque a variável de ambiente não SOCKS ALL_PROXY não é ignorada. O erro pode ser rastreado até https://github.com/golang/net/blob/master/proxy/proxy.go#L93.

Solução alternativa: execute unset ALL_PROXY ao obter um erro.

Comentários muito úteis

Eu não posso acreditar que isso ainda está aberto.

Todos 3 comentários

Não tenho 100% de certeza, mas você tem certeza de que definir ALL_PROXY para um protocolo http ou https faz sentido? Pode haver tráfego não HTTP que deseja passar pelo proxy.

Eu não posso acreditar que isso ainda está aberto.

@nathanleclaire Acho que você mesmo deve registrar o Tipo de discador: https://godoc.org/golang.org/x/net/proxy#RegisterDialerType

Leia mais aqui e aqui:
http://blog.ralch.com/articles/network-programming-and-proxies-in-golang/
https://gist.github.com/jim3ma/3750675f141669ac4702bc9deaf31c6b

Mas também não tenho certeza e estou tentando configurar um proxy para discadores TCP. As modificações do cliente HTTP são muito fáceis:
http.DefaultTransport = &http.Transport{Proxy: http.ProxyURL(proxyURL)}

Mas usar net.Dial e net.DialTimeout é menos direto com um esquema de proxy não SOCKS5.

Esta página foi útil?
0 / 5 - 0 avaliações