Из того, что я понимаю, настройка прокси для всей системы через этот графический интерфейс делает три вещи:
- Установите соответствующие значения в базе данных dconf.
- Установите значения в
/etc/environment
.
- Установите значения в
/etc/apt/apt.conf
.
1 и 3 вступают в силу немедленно. /etc/environment
анализируется при входе в систему, поэтому вам нужно выйти и войти, чтобы это вступило в силу. (Обратите внимание, что это правильный вход в систему, а не просто запуск оболочки входа в систему.) Следующий скрипт должен быть эквивалентен (при условии использования http / https прокси):
#! /bin/bash
HTTP_PROXY_HOST=proxy.example.com
HTTP_PROXY_PORT=3128
HTTPS_PROXY_HOST=proxy.example.com
HTTPS_PROXY_PORT=3128
gsettings set org.gnome.system.proxy mode manual
gsettings set org.gnome.system.proxy.http host "$HTTP_PROXY_HOST"
gsettings set org.gnome.system.proxy.http port "$HTTP_PROXY_PORT"
gsettings set org.gnome.system.proxy.https host "$HTTPS_PROXY_HOST"
gsettings set org.gnome.system.proxy.https port "$HTTPS_PROXY_PORT"
sudo sed -i.bak '/http[s]::proxy/Id' /etc/apt/apt.conf
sudo tee -a /etc/apt/apt.conf <<EOF
Acquire::http::proxy "http://$HTTP_PROXY_HOST:$HTTP_PROXY_PORT/";
Acquire::https::proxy "http://$HTTPS_PROXY_HOST:$HTTPS_PROXY_PORT/";
EOF
sudo sed -i.bak '/http[s]_proxy/Id' /etc/environment
sudo tee -a /etc/environment <<EOF
http_proxy="http://$HTTP_PROXY_HOST:$HTTP_PROXY_PORT/"
https_proxy="http://$HTTPS_PROXY_HOST:$HTTPS_PROXY_PORT/"
EOF
Несмотря на то, что PAM требует повторного входа в систему для применения /etc/environment
везде, в текущей оболочке вы можете извлечь значения из этого файла:
export http_proxy=$(pam_getenv http_proxy)
sudo service network manager restart
.