APT के लिए प्रॉक्सी कॉन्फ़िगर करें?


72

मुझे प्रॉक्सी कॉन्फ़िगर करने की आवश्यकता है। इसमें apt.confफ़ाइल नहीं थी etc/apt/इसलिए मैंने इसका उपयोग करके बनाया है nano

लेकिन मुझे समझ नहीं आ रहा है कि मुझे वहां क्या लिखना है। मैंने http_proxy = http://lgn:pwd@192.168.1.254:8080/वहाँ लिखा है और फिर से शुरू किया है networking। लेकिन जब मैं कोशिश apt-get updateकरता हूं - यह काम नहीं करता है।

वास्तव में मुझे समझ नहीं आ रहा है कि मुझे apt.confफ़ाइल में कौन सा पोर्ट और आईपी लिखना चाहिए ( 192.168.1.254आईपी ​​और 8080पोर्ट के साथ उदाहरण था इसलिए मैंने उन्हें उपयोग करने का फैसला किया)।


प्रॉक्सी सेटिंग में बदलाव ubuntu यात्रा में कॉर्पोरेट प्रॉक्सी में काम पाने के लिए नहीं है github.com/navinas33/docker_ubuntu.git यह काम करता है ...
के रूप में नवीन

जवाबों:


103

प्रॉक्सी का उपयोग करने के लिए, आपको प्रॉक्सी सर्वर की आवश्यकता होती है। आईपी ​​और पोर्ट को इस प्रॉक्सी सर्वर से होना चाहिए। लॉगिन और pwd प्रॉक्सी सर्वर पर आपका उपयोगकर्ता और पासवर्ड होना चाहिए (यदि प्रॉक्सी को लॉगिन की आवश्यकता है)।

से help.ubuntu.com साइट :

APT कॉन्फ़िगरेशन फ़ाइल विधि

यह विधि apt.conf फ़ाइल का उपयोग करती है जो आपके / etc / apt / निर्देशिका में पाई जाती है। यह तरीका तब उपयोगी है जब आप केवल HTTP- प्रॉक्सी को स्थायी रूप से उपयोग करने के लिए apt-get (और अन्य एप्लिकेशन नहीं) चाहते हैं।

कुछ इंस्टॉलेशन पर एप-कॉन्फिड फाइल सेट अप नहीं होगा। अपनी पसंद के संपादक का उपयोग करके apt-conf फ़ाइल संपादित करें (या यदि आपके पास अभी तक कोई नहीं है तो एक नया बनाएं)।

sudo nano /etc/apt/apt.conf

इस लाइन को अपनी /etc/apt/apt.conf फ़ाइल में जोड़ें (अपने विवरणों को अपनेproxyaddress और प्रॉक्सीपोर्ट के लिए स्थान दें)।

Acquire::http::Proxy "http://yourproxyaddress:proxyport";

Apt.conf फ़ाइल सहेजें।

यदि आपके प्रॉक्सी को लॉगिन / पासवर्ड की जरूरत है, तो विकल्प:

"http://yourproxyaddress:proxyport";

साथ में:

"http://username:password@yourproxyaddress:proxyport";

प्रॉक्सी सर्वर से यूजरनेम और पासवर्ड का उपयोग करना।


6
एक अलग स्थानीय फ़ाइल जोड़ना /etc/apt/apt.conf.d/बेहतर है, ताकि आपको सिस्टम की मूल कॉन्फ़िगरेशन फ़ाइलों को संपादित न करना पड़े। इस तरह, यदि उन्हें बाद के पैकेज संस्करण में अपडेट किया जाता है, तो आपको अपने स्थानीय परिवर्तनों को हाथ से मर्ज नहीं करना होगा।
ट्रिपल जे

क्या उपयोगकर्ता निर्देशिका पर एक प्रॉक्सी गोपनीय फ़ाइल है?
becko

इस उत्तर को अपडेट की आवश्यकता है: gksudo अप्रचलित है। अन्य गैर-जीयूआई संपादक या sudo -Hgksudo के बजाय gedit या इसी तरह का उपयोग करने पर सुझाव देने पर विचार करें ।

24

यह apt config के साथ एक अधिक सामान्य उत्तर है।

चूंकि प्रॉक्सी सेटिंग कॉन्फ़िगर करने के लिए बहुत सारे स्थान हैं, इसलिए यह शुरुआत में भ्रमित हो सकता है। मुझे कुछ बातों का सारांश दें और कुछ अच्छी प्रथाओं का सुझाव दें।

कंसोल प्रोग्राम के लिए

