Jak ustawić ogólnosystemowe serwery proxy w Xubuntu, Lubuntu lub Ubuntu Studio?


Odpowiedzi:


114

Systemowe serwery proxy w Ubuntu Studio, Xubuntu i XFCE muszą być ustawione za pomocą zmiennych środowiskowych

Ubuntu Studio, podobnie jak Xubuntu, używa środowiska graficznego XFCE, które nie zawiera graficznego narzędzia ustawień do ustawiania systemowych serwerów proxy (w przeciwieństwie do domyślnego środowiska graficznego Ubuntu, Unity ).

1. Skonfiguruj proxy / proxy dla większości programów

  • Otwórz /etc/environmentplik za pomocą gksudo leafpad(lub ulubionego edytora). W tym pliku przechowywane są systemowe zmienne zainicjowane podczas rozruchu.
  • Dodaj następujące wiersze, odpowiednio modyfikując. Musisz powielić zarówno wielkie, jak i małe litery, ponieważ (niestety) niektóre programy szukają tylko jednego lub drugiego:

    http_proxy = http: //myproxy.server.com: 8080 /
    https_proxy = http: //myproxy.server.com: 8080 /
    ftp_proxy = http: //myproxy.server.com: 8080 /
    no_proxy = "localhost, 127.0.0.1, localaddress, .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 = "localhost, 127.0.0.1, localaddress, .localdomain.com"
    

2. Następnie skonfiguruj serwery proxy dla programów GTK3, takich jak Rhythmbox:

Niektóre nowsze programy GTK3, takie jak Rhythmbox, ignorują zmienne środowiskowe ustawione powyżej i polegają na ustawieniach Gnome. Aby upewnić się, że są one objęte, otwórz terminal i wklej poniższy wiersz po wierszu, odpowiednio modyfikując:

gsettings set org.gnome.system.proxy mode 'manual' 
gsettings set org.gnome.system.proxy.http host 'myproxy.server.com'
gsettings set org.gnome.system.proxy.http port 8080

3. Na koniec skonfiguruj serwery proxy apt-geti Menedżera aktualizacji

  • Te programy również nie będą przestrzegać zmiennych środowiskowych. Utwórz plik o nazwie 95proxiesw /etc/apt/apt.conf.d/, i zawierać następujące elementy:

    Uzyskaj :: http :: proxy "http://myproxy.server.com:8080/";
    Acquire :: ftp :: proxy "ftp://myproxy.server.com:8080/";
    Uzyskaj :: https :: proxy "https://myproxy.server.com:8080/";
    

Na koniec wyloguj się i uruchom ponownie, aby upewnić się, że zmiany zostaną zastosowane.


Źródła: 1 , 2 , 3 . W szczególności patrz 1, aby uzyskać dodatkową pomoc, w tym skrypt do szybkiego włączania / wyłączania serwerów proxy.


Skrypty do włączania / wyłączania serwera proxy :

Uwaga: Przed kontynuowaniem zwróć uwagę, że próbowałem tego na Lubuntu 14.04 i WAŻNE jest, aby przed uruchomieniem wspomnianych skryptów plik /etc/environmentzawierał tylko jedną linię, tj. „$ PATH ...” i nie powinno być nic innego w pliku, w przeciwnym razie może być konieczne zmodyfikowanie kodu skryptu. Skrypty te ustawiają i wyłączają serwer proxy zgodnie z powyższym opisem, ale polegają na obcinaniu plików i dołączaniu plików do zmian /etc/environmenti /etc/apt/apt.conf.d/95proxiesplików. Upewnij się więc, że:

1) /etc/environmentzawiera tylko jedną linię, tj. „$ PATH: ...”. I nic więcej.

2) Plik /etc/apt/apt.conf.d/95proxiesnie istnieje lub nie ma w nim nic ważnego.

Więc! Jeśli chcesz zautomatyzować proces włączania i wyłączania proxy bez konieczności wpisywania przydziału. możesz utworzyć dwa wykonywalne skrypty powłoki proxyon.shi proxyoff.shjako:

proxyon.sh:

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

