Impostazioni proxy a livello di sistema in Ubuntu


22

Volevo usare internet sul mio server proxy del college che richiede anche l'autenticazione. Ho cercato su Google soluzioni e la migliore soluzione che ho trovato è stata questa . Ho modificato lo script nella risposta accettata per includere l'autenticazione. Eccolo:

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

Tuttavia gli account online non funzionano ancora (lo stesso per rhythmbox e altri programmi GTK3) . Viene visualizzata una schermata bianca come questa:

inserisci qui la descrizione dell'immagine

Qualche suggerimento su come risolverlo?


Risposte:


31

Risolto finalmente:

(Seguire i passaggi in serie)

1. Per programmi gtk3 come rhythmbox e account online:

Per prima cosa devi inserire le impostazioni proxy nelle impostazioni di rete (insieme all'autenticazione):

inserisci qui la descrizione dell'immagine

Quindi applicare a livello di sistema.

2. Per apt, software center ecc

modifica il file /etc/apt/apt.conf

E quindi sostituire tutto il testo esistente con le seguenti righe

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. Variabili d'ambiente

modifica il file /etc/environment

E poi aggiungi le seguenti righe dopo PATH = "qualcosa qui"

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

È tutto..


1
Il passaggio 1) modifica / etc / environment? Vorrei un modo per fare quel passo dalla riga di comando.
Lucas,

Sembra che il passaggio 1) apt-get updatefunzioni anche per. Quindi non è necessario il passaggio 2).
smwikipedia

@Raman Ho bisogno di sfuggire ai caratteri speciali nella password mentre lo fai? Se è così allora come?
code_dragon,

2

Per scaricare i pacchetti tramite proxy wget, è necessario che sia impostato in / etc / environment, e per scaricare i pacchetti tramite proxy apt-get, è necessario impostare in /etc/apt/apt.conf


2
Elabora la tua risposta, al momento non fornisce molte informazioni utili.
Byte Commander

1
Benvenuti in Ask Ubuntu! Raccomando di modificare questa risposta per espanderla con dettagli specifici su come eseguire questa operazione. (Vedi anche Come posso scrivere una buona risposta? Per consigli generali su quali tipi di risposte sono considerate più preziose su Ask Ubuntu.)
David Foerster,

1

Per far wgetfunzionare un proxy, aggiungerei anche per creare un .wgetrcnella tua home directory, contenente:

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

1

Non è tutto, ovviamente. Alcuni altri programmi ( 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

Per Maven, modifica ~/.m2/settings.xml. IntelliJ non sembra prendere la configurazione globale neanche.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.