Systemowe ustawienia proxy w Ubuntu

22

Chciałem korzystać z Internetu na moim serwerze proxy uczelni, który również wymaga uwierzytelnienia. Szukałem w Google rozwiązań i najlepszym rozwiązaniem, jakie znalazłem, było to . Mam zmodyfikowany skrypt w przyjętym odpowiedzi na to uwierzytelnianie. Oto jest:

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

Jednak konta online nadal nie działają (to samo dla Rhythmbox i innych programów GTK3) . Biały ekran wygląda następująco:

wprowadź opis zdjęcia tutaj

Wszelkie sugestie dotyczące sposobu rozwiązania tego problemu?

Raman
źródło

Odpowiedzi:

31

Rozwiązany w końcu:

(Postępuj zgodnie z instrukcjami serio)

1. W przypadku programów GTK3, takich jak Rhythmbox i konta internetowe:

Najpierw musisz wprowadzić ustawienia proxy w ustawieniach sieci (wraz z uwierzytelnieniem):

wprowadź opis zdjęcia tutaj

Następnie zastosuj cały system.

2. W przypadku apt, centrum oprogramowania itp

edytować plik /etc/apt/apt.conf

A następnie zastąp cały istniejący tekst następującymi wierszami

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. Zmienne środowiskowe

edytować plik /etc/environment

A następnie dodaj następujące wiersze po ŚCIEŻKA = „coś tutaj”

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

To wszystko..

Raman
źródło
1
Czy krok 1) zmienia / etc / environment? Chciałbym zrobić ten krok za pomocą wiersza polecenia.
Lucas,
Wydaje się, że krok 1) również działa apt-get update. Więc nie potrzebujesz kroku 2).
smwikipedia
@Raman Czy muszę robić znaki specjalne w haśle? Jeśli tak to jak?
code_dragon
2

Aby pobrać pakiety przez proxy wget, należy je skonfigurować w / etc / environment, a aby pobrać pakiety przez proxy apt-get, należy je zainstalować w /etc/apt/apt.conf

Sauser
źródło
2
Proszę opracować swoją odpowiedź, która obecnie nie dostarcza zbyt wielu przydatnych informacji.
Bajt Dowódca
1
Witamy w Ask Ubuntu! Zalecam edycję tej odpowiedzi, aby rozszerzyć ją o szczegółowe informacje o tym, jak to zrobić. (Zobacz także Jak napisać dobrą odpowiedź? Zawiera ogólne porady na temat tego, jakie rodzaje odpowiedzi są uważane za najcenniejsze na Ask Ubuntu.)
David Foerster,
1

Aby wgetpracować z serwerem proxy, dodałbym również, aby utworzyć .wgetrcw twoim katalogu domowym, zawierającym:

http_proxy = http://proxy:port/
https_proxy = http://proxy:port/
proxy_user = user
proxy_password = password
use_proxy = on
wait = 15
trudide12
źródło
1

To oczywiście nie wszystko. Niektóre inne programy ( npm, curli 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

W Maven edytuj ~/.m2/settings.xml. Wydaje się, że IntelliJ również nie odbiera konfiguracji globalnej.

MPi
źródło