apt.conf “Adquirir :: http: Proxy” proxyserver: port "parece não ser usado (Ubuntu 13.04 em Virtual Box no Win7)

13

Isto é para uma instalação do Ubuntu 13.04 Desktop em uma VM do VirtualBox. Estou em uma rede corporativa com um proxy HTTP em xyz251: 9090. Eu configurei o sistema operacional convidado com o script de configuração automática, para que o Firefox funcione bem, mas não consigo "apt-get" ou "Ubuntu Software Center" para conectar usando o proxy.

Eu criei o arquivo "/etc/apt/apt.conf", agora ele contém uma única linha de texto:

Acquire::http:Proxy "http://x.y.z.251:9090"

que é o arquivo proxy.pac que especifiquei em "Configurações do sistema / Rede / Proxy de rede" e apliquei a todo o sistema.

Quando uso o Firefox, um rastreamento de pacotes mostra que a conexão TCP é feita através do proxy corporativo na porta 9090, quando executo o "Ubuntu Software Center" e o "apt-get", o rastreamento de pacotes mostra pacotes TCP SYN com o eventual IP de destino endereço e porta 80. Obviamente, não há resposta aos pacotes SYN, pois o firewall corporativo impede que as conexões TCP na porta 80 entrem ou saiam.

Com "sudo apt-get" em uma janela de terminal, eu sempre vejo:

Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/main Translation-en_US
Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/main Translation-en
Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/restricted Translation-en_US
Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/restricted Translation-en
Err http://extras.ubuntu.com raring Release.gpg 
  Could not connect to extras.ubuntu.com:80 (91.189.92.152), connection timed out
Err http://archive.canonical.com raring Release.gpg 
  Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]
Err http://us.archive.ubuntu.com raring Release.gpg 
  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]
Err http://us.archive.ubuntu.com raring-updates Release.gpg
  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]
Err http://us.archive.ubuntu.com raring-backports Release.gpg
  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]
59% [Connecting to security.ubuntu.com (91.189.91.14)]

Eventualmente, eu vejo:

Err http://security.ubuntu.com raring-security Release.gpg
  Cannot initiate the connection to security.ubuntu.com:80 (2001:67c:1360:8c01::18). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::18 80]
Reading package lists... Done                          
W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring-updates/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring-backports/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/raring-security/Release.gpg  Cannot initiate the connection to security.ubuntu.com:80 (2001:67c:1360:8c01::18). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::18 80]

W: Failed to fetch http://archive.canonical.com/ubuntu/dists/raring/Release.gpg  Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]

W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/raring/Release.gpg  Could not connect to extras.ubuntu.com:80 (91.189.92.152), connection timed out

W: Some index files failed to download. They have been ignored, or old ones used instead.

Não tenho certeza do que estou fazendo de errado.

--- Atualização ---- Eu também tentei:

Acquire::http:proxy "http://user:[email protected]:9090/"

"xyz" são, é claro, marcadores de posição; Duvido que o pessoal de segurança do meu empregador me pareça gentil ao publicar os números reais. Não vejo diferença no rastreamento de pacotes - o "apt-get" ainda está usando os endereços IP reais e a porta 80. Cometi um erro deliberado no arquivo apt.conf e o "apt-get" saiu com um erro, por isso estou certo de que ele vê esta linha de configuração para o proxy, apenas não parece honrá-lo.

Estou usando a conexão de rede "NAT", pois é contra a política de TI aqui fazer a ponte entre redes, e o servidor DHCP fornece apenas endereços para endereços MAC conhecidos. Não quero que a segurança de TI bata no meu cubo (de novo).

Daniel Glasser
fonte
Aprenda algo novo todos os dias. Parece que "/etc/apt/apt.conf" somente é atualizado se você usar a opção de configuração manual de proxy em "Configurações do sistema / Rede / Proxy de rede". Depois, entrei e comentei as entradas que fiz nesse arquivo manualmente e desabilitei o IPv6. As entradas criadas pela GUI eram praticamente idênticas às que eu comecei, mas "apt-get" agora funciona. Seria bom poder desativar o IPv6 através da GUI, mas editar "/etc/sysctl.conf" funciona bem. Muito obrigado a @ terry-wang
Daniel Glasser
Você poderia adicionar isso como resposta? Seu problema foi o ipv6, não o proxy configurado incorretamente.
Braiam 27/09/13
Talvez você tenha perdido :mais dois pontos entre httpe Proxy? http::Proxyem vez disso http:Proxy.
Gonmator 27/08/18

Respostas:

18

Com base na minha experiência anterior, o Ubuntu geral (GNOME) não funciona muito bem com o PAC (Configuração Automática). Pac (configuração automática do proxy) é basicamente a lógica JavaScript para determinar o proxy mais próximo ou mais apropriado para você, eu recomendo o uso direto dos servidores proxy (no seu caso, Network - Network Proxy).

Algumas coisas para verificar

Verifique seu /etc/apt/apt.conf

Rede - A GUI do proxy de rede atualizará /etc/apt/apt.confe definirá as informações do proxy.

Descubra as informações do servidor proxy em pac

Você pode encontrar os detalhes lendo o proxy.pacarquivo de qualquer maneira.

Portanto, a /etc/apt/apt.confaparência deve ser a seguir (suponha que o servidor proxy seja => proxy.company.com porta 80), NÃO use o URL pac.

Acquire::http::proxy "http://proxy.company.com:80/";
Acquire::https::proxy "https://proxy.company.com:80/";
Acquire::ftp::proxy "ftp://proxy.company.com:80/";

NOTA: Se nenhum proxy for especificado nos arquivos de configuração do apt, apt-getele retornará à http_proxyvariável de ambiente.

Na página do manual apt.conf, responda ao comentário de @Braiam

   http
       HTTP URIs; http::Proxy is the default http proxy to use. It is in
       the standard form of http://[[user][:pass]@]host[:port]/. Per host
       proxies can also be specified by using the form http::Proxy::<host>
       with the special keyword DIRECT meaning to use no proxies. If no
       one of the above settings is specified, http_proxy environment
       variable will be used.

Verifique as variáveis ​​de ambiente do proxy

Você pode verificar as configurações de proxy executando o seguinte no terminal

echo $http_proxy
echo $https_proxy
echo $ftp_proxy

Se você definir as variáveis ​​env corretamente, deverá poder atualizar na CLI.

Preferir IPv4

Percebi que apt-getestava tentando se conectar aos servidores de atualização usando o endereço IPv6. Isso pode causar problemas (às vezes os endereços IPV6 expiram ou são alterados).

Você pode editar /etc/gai.confe adicionar precedence ::ffff:0:0/96 100para preferir o ipv4 ao ipv6.

Mais detalhes