if [ $# -eq 2 ]
  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;


  grep PATH /etc/environment > lol.t;
  printf \
  "http_proxy=http://$1:$2/\n\
  https_proxy=http://$1:$2/\n\
  ftp_proxy=http://$1:$2/\n\
  no_proxy=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n\
  HTTP_PROXY=http://$1:$2/\n\
  HTTPS_PROXY=http://$1:$2/\n\
  FTP_PROXY=http://$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://$1:$2/\";\n\
  Acquire::ftp::proxy \"ftp://$1:$2/\";\n\
  Acquire::https::proxy \"https://$1:$2/\";\n" > /etc/apt/apt.conf.d/95proxies;

  rm -rf lol.t;

  else

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

fi

proxyoff.sh:

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

gsettings set org.gnome.system.proxy mode 'none' ;

grep PATH /etc/environment > lol.t;
cat lol.t > /etc/environment;

printf "" > /etc/apt/apt.conf.d/95proxies;

rm -rf lol.t;

Jak używać : Po utworzeniu tych skryptów, uczyń je wykonywalnymi, możesz zachować je w dowolnym miejscu. Aby włączyć serwer proxy, wystarczy przejść do katalogu zawierającego skrypt „proxyon.sh”, a następnie należy wpisać sudo ./proxyon.sh {host} {port}. Jako przykład rozważ to:

 $ sudo ./proxyon.sh 10.2.20.17 8080
 OR
 $ sudo ./proxyon.sh myproxy.server.com 8080

Gdzie „10 .2.20.17” to adres IP serwera proxy - możesz także wpisać coś takiego jak myproxy.server.com - a „8080” to port. Następnie wyloguj się i zaloguj na swoje konto, aby upewnić się, że wszystko jest ustawione. Możesz zacząć korzystać z Internetu lub cokolwiek innego. A jeśli chcesz wyłączyć proxy, przejdź do katalogu zawierającego „proxyoff.sh” i wpisz:

 $ sudo ./proxyoff.sh

Spowoduje to rozbrojenie wszystkich Twoich serwerów proxy. Teraz wyloguj się i zaloguj ponownie, aby przejść do trybu normalnego.



jeśli potrzebujesz autoryzacji dla apt-get proxy, możesz ustawić je w następujący sposób: Acquire :: http :: proxy " user: pass@myproxy.server.com: 8080 ";
Jim Ford

3
Powyższe działało dla mnie. Ale kiedy zabieram laptopa do domu z pracy, gdzie nie ma serwera proxy - nie mogę połączyć się z Internetem. Czy istnieje skrótowy sposób, aby ponownie wyłączyć serwer proxy, gdy wrócę do domu, nie przechodząc do skrajności obracania plików konfiguracyjnych i ponownego uruchamiania? Byłby to miły dodatek do odpowiedzi.
TenLeftFingers

Dla bezpieczeństwa podczas publicznego Wi-Fi próbuję skonfigurować przeglądarkę Chromium (w Xubuntu 16.04 LTS), aby przekazywać wszystkie żądania stron internetowych przez serwer proxy PuTTY Socks5 na localhost: 10001, który jest tunelowany przez Raspberry Pi w domu, gdy jestem daleko od domu. Powyższe instrukcje nie działają w przypadku serwerów proxy Socks5, więc mam nadzieję, że uda mi się to rozgryźć. (uwaga: Firefox jest łatwy, ponieważ ustawienia proxy można ustawić wewnętrznie w FireFox, ale chcę ustawić proxy dla Chromium i apt-get też - najlepiej z żądaniami DNS przechodzącymi również przez proxy).
Gabriel Staples,

Jeśli możesz dodać instrukcje / modyfikacje proxy Socks 5, to też byłoby pomocne. Dzięki!
Gabriel Staples,

8

istnieje narzędzie graficzne o nazwie UbProxy, które ustawia cały systemowy serwer proxy za pośrednictwem interfejsu graficznego (GUI). Jedynym problemem dla mnie było to, że muszę się wylogować i ponownie zalogować, aby załadować konfigurację. Jest bardzo prosty w użyciu. https://code.google.com/p/ubproxy/


wygląda obiecująco.
Dee

Możesz automatycznie skonfigurować wszystkie różne ustawienia proxy wymagane przez różne aplikacje podczas łączenia się z Wi-Fi, a nawet połączenia z siecią przewodową. Zobacz: gist.github.com/frgomes/544014b53e5384e00847da20b3e1da5b
Richard Gomes

3

Mam kilka funkcji, aby sobie z tym poradzić. Nazwij ich tak:

myProxyOn

https://gist.github.com/fernando-basso/6352040

#!/usr/bin/env bash

# gsettings list-recursively org.gnome.system.proxy

# Change de ip address and port number accordingly.
function myProxyOn() {
    gsettings set org.gnome.system.proxy mode 'manual' # ' manual / nome / automatic '
    gsettings set org.gnome.system.proxy.http host '10.0.0.1'
    gsettings set org.gnome.system.proxy.http port 8080
    gsettings set org.gnome.system.proxy.https host '10.0.0.1'
    gsettings set org.gnome.system.proxy.https port 8080
    gsettings set org.gnome.system.proxy.ftp host '10.0.0.1'
    gsettings set org.gnome.system.proxy.ftp port 8080

    echo "Configuração do 'System Proxy' settada para 'manual', com host 10.0.0.1, port 8080."
}

function myProxyOff() {
    gsettings set org.gnome.system.proxy mode 'none' # ' manual / nome / automatic '
    echo "Proxy cofigurado para 'none'."
}

function proxyOn() { # {{{
    #echo -n 'Username: '
    #read -e username
    #echo -n 'Password: '
    #read -es password
    #echo ''
    echo 'Setting variable "http_proxy"...'
    #export http_proxy="http://$username:$password@172.17.0.1:8080/"
    export http_proxy="http://10.0.0.1:8080/"
    echo 'Setting variable "https_proxy..."'
    export https_proxy="https://10.0.0.1:8080/"
    echo 'Setting variable "ftp_proxy"...'
    #export ftp_proxy="http://$username:$password@172.17.0.1:8080/"
    export ftp_proxy="ftp://10.0.0.1:8080/"
    echo 'Done!'
}

function proxyOff() {
    unset HTTP_PROXY
    unset http_proxy
    unset FTP_proxy
    unset ftp_proxy
    echo -e "\nProxy environment variables removed!"
}

1
jest to okropna sugestia, aby przechowywać hasło w pliku tekstowym
BЈови14

1
@ BЈовић: Masz rację. W moim przypadku jest to hasło publicznego publicznego serwera proxy, więc myślę, że to nie ma znaczenia.
Fernando Basso

jakiś pomysł, jak skonfigurować proxy proxy?
Gabriel Staples

0

Nie jest konieczne restartowanie całego systemu w celu ulepszenia apt-get poprzez plik proxy95 w /etc/apt/apt.conf.d

  • Po prostu działa natychmiast po zapisaniu pliku i
  • zniknie natychmiast po zniknięciu pliku.

Rozważ skrypt, aby włączyć lub wyłączyć plik, zmieniając jego nazwę na * .bak, aby w razie potrzeby szybko przełączyć serwer proxy.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.