Configurações de proxy em todo o sistema no ubuntu


22

Eu queria usar a internet no meu servidor proxy da faculdade, que também requer autenticação. Eu procurei no google por soluções e a melhor solução que encontrei até agora foi essa . Eu modificado o script na resposta aceitou incluir autenticação. Aqui vai:

if [ $(id -u) -ne 0 ]; then
echo "This script must be run as root";
exit 1;
fi

if [ $# -eq 4 ] then

gsettings set org.gnome.system.proxy mode 'manual' ;
gsettings set org.gnome.system.proxy.http host '$1';
gsettings set org.gnome.system.proxy.http port $2;
gsettings set org.gnome.system.proxy.http authentication-user '$3';
gsettings set org.gnome.system.proxy.http authentication-password '$4';


grep PATH /etc/environment > lol.t;
printf \
"http_proxy=http://$3:$4@$1:$2/\n\
 https_proxy=http://$3:$4@$1:$2/\n\
 ftp_proxy=http://$3:$4@$1:$2/\n\
 no_proxy=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n\
 HTTP_PROXY=http://$3:$4@$1:$2/\n\
 HTTPS_PROXY=http://$3:$4@$1:$2/\n\
 FTP_PROXY=http://$3:$4@$1:$2/\n\
 NO_PROXY=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n" >> lol.t;

 cat lol.t > /etc/environment;


 printf \
 "Acquire::http::proxy \"http://$3:$4@$1:$2/\";\n\
  Acquire::ftp::proxy \"ftp://$3:$4@$1:$2/\";\n\
  Acquire::https::proxy \"https://$3:$4@$1:$2/\";\n" > /etc/apt/apt.conf.d/95proxies;

rm -rf lol.t;

else

printf "Usage $0 <proxy_ip> <proxy_port> <username> <password>\n";

fi

No entanto, as contas online ainda não funcionam (o mesmo para o rhythmbox e outros programas GTK3) . Uma tela branca aparece assim:

insira a descrição da imagem aqui

Alguma sugestão de como isso pode ser resolvido?


Respostas:


31

Finalmente resolveu:

(Siga os passos em série)

1. Para programas gtk3, como rhythmbox e contas online:

Primeiro, você precisa inserir as configurações de proxy nas configurações de rede (junto com a autenticação):

insira a descrição da imagem aqui

Em seguida, aplique todo o sistema.

2. Para apt, centro de software etc

edite o arquivo /etc/apt/apt.conf

E, em seguida, substitua todo o texto existente pelas seguintes linhas

Acquire::http::proxy "http://username:password@host:port/";
Acquire::ftp::proxy "ftp://username:password@host:port/";
Acquire::https::proxy "https://username:password@host:port/";

3. Variáveis ​​de ambiente

edite o arquivo /etc/environment

E, em seguida, adicione as seguintes linhas após PATH = "algo aqui"

http_proxy=http://username:password@host:port/
ftp_proxy=ftp://username:password@host:port/
https_proxy=https://username:password@host:port/

Isso é tudo..


1
A etapa 1) altera / etc / environment? Eu gostaria de uma maneira de fazer esse passo através da linha de comando.
Lucas

Parece que o passo 1) também funciona apt-get update. Portanto, não precisa da etapa 2).
91917 smwikipedia

@ Rayman Existe alguma necessidade de escapar dos caracteres especiais na senha ao fazer isso? Se sim, então como?
code_dragon

2

Para baixar pacotes pelo wget proxy, deve ser configurado em / etc / environment, e para baixar pacotes pelo apt-get proxy, deve ser configurado no /etc/apt/apt.conf


2
Por favor, elabore sua resposta, atualmente ela não está fornecendo muita informação útil.
Byte Commander

1
Bem-vindo ao Ask Ubuntu! Eu recomendo editar esta resposta para expandi-la com detalhes específicos sobre como fazer isso. (Veja também Como faço para escrever uma boa resposta? Para o conselho geral sobre que tipos de respostas são consideradas mais valiosas sobre Ask Ubuntu.)
David Foerster

1

Para wgettrabalhar com um proxy, eu adicionaria também para criar um .wgetrcem seu diretório pessoal, contendo:

http_proxy = http://proxy:port/
https_proxy = http://proxy:port/
proxy_user = user
proxy_password = password
use_proxy = on
wait = 15

1

Isso não é tudo, é claro. Mais alguns programas ( npm, curle git):

npm config set proxy $HTTP_PROXY
npm config set https-proxy $HTTPS_PROXY
npm config set strict-ssl false
echo "proxy = $HTTP_PROXY" > ~/.curlrc
echo "noproxy = $NO_PROXY" >> ~/.curlrc
git config --global http.proxy $HTTP_PROXY
git config --global https.proxy $HTTPS_PROXY

Para o Maven, edite ~/.m2/settings.xml. O IntelliJ também não parece capturar a configuração global.

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.