Ex: wget, git और लगभग हर कंसोल एप्लिकेशन जो इंटरनेट से कनेक्ट होता है।

यदि आप किसी कारण से हर बार अपने कमांड चलाने के लिए प्रॉक्सी को कॉन्फ़िगर करना चाहते हैं तो निम्न कमांड का उपयोग करके पर्यावरण चर सेट करें

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

यदि आप सभी उपयोगकर्ताओं के लिए एक ही सेटिंग का उपयोग करना चाहते हैं, तो इन का उपयोग करें।

Bashrc में कॉन्फ़िगर करें

$ nano /etc/bash.bashrc
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

में कॉन्फ़िगर करें /etc/environment

$ nano /etc/environment
https_proxy="http://myproxy.server.com:8080/" 
ftp_proxy="http://myproxy.server.com:8080/" ...

GUI का उपयोग करके कॉन्फ़िगर करें

नेटवर्क सेटिंग्स खोलें और अपना सिस्टम वाइड नेटवर्क प्रॉक्सी सेट करें।

नेटवर्क -> नेटवर्क प्रॉक्सी -> कॉन्फ़िगर -> सिस्टम चौड़ा लागू करें।

लेकिन यह उपयोगी नहीं हो सकता है यदि आपके पास प्रॉक्सी के लिए प्रमाणीकरण है।

उपयुक्त के लिए।

उपयुक्त के लिए आपको कुछ अतिरिक्त काम करने की आवश्यकता है, क्योंकि संयोग से पर्यावरण के चर का पालन नहीं होता है,

$ nano /etc/apt/apt.conf
Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT";
Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";

इस दायरे से बाहर हर चीज के लिए, एप्लिकेशन में ही प्रॉक्सी सेटिंग्स को कॉन्फ़िगर करने का विकल्प होना चाहिए। अगर मुझे खेद नहीं है;)


2
config / in / etc / वातावरण बहुत महत्वपूर्ण है क्योंकि यदि आप बस अपने उपयोगकर्ता के लिए http_proxy var सेटअप करते हैं, जब आप sudo मोड में जाते हैं ('sudo apt-get update' जैसे सामान के लिए), टर्मिनल आमतौर पर वर्तमान परिवेश को संरक्षित नहीं करता है। vars; अपनी सेटिंग्स का परीक्षण करने के लिए बहुत महत्वपूर्ण: sudo echo $ http_proxy
belun

HTTP_PROXY(ऊपरी स्थिति में) उस चर के लिए मानक नाम प्रतीत होता है, हालांकि कई कार्यक्रम निचले मामले के संस्करण में वापस आ जाएंगे। https_proxy(नोट लोअर केस) उसके लिए सही कैपिटलाइज़ेशन है, लेकिन आप कभी भी इसका उपयोग अकेले नहीं करेंगे, जैसा कि आप अपने /etc/environmentऊपर करते हैं। (मुझे लगता है sकि एक टाइपो है।)
कर्ट जे। सैम्पसन

APT के लिए प्रॉक्सी के अतिरिक्त विन्यास की आवश्यकता का कारण क्या है? यह सिर्फ / etc / पर्यावरण का पालन क्यों नहीं करता है?
लोरेनो

22

निम्नलिखित की तरह कुछ काम करना चाहिए:

Acquire::http::proxy "http://lgn:pwd@192.168.1.254:8080/";
Acquire::https::proxy "http://lgn:pwd@192.168.1.254:8080/";

पोर्ट और आईपी का उपयोग करने के लिए क्या अंतर है?
लैपोट्स

ठीक है, हाँ, आपको उस प्रॉक्सी के लिए सही विवरण देना होगा जो आप निश्चित रूप से उपयोग करना चाहते हैं।
डेनिस करसेमेकर

er ... ip - यह राउटर का ip है? मेरा मतलब है कि इस आईपी का उपयोग मैंने उदाहरण से किया है, लेकिन सभी राउटर की सेटिंग मैं 192.168.1.1आईपी का उपयोग करके ब्राउज़र में कॉन्फ़िगर करता हूं । मुझे उपयोग करना चाहिए ।1 और लॉगिन और पासवर्ड ubuntu रूट या राउटर का होना चाहिए
लैपोट्स

2
क्या आप भी जानते हैं कि आप क्या कर रहे हैं? यदि आप इसके लिए विवरण नहीं जानते हैं तो आप कैसे जानते हैं कि आपको प्रॉक्सी का उपयोग करने की आवश्यकता है?
डेनिस करसेमेकर

5
फिर अपने शिक्षक से पूछें। यह "मेरे लिए मेरा होमवर्क नहीं" साइट है।
डेनिस करसेमेकर

