Como configurar proxies sem GUI?


79

Como você define as configurações de proxy nas versões Ubuntu Server ou Minimal (CLI) usando o terminal?

Respostas:


108

Os proxies em todo o sistema na CLI Ubuntu / Server devem ser configurados como variáveis ​​de ambiente.

  • Abra o /etc/environmentarquivo com vi(ou seu editor favorito). Este arquivo armazena as variáveis ​​de todo o sistema inicializadas na inicialização.
  • Adicione as seguintes linhas, modificando adequadamente. Você deve duplicar em maiúsculas e minúsculas porque (infelizmente) alguns programas procuram apenas um ou outro:

    http_proxy = "http://myproxy.server.com:8080/"
    https_proxy = "http://myproxy.server.com:8080/"
    ftp_proxy = "http://myproxy.server.com:8080/"
    no_proxy = "host local, 127.0.0.1, endereço local, .localdomain.com"
    HTTP_PROXY = "http://myproxy.server.com:8080/"
    HTTPS_PROXY = "http://myproxy.server.com:8080/"
    FTP_PROXY = "http://myproxy.server.com:8080/"
    NO_PROXY = "host local, 127.0.0.1, endereço local, .localdomain.com"
    
  • apt-get, aptitudeetc. não obedecerão às variáveis ​​de ambiente quando usadas normalmente com sudo. Então, configure-os separadamente; criar um arquivo chamado 95proxiesno /etc/apt/apt.conf.d/, e incluem o seguinte:

    Adquirir :: http :: proxy "http://myproxy.server.com:8080/";
    Adquira :: ftp :: proxy "ftp://myproxy.server.com:8080/";
    Adquirir :: https :: proxy "https://myproxy.server.com:8080/";
    

Por fim, efetue logout e reinicialize para garantir que as alterações entrem em vigor.


Fontes: 1 , 2 . Consulte 1 em particular para obter ajuda adicional, incluindo um script para ativar / desativar rapidamente os proxies.


Eu necessito de ajuda nisto. Estou tentando isso em um Ubuntu Server 12.04 virtual há um tempo e não está funcionando. Eu tenho que trabalhar com um Ubuntu 12.04 virtual (não servidor). Mas eu usei a GUI para aplicar configurações globais. Eu tentei com aspas, como sugere o link inferior, e não ajudou. Se eu estiver inserindo um endereço IP em vez de um nome domain.com, a formatação muda? Eu tentei várias combinações de coisas.
Frantumn

tem certeza de que https_proxy = "http?"
BBK

Bem, esta não é uma ótima resposta, na minha opinião, porque as informações (incorretas) do proxy que forneci no momento da instalação não estão localizadas no / etc / environment.
James T Snell

1
No meu caso, o Ubuntu 12.04, não era necessário sair e reiniciar para garantir que as alterações tenham efeito. I execute: sudo restart serviço de network-manager
Daniel Mora

1
@BBK, mesmo ao usar https, talvez você ainda precise se conectar ao proxy via http, o que basicamente permite que o servidor proxy escute sua conexão presumivelmente segura.
S3lph

9

Se você tiver um proxy de autenticação, os URLs serão diferentes. Ao invés de:

"http://myproxy.server.com:8080/"

Você terá:

"http://user_name:password@myproxy.server.com:8080/"

Observe que esses URLs ainda são URLs; portanto, as senhas (e possivelmente os nomes de usuário) precisarão ser codificados por URL .

Por exemplo, um nome de usuário murue uma senha de )qv3TB3LBm7EkP}se pareceriam com:

"http://muru:)qv3TB3LBm7EkP%7D@myproxy.server.com:8080/"

Isso pode ser feito de várias maneiras:

  1. Existem vários sites para codificação:
  2. Programático:

Em uma pitada, você pode usar man urlpara ver quais caracteres precisam ser codificados:

An escaped octet is encoded as a character triplet, 
consisting of the percent character "%" followed by 
the two hexadecimal digits representing the octet code...

E os códigos do octeto estão disponíveis em man ascii.


0
                                 Proxy Environment Variables:

http_proxy: servidor proxy para tráfego HTTP
https_proxy: servidor proxy para tráfego HTTPS
ftp_proxy: servidor proxy para tráfego FTP
no_proxy: padrões para endereços IP ou nomes de domínio que não devem usar o proxy

O valor para todas as configurações de proxy, exceto no_proxy, usa o mesmo modelo. proxy_http=username:password@proxy-host:port

Proxy de configuração temporária: export HTTP_PROXY=user:pass@my.proxy.server:8080

Configurações de proxy persistente: use vim ~/.bash_profilepara abrir o arquivo de configuração do bash e, em seguida, coloque as seguintes linhas dentro dele

export http_proxy=username:password@proxyhost.com:8080
export https_proxy=username:password@proxyhost.com:8081
export no_proxy=localhost, 127.0.0.1, *.my.lan

use source ~/.bash_profilepara aplicar as alterações


erro de digitação na última linha dos exemplos de "exportação" ('exprot' deve ser 'export'). Eu tentei editá-lo para aplicar a correção, mas aparentemente as edições devem ter "6 caracteres ou mais" ...
Jeremy Davis

1
Obrigado, eu corrigi.
Yossarian42
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.