Systemweite Proxy-Einstellungen in Ubuntu


22

Ich wollte das Internet auf meinem College-Proxy-Server nutzen, für den auch eine Authentifizierung erforderlich ist. Ich habe bei Google nach Lösungen gesucht und die beste Lösung, die ich bisher gefunden habe, war diese . Ich habe das Skript in der akzeptierten Antwort geändert , um die Authentifizierung einzuschließen. Hier kommt's:

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

Allerdings Online - Konten immer noch nicht arbeiten (gleich für rhythmbox und andere GTK3 Programme) . Ein weißer Bildschirm sieht folgendermaßen aus:

Bildbeschreibung hier eingeben

Irgendwelche Vorschläge, wie es gelöst werden kann?


Antworten:


30

Endlich gelöst:

(Folgen Sie den Schritten nacheinander)

1. Für gtk3-Programme wie Rhythmbox und Online-Konten:

Zuerst müssen Sie die Proxy-Einstellungen in den Netzwerkeinstellungen eingeben (zusammen mit der Authentifizierung):

Bildbeschreibung hier eingeben

Dann systemweit anwenden.

2. Für apt, Software Center etc

Bearbeiten Sie die Datei /etc/apt/apt.conf

Ersetzen Sie dann den gesamten vorhandenen Text durch die folgenden Zeilen

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. Umgebungsvariablen

Bearbeiten Sie die Datei /etc/environment

Und dann füge die folgenden Zeilen nach PATH = "something here" hinzu

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

Das ist alles..


1
Ändert Schritt 1) ​​/ etc / environment? Ich hätte gerne eine Möglichkeit, diesen Schritt über die Befehlszeile auszuführen.
Lucas

Scheint, dass Schritt 1) ​​auch funktioniert apt-get update. So brauchen Sie nicht Schritt 2).
Smwikipedia

@Raman Muss ich dabei die Sonderzeichen im Passwort umgehen? Wenn ja, wie dann?
Code_Dragon

2

Um Pakete von wget proxy herunterzuladen, müssen Sie das Setup in / etc / environment vornehmen und um Pakete von apt-get proxy herunterzuladen, müssen Sie das Setup in /etc/apt/apt.conf vornehmen


2
Bitte erläutern Sie Ihre Antwort. Sie enthält derzeit nicht viele hilfreiche Informationen.
Byte Commander

1
Willkommen bei Ask Ubuntu! Ich empfehle , diese Antwort zu bearbeiten , um sie mit spezifischen Details zu erweitern. (Siehe auch Wie schreibe ich eine gute Antwort ?, um allgemeine Ratschläge zu erhalten, welche Arten von Antworten auf Ask Ubuntu als am wertvollsten erachtet werden.)
David Foerster

1

Um die wgetArbeit mit einem Proxy zu ermöglichen, würde ich auch .wgetrcin Ihrem Home-Verzeichnis einen erstellen , der Folgendes enthält:

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

1

Das ist natürlich noch nicht alles. Einige weitere Programme ( npm, curlund 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

Bearbeiten Sie für Maven ~/.m2/settings.xml. IntelliJ scheint auch die globale Konfiguration nicht zu übernehmen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.