5

आप जो कर सकते हैं वह भी कमांड चलाने की कोशिश करें sudo -E, जो पर्यावरण सेटिंग्स को ले जाएगा। यह मेरे लिए काम करने लगता है जब मैं अपडेट, ऐड-ऑप-रिपॉजिटरी और इंस्टॉल करने की कोशिश करता हूं। उदाहरण:

sudo -E add-apt-repository ppa:xxxxx

@ डेविड फ़ॉस्टर के अनुसार यह केवल शेल का उपयोग करके मैन्युअल इंटरैक्शन के लिए काम करता है, लेकिन यह स्वचालित कार्यों और सेवाओं पर काम नहीं करेगा, जो उपयोगकर्ता के इंटरैक्शन के साथ एपेट को आमंत्रित करता है।


हालांकि, बिना उपयोगकर्ता सहभागिता के Apt को लागू करने वाले स्वचालित कार्यों और सेवाओं के साथ मदद नहीं मिलेगी।
डेविड फ़ॉस्टर

नोटिस के लिए धन्यवाद, मैं आपकी टिप्पणी को प्रतिक्रिया में जोड़ दूंगा।
फ्रैंक किउ

2

यदि आपको किसी प्रॉक्सी के पीछे apt का उपयोग करने की आवश्यकता है, तो शायद बाकी सब भी प्रॉक्सी कॉन्फिगर की आवश्यकता है। मुझे अपनी प्रॉक्सी सेटिंग्स एक जगह पर प्रबंधित करना पसंद है, जो कि पर्यावरण चर होगी।

उसके लिए मैं एक बनाता हूं /etc/profiles.d/99-proxy.sh, जिसमें आवश्यक प्रॉक्सी सेटिंग्स शामिल हैं (जैसे कि बड़े पैमाने पर वर्णित):

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export https_proxy=$http_proxy
export ftps_proxy=$http_proxy

इस तरह, उस मशीन के सभी उपयोगकर्ताओं की प्रॉक्सी तक पहुँच होती है। (मत भूलना chmod a+x)

जब आप उपयोगकर्ता के रूप में apt या apt-get का उपयोग करते हैं, तो वह उपयोगकर्ता sudo का उपयोग करने में सक्षम होता है। जैसा कि फ्रैंक किउ ने वर्णन किया है, सूडो पर्यावरण चर नहीं पास करते हैं। उसके लिए आप जोड़ सकते हैं

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

(जैसे)

/etc/sudoers.d/00-environment 

या सीधे में

/etc/sudoers

फ़ाइल। इस तरह आपको केवल एक ही स्थान पर प्रॉक्सी सेटिंग्स को प्रबंधित करना होगा।


0

मूल प्रश्न गलत दिशा में हो सकता है। मेरा मानना ​​है कि आप लिनक्स में एक प्रॉक्सी सर्वर सेटअप करना चाहते हैं?

ठीक है कि लिनक्स वातावरण से मौजूदा प्रॉक्सी का उपयोग करने के लिए पूरी तरह से अलग है।

यदि आपका प्रश्न पहले वाला है तो लिनक्स में प्रॉक्सी सर्वर को कॉन्फ़िगर करने के लिए किसी तीसरे पक्ष की सेवाओं का उपयोग करें। एक उदाहरण विद्रूप हो सकता है।

विद्रूप स्थापित करने के लिए सरल आदेश:

$ sudo apt-get install squid3

फिर स्थानीय नेट (इस मामले में अपनी मशीन) की अनुमति देने के लिए कॉन्फ़िगरेशन को संपादित करें। $ sudo vi /etc/squid3/squid.conf

निम्नलिखित पंक्तियों को जोड़ें / संपादित करें:

http_access allow local_net
acl local_net src 192.168.1.0/255.255.255.0

लिनक्स मशीन के लिए अपना आईपी मान लेना 192.168.1 / 24 ब्लॉक में है।


संभवतः इस सवाल के अधिकांश पाठकों ने पहले से ही स्क्वीड स्थापित किया है;), http[s]_proxyईएनवी चर भी निर्धारित किया है, और अब आश्चर्य है कि एपीटी अभी भी काम क्यों नहीं करता है। लेकिन अगर आपको मशीन के अलावा हर चीज से HTTP 403 मिल रहा है squid- तो एक बार फिर से उस शब्द के सभी आवृत्तियों के लिए देखें, denyजिन पर टिप्पणी नहीं की गई है। (विशेष रूप से http_accessएक ही पंक्ति पर।
टॉमस गैंडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.