Dari apa yang saya mengerti, pengaturan proxy di seluruh sistem melalui GUI melakukan tiga hal:
- Tetapkan nilai yang sesuai di basis data dconf.
- Tetapkan nilai dalam
/etc/environment
.
- Tetapkan nilai dalam
/etc/apt/apt.conf
.
1 dan 3 segera berlaku. /etc/environment
diuraikan saat masuk, jadi Anda harus keluar dan masuk agar itu berlaku. (Perhatikan bahwa ini adalah proses masuk yang benar, tidak hanya menjalankan shell login.) Skrip berikut harus setara (dengan anggapan proksi 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
Meskipun memerlukan login ulang untuk PAM untuk diterapkan di /etc/environment
mana-mana, dalam shell saat ini Anda masih dapat mengekstraksi nilai-nilai dalam file itu:
export http_proxy=$(pam_getenv http_proxy)
sudo service network manager restart
.