Configurar proxy para o APT?

72

Eu preciso configurar o proxy. Não havia apt.confarquivo, etc/apt/então eu o criei usando nano.

Mas não entendo o que preciso escrever lá. Eu escrevi http_proxy = http://lgn:[email protected]:8080/lá e reiniciei networking. Mas quando eu tento apt-get update- isso não funciona.

Na verdade, eu não entendo qual porta e ip devo escrever no apt.confarquivo (houve exemplo com 192.168.1.254ip e 8080porta, então decidi usá-las).

lapots
fonte
Há uma mudança de configurações de proxy para começar o trabalho no Proxy empresarial em visita ubuntu github.com/navinas33/docker_ubuntu.git ele funciona ...
Navin como

Respostas:

103

Para usar um proxy, você precisa de um servidor proxy. O IP e a porta devem ser deste servidor proxy. O login e o pwd devem ser seu usuário e senha no servidor proxy (se o proxy exigir login).

Do local help.ubuntu.com :

Método do arquivo de configuração do APT

Este método usa o arquivo apt.conf, encontrado em seu diretório / etc / apt /. Este método é útil se você deseja que o apt-get (e não outros aplicativos) use permanentemente um proxy http.

Em algumas instalações, não haverá arquivo apt-conf configurado. Edite o arquivo apt-conf (ou crie um novo se você ainda não tiver um) usando o editor de sua escolha.

sudo nano /etc/apt/apt.conf

Adicione esta linha ao seu arquivo /etc/apt/apt.conf (substitua seus detalhes por yourproxyaddress e proxyport).

Acquire::http::Proxy "http://yourproxyaddress:proxyport";

Salve o arquivo apt.conf.

Se o seu proxy precisar de um login / senha, substitua:

"http://yourproxyaddress:proxyport";

com:

"http://username:password@yourproxyaddress:proxyport";

usando nome de usuário e senha do servidor proxy.

Laurent
fonte
6
É preferível adicionar um arquivo local separado /etc/apt/apt.conf.d/para que você não precise editar os arquivos de configuração básica do sistema. Dessa forma, se eles forem atualizados em uma versão subsequente do pacote, você não precisará mesclar suas alterações locais manualmente.
Tripleee
Existe um arquivo conf de proxy no diretório do usuário?
Becko
Esta resposta precisa de uma atualização: gksudo é obsoleto. Considere sugerir outro editor que não seja da GUI ou, em sudo -Hvez do gksudo, se estiver usando o gedit ou similar.
24

Esta é uma resposta mais geral junto com o apt config.

Como existem muitos lugares para definir configurações de proxy, pode ficar confuso no começo. Deixe-me resumir algumas coisas e sugerir algumas boas práticas.

Para programas de console

Ex: wget, git e quase todos os aplicativos de console que se conectam à Internet.

Se você deseja configurar o proxy sempre que executar seus comandos por algum motivo, defina as variáveis ​​de ambiente usando os seguintes comandos.

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Caso contrário, se você quiser usar as mesmas configurações todas as vezes para todos os usuários, use-as.

Configurar no bashrc

$ nano /etc/bash.bashrc
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Configurar em /etc/environment

$ nano /etc/environment
https_proxy="http://myproxy.server.com:8080/" 
ftp_proxy="http://myproxy.server.com:8080/" ...

Configurar usando GUI

Abra as configurações de rede e defina o proxy de rede em todo o sistema.

Rede -> Proxy de rede -> Configurar -> Aplicar todo o sistema.

Mas isso pode não ser útil se você tiver autenticação para o proxy.

Para apt.

Você precisa fazer um trabalho extra para o apt, pois aliás o apt não obedece às variáveis ​​de ambiente,

$ nano /etc/apt/apt.conf
Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT";
Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";

Para tudo fora deste escopo, deve haver uma opção para definir configurações de proxy no próprio aplicativo. Se não, me desculpe;)

