Komut satırından yeniden başlatmadan Ubuntu Sistem Proxy Ayarlarını yapma


14

Kullanıyorum Ubuntu 14.04. http proxyAyarları komut satırından değiştirmek istiyorum . Bu, GUI'deki (Tüm Ayarlar-> Ağ-> Ağ Proxy'si) değişime ve düğmeye tıklamaya eşdeğer olmalıdır Apply System Wide. Ayarları bir komut dosyasından ( bash) dinamik olarak değiştirmeyi planladığım için sistemi yeniden başlatmak / oturumu kapatmak istemiyorum .


askubuntu.com/questions/175172/… . Cevabın yorumunda, öyle diyor sudo service network manager restart.
Ramesh

@Ramesh çalışmıyor. Ben zaten bu soruyu inceledim.
ma08

Yanıtlar:


15

Anladığım kadarıyla, proxy'leri sistem genelinde bu GUI aracılığıyla ayarlamak üç şey yapar:

  1. Dconf veritabanında ilgili değerleri ayarlayın.
  2. İçindeki değerleri ayarlayın /etc/environment.
  3. İçindeki değerleri ayarlayın /etc/apt/apt.conf.

1 ve 3 hemen etkili olur. /etc/environmentgirişte ayrıştırılır, bu nedenle etkinleşmesi için oturumu kapatmanız ve giriş yapmanız gerekir. (Bunun yalnızca oturum açma kabuğu çalıştırmadığı gibi oturum açma işleminin uygun olduğunu unutmayın.) Aşağıdaki komut dosyası eşdeğer olmalıdır (http / https proxy'leri varsayarak):

#! /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'ın /etc/environmenther yere uygulanması için yeniden oturum açmayı gerektirse de, geçerli bir kabukta bu dosyadaki değerleri yine de ayıklayabilirsiniz:

export http_proxy=$(pam_getenv http_proxy)

@ ma08 Çıktısı nedir gsettings get org.gnome.system.proxy mode; gsettings get org.gnome.system.proxy.http host; gsettings get org.gnome.system.proxy.http port;?
muru

Şimdi sorunu alıyorum, komut dosyasını normal kullanıcı olarak çalıştırdığımda, (process:9662): dconf-WARNING **: failed to commit changes to dconf: Could not connect: Connection refusedgsettings'de her komut için uyarı görünüyor . Kök olarak çalıştırırsam, iyi çalışır, ancak yukarıdaki komutların (get) çıktısı yalnızca kökte değiştirilir, ancak normal kullanıcıda değiştirilmez.
ma08

Aaarghh .. Lanet senaryo böceklerle doludur. Düzeltmek zorunda kaldığım üç tane. : / İkincisinde sudo tee, dosya adının /etc/environmentdeğil olduğuna dikkat edin /etc/apt/apt.conf. Apt.conf dosyasındaki çöp girdilerini silmeniz gerekebilir.
muru

Sorun, daha önce yorumda söylediğim uyarı gibi görünüyor.
ma08

1
Teşekkürler, senaryonuz çalışır ve bağlantıdaki cevap bu hatayı aşmanıza yardımcı oldu. Hata ayıklamayı kendim yapmalıydım. Çok teşekkürler.
ma08

3

Tüm görevi basitleştirmek için bir araç, ProxyMan yaptım. Bu linkten indirebilirsiniz .

Ayrıca, arka uç işlevini bilmekle ilgileniyorsanız koda bir göz atabilirsiniz. Zip dosyasını indirin, çıkarın, terminaldeki çıkarılan dosyaların konumuna gidin ve aşağıdaki komutlar size yardımcı olacaktır:

  • bash main.sh: proxy'yi ayarlamak ve ayarlamak için.
  • bash proxy_check.sh: geçerli proxy ayarlarınızı kontrol etmek için.

1
Bu harika bir küçük araç! Bana bir ton iş kurtardı!
Gh0sT

-2

Bunun baş ağrısından kaçınması gerektiğini düşünüyorum:

Proxy Ayarları Videosu

Python ile çalışan mükemmel bir öğretici. Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04 / 14.10 ve daha yüksek sürümlerde Basit ve Kimliği Doğrulanmış Proxy Ayarlarını Ayarlama% 100 Çalışma.

Çözüm 1 Sistem "python" kurulu olmalıdır. Yorumlayıcı şu komutu çalıştırırken: Komut: "sudo python setproxy.py [Proxy_Server] [proxy_port] [PROXY_USER] [proxy_password]"

Video: https://www.youtube.com/watch?v=eBtzKa-dvJg

[ Proxy_Server ] : proxy.test.ts
[ Proxy_port ] : 8080
[ PROXY_USER ] : domainuser
[ Proxy_password ] : " the_password "

Çözüm 2: Komutlar:

"Sudo apt- get install python- support"
"Sudo apt- get install ntlmaps "

Alanları uygun şekilde doldurun:

- Proxy server
- Proxy port
- User
- Password

2
Bunu iyi bir cevap haline getirmek için en azından adımları özetlemelisiniz.
Julie Pelletier
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.