कमांड लाइन से पुनरारंभ किए बिना Ubuntu सिस्टम प्रॉक्सी सेटिंग्स सेट करें


14

मैं उपयोग कर रहा हूं Ubuntu 14.04। मैं http proxyकमांड लाइन से सेटिंग्स बदलना चाहता हूं । यह जीयूआई (सभी सेटिंग्स-> नेटवर्क-> नेटवर्क प्रॉक्सी) में बदलने और बटन पर क्लिक करने के बराबर होना चाहिए Apply System Wide। मैं सिस्टम को पुनरारंभ / लॉगआउट नहीं करना चाहता क्योंकि मैं एक स्क्रिप्ट ( bash) से गतिशील रूप से सेटिंग्स को बदलने की योजना बना रहा हूं ।


askubuntu.com/questions/175172/… । उत्तर की टिप्पणी में, यह करने के लिए कहता है sudo service network manager restart
रमेश

@ रमेश यह काम नहीं करता है। मैं पहले ही उस सवाल से गुजर गया।
ma08

जवाबों:


15

जो मैं समझता हूं, उस GUI के माध्यम से सिस्टम-वाइड की स्थापना तीन चीजों से होती है:

  1. Dconf डेटाबेस में संबंधित मान सेट करें।
  2. में मान सेट करें /etc/environment
  3. में मान सेट करें /etc/apt/apt.conf

1 और 3 तुरंत प्रभाव लेते हैं। /etc/environmentलॉगिन पर पार्स किया गया है, इसलिए आपको प्रभावी होने के लिए लॉगआउट और लॉगिन करना होगा। (ध्यान दें कि यह उचित लॉगिन है, केवल एक लॉगिन शेल नहीं चल रहा है।) निम्न स्क्रिप्ट समतुल्य होनी चाहिए (http / https proccies मानकर):

#! /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)

@ ma08 का आउटपुट क्या है gsettings get org.gnome.system.proxy mode; gsettings get org.gnome.system.proxy.http host; gsettings get org.gnome.system.proxy.http port;?
मुरु

अब मुझे समस्या आती है, जब मैं स्क्रिप्ट को सामान्य उपयोगकर्ता के रूप में चलाता हूं, तो (process:9662): dconf-WARNING **: failed to commit changes to dconf: Could not connect: Connection refusedgsettings में प्रत्येक कमांड के लिए चेतावनी दिखाई देती है। अगर मैं इसे रूट के रूप में चलाता हूं, तो यह ठीक काम करता है लेकिन उपरोक्त कमांड (प्राप्त) का आउटपुट केवल रूट में नहीं बल्कि सामान्य उपयोगकर्ता में बदले हुए हैं।
ma08

अरघ .. लानत लिपि कीड़े से अटी पड़ी है। यह तीन मुझे तय करना है। : / दूसरे में sudo tee, ध्यान दें कि फ़ाइल का नाम है /etc/environmentऔर नहीं /etc/apt/apt.conf। आपको apt.conf में कचरा प्रविष्टि को हटाना पड़ सकता है।
मुरु

समस्या मुझे पहले की टिप्पणी में कही गई चेतावनी से प्रतीत होती है।
ma08

1
धन्यवाद, आपकी स्क्रिप्ट काम करती है और लिंक में उत्तर उस त्रुटि को प्राप्त करने में मदद करता है। मुझे डिबगिंग खुद करनी चाहिए थी। बहुत बहुत धन्यवाद।
ma08

3

मैंने पूरे कार्य को आसान बनाने के लिए एक उपकरण ProxyMan बनाया। आप इसे इस लिंक से डाउनलोड कर सकते हैं ।

इसके अलावा, यदि आप बैकएंड के कामकाज को जानने के लिए अधिक इच्छुक हैं तो आप कोड पर एक नज़र डाल सकते हैं। ज़िप फ़ाइल डाउनलोड करें, उन्हें निकालें, टर्मिनल में निकाली गई फ़ाइलों के स्थान पर जाएं और निम्नलिखित आदेश आपकी सहायता करेंगे:

  • bash main.sh: प्रॉक्सी सेट और अनसेट करना।
  • bashxy_check.sh: अपनी वर्तमान प्रॉक्सी सेटिंग की जाँच करने के लिए।

1
यह एक कमाल का छोटा उपकरण है! मुझे एक टन का काम बचा लिया!
Gh0sT

-2

मुझे लगता है कि इससे सिरदर्द से बचना चाहिए:

प्रॉक्सी सेटिंग्स वीडियो

एक उत्कृष्ट ट्यूटोरियल, अजगर में चल रहा है। Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04 / 14.10 में सरल और प्रामाणिक प्रॉक्सी सेटिंग करना और 100% वर्किंग से ऊपर।

समाधान 1 सिस्टम को "अजगर" स्थापित किया जाना चाहिए। इंटरप्रेटर कमांड चलाने के साथ: कमांड: "sudo python setproxy.py [Proxy_Server] [xy_port] [PROXY_USER] [xy_password]"

वीडियो: https://www.youtube.com/watch?v=eBtzKa-dvJg

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

समाधान 2: आदेश:

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

खेतों में उपयुक्त के रूप में भरें:

- Proxy server
- Proxy port
- User
- Password

2
इसे एक अच्छे उत्तर में बनाने के लिए, आपको कम से कम चरणों की रूपरेखा तैयार करनी चाहिए।
जूली पेलेटियर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.