matrixisreal
fonte
2
a configuração em / etc / environment é muito importante porque se você acabou de configurar o http_proxy var para o usuário, quando entra no modo sudo (para itens como 'sudo apt-get update'), o terminal geralmente não preserva o ambiente atual vars; muito importante para testar suas configurações: sudo echo $ http_proxy
belun
HTTP_PROXY(em maiúsculas) parece ser o nome padrão para essa variável, embora muitos programas voltem para a versão em minúsculas. https_proxy(observe letras minúsculas) é a capitalização correta para isso, mas você nunca a usaria sozinha, como faz /etc/environmentacima. (Acho que a sé um erro.)
Curt J. Sampson
Qual o motivo do APT exigir configuração adicional do proxy? Por que simplesmente não obedece com / etc / environment?
Loreno
22

Algo como o seguinte deve funcionar:

Acquire::http::proxy "http://lgn:[email protected]:8080/";
Acquire::https::proxy "http://lgn:[email protected]:8080/";
Dennis Kaarsemaker
fonte
Existe diferença que porta e ip usar?
lapots 17/02
Bem, sim, você precisa inserir os detalhes corretos para o proxy que deseja usar, é claro.
Dennis Kaarsemaker
er ... ip - é o ip do roteador? Quero dizer, este ip que usei no exemplo, mas todas as configurações do roteador que eu configuro no navegador usando 192.168.1.1ip. Eu deveria usar .1? e login e senha devem ser root ou roteador do ubuntu?
lapots 17/02
2
Você sabe mesmo o que está fazendo? Como você sabe que precisa usar um proxy se não conhece os detalhes?
Dennis Kaarsemaker
5
Então pergunte ao seu professor. Este não é um site "faça minha lição de casa por mim".
Dennis Kaarsemaker
5

O que você pode fazer também é tentar executar o comando sudo -E, o que assumirá as configurações do ambiente. Parece funcionar para mim quando tento atualizar, adicionar o apt-repository e instalar. Exemplo:

sudo -E add-apt-repository ppa:xxxxx

Segundo o @David Foerster, isso funciona apenas para interação manual usando o shell, mas não funciona em tarefas e serviços automatizados que invocam o Apt sem a interação do usuário.

Frank Qiu
fonte
Isso não ajudará em tarefas e serviços automatizados que invocam o Apt sem a interação do usuário.
David Foerster
Obrigado pelo aviso, adicionarei seu comentário à resposta.
Frank Qiu
2

Se você precisar usar o apt atrás de um proxy, provavelmente todo o resto também precisará da configuração do proxy. Eu gosto de gerenciar minhas configurações de proxy em um único local, que seria a variável de ambiente.

Para isso, crio um /etc/profiles.d/99-proxy.sh, que contém as configurações de proxy necessárias (como descrito em seguida):

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export https_proxy=$http_proxy
export ftps_proxy=$http_proxy

dessa forma, todos os usuários nessa máquina têm acesso ao proxy. (não esqueça chmod a+x)

Quando você usa o apt ou apt-get como usuário, esse usuário pode usar o sudo. Como Frank Qiu descreveu, o sudo não passa variáveis ​​de ambiente. Para isso você pode adicionar

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

para (por exemplo)

/etc/sudoers.d/00-environment 

ou diretamente no

/etc/sudoers

Arquivo. Dessa forma, você só precisa gerenciar as configurações de proxy em um único local.

muluman88
fonte
0

A pergunta original pode estar na direção errada. Eu acredito que você deseja configurar um servidor proxy no Linux?

Bem, isso é completamente diferente do que querer usar um proxy existente no ambiente Linux.

Se sua pergunta for a primeira, use serviços de terceiros para configurar um servidor proxy no Linux. Um exemplo pode ser o Lula.

Comandos simples para instalar o squid:

$ sudo apt-get install squid3

Em seguida, edite a configuração para permitir a rede local (neste caso, sua própria máquina). $ sudo vi /etc/squid3/squid.conf

Adicione / edite as seguintes linhas:

http_access allow local_net
acl local_net src 192.168.1.0/255.255.255.0

Supondo que seu IP para a máquina Linux esteja no bloco 192.168.1 / 24.

Neo
fonte
Provavelmente, a maioria dos leitores desta questão já instalou o squid;), também configurou as http[s]_proxyvariáveis ​​ENV e agora se pergunta por que o APT ainda não funciona. Mas se você está recebendo HTTP 403 de tudo, exceto da máquina com squid-, procure novamente todas as ocorrências da palavra denyque não foram comentadas. (especialmente http_accessna mesma linha.
Tomasz Gandor