Terry Wang
fonte
Obrigado pela resposta. O valor que eu coloco em "/etc/apt/apt.conf" é o URI e o soquete reais que vêm do arquivo .pac, não o URI do arquivo .pac (é o que eu coloquei em "configurações do sistema / rede / proxy de rede ".
Daniel Glasser
Entrei em "Configurações do sistema / Rede / proxy de rede" e usei a configuração manual; isso atualizou "/etc/apt/apt.conf". Também desabilitei o IPv4 editando "/etc/sysctl.conf". Isso parece ter feito o truque. Obrigado pela ajuda.
precisa
Não é verdade, o apt-get nunca usa http_proxynem quaisquer variáveis ​​de ambiente.
Braiam 26/09
@Braiam fazer um man apt.confe ver http::Proxy. Eu também atualizei a resposta. Também uso variáveis ​​de ambiente http_proxye https_proxyde uso apt-gethá anos. Faça alguma pesquisa antes de votar.
Terry Wang
Além disso, pesquise você mesmo! Execute sudo apt-get -o Debug::Acquire::http=true updatee verifique você mesmo se apenas a configuração da variável de ambiente usa o proxy. E se você estava usando proxy por ano, atualize- se .
Braiam 27/09/13
5

Acredito que tive esse mesmo problema e a resposta é simples. A sintaxe é crítica. Deve ser assim:

Acquire::http::Proxy "http://x.y.z.251:9090";

(Há um ":" extra e um final ";")

kh
fonte
1

@Braiam

Eu acho que é melhor começar uma resposta separada para esclarecer as coisas.

Fiz um teste rápido usando o Vagrant e uma VM do Ubuntu 13.04 Raring x86_64 por trás do firewall.

A versão apt-get é 0.9.7.7ubuntu4

root@raring:~# apt-get --version 
apt 0.9.7.7ubuntu4 for amd64 compiled on Apr 12 2013 23:49:05
Supported modules:
*Ver: Standard .deb
*Pkg:  Debian dpkg interface (Priority 30)
 Pkg:  Debian APT solver interface (Priority -1000)
 S.L: 'deb' Standard Debian binary tree
 S.L: 'deb-src' Standard Debian source tree
 Idx: Debian Source Index
 Idx: Debian Package Index
 Idx: Debian Translation Index
 Idx: Debian dpkg status file
 Idx: EDSP scenario file

Atualização: Funciona da mesma maneira no Precise 12.04.3

root@support:/etc/apt# uname -a
Linux support 3.8.0-30-generic #44~precise1-Ubuntu SMP Fri Aug 23 17:33:45 UTC 2013 i686 i686 i386 GNU/Linux
root@support:/etc/apt# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.3 LTS
Release:        12.04
Codename:       precise
root@support:/etc/apt# apt-get --version
apt 0.8.16~exp12ubuntu10.14 for i386 compiled on Sep  8 2013 03:26:42

1º - limpar arquivos de configuração do apt

Limpei as configurações de proxy em /etc/apt/apt.conf. Também fiz acke agverifiquei todos os arquivos e subdiretórios /etc/aptpara garantir que não haja proxy definido nos arquivos de configuração do apt.

Por padrão, as {http_proxy,https_proxy,ftp_proxy}variáveis ​​env não estão definidas.

O apt-get não conseguiu se conectar aos servidores de atualização.

root@raring:~# apt-get -o Debug::Acquire::http=true update
0% [Connecting to au.archive.ubuntu.com (202.158.214.106)] [Connecting to security.ubuntu.com (91.189.91.13)] [Connecting to ppa.launchpad.net (91.189.95.83)]

2º - definir variáveis ​​de ambiente

Basta definir as variáveis ​​de proxy

export {http_proxy,https_proxy,ftp_proxy}="http://10.xxx.xxx.231:80"

O apt-get agora pode se conectar!

Veja a saída de depuração (isso é algo que eu nunca tentei).

root@raring:~# apt-get -o Debug::Acquire::http=true update
0% [Working]GET http://security.ubuntu.com/ubuntu/dists/raring-security/Release.gpg HTTP/1.1
Host: security.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


GET http://au.archive.ubuntu.com/ubuntu/dists/raring/Release.gpg HTTP/1.1
Host: au.archive.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


GET http://ppa.launchpad.net/git-core/ppa/ubuntu/dists/raring/Release.gpg HTTP/1.1
Host: ppa.launchpad.net
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


HTTP/1.1 200 OK
Date: Fri, 27 Sep 2013 12:12:20 GMT
ETag: "16e20bb4-3a5-4db2e154a1dc0"
Server: Apache/2.2.3 (Red Hat)
Content-Type: text/plain; charset=UTF-8
Accept-Ranges: bytes
Last-Modified: Thu, 25 Apr 2013 11:54:39 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

Get:1 http://au.archive.ubuntu.com raring Release.gpg [933 B]
0% [1 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]GET http://au.archive.ubuntu.com/ubuntu/dists/raring-updates/Release.gpg HTTP/1.1
Host: au.archive.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


99% [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK             
Date: Fri, 27 Sep 2013 12:12:20 GMT
ETag: "16e20ee7-3a5-4e7594ace9200"
Server: Apache/2.2.3 (Red Hat)
Content-Type: text/plain; charset=UTF-8
Accept-Ranges: bytes
Last-Modified: Fri, 27 Sep 2013 08:30:00 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

Get:2 http://au.archive.ubuntu.com raring-updates Release.gpg [933 B]
50% [2 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]GET http://au.archive.ubuntu.com/ubuntu/dists/raring-backports/Release.gpg HTTP/1.1
Host: au.archive.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


100% [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK             
Date: Fri, 27 Sep 2013 12:12:21 GMT
ETag: "16e0083d-3a5-4e6844f477fc0"
Server: Apache/2.2.3 (Red Hat)
Content-Type: text/plain; charset=UTF-8
Accept-Ranges: bytes
Last-Modified: Mon, 16 Sep 2013 18:24:07 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

Get:3 http://au.archive.ubuntu.com raring-backports Release.gpg [933 B]
67% [3 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK
Date: Fri, 27 Sep 2013 12:12:20 GMT
ETag: "3a5-4e75c5d969600"
Server: Apache/2.2.22 (Ubuntu)
Expires: Fri, 27 Sep 2013 13:05:00 GMT
Accept-Ranges: bytes
Cache-Control: max-age=3159, s-maxage=3300, proxy-revalidate
Last-Modified: Fri, 27 Sep 2013 12:10:00 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

......

3º - desmarque as variáveis ​​de ambiente

desabilitar os env vars => unset {http_proxy,https_proxy,ftp_proxy}

Agora o apt-get não pôde se conectar.

Conclusão

Assim como o que man apt.confdiz, se http :: Proxy NÃO estiver definido, http_proxya variável de ambiente será usada.

BTW : Eu também sou um usuário do Arch Linux. O Pacman funciona de maneira semelhante, se eu não usar wgetou curlcom proxy pacman.conf, ele usará variáveis ​​de ambiente `{http_proxy, https_proxy, ftp_proxy} '.

A atualização sudo NÃO preserva variáveis ​​de ambiente. É por isso que sudo apt-get updatefalha. Para solucionar o problema (preservar variáveis ​​de ambiente proxy), use sudo -E apt-get update.

Terry Wang
fonte
Btw, eu não sou notificado de ping nas respostas. Além disso, veja meu comentário, tente usar o sudologin como root e veja por que eu disse que não funcionava.
Braiam 27/09/13
@Braiam eu fiz mais alguns testes. sudoNÃO preserva variáveis ​​de ambiente, esse é o problema! Mas você pode contornar isso usando sudo -E apt-get update && apt-get dist-upgrade;-)
Terry Wang
Eu disse um bocado o mesmo em meu outro comentário : S
Braiam
Eu gosto de como você esclareceu a resposta. A solução para o meu problema foi a dica "sudo -E". Não me lembro de ter precisado usar a opção -E no passado.
DaShaun