मैंने समाधानों के एक समूह में कुछ शोध किया और कुछ उबंटू डेवलपर्स 10.04 और बाद के लिए प्रॉक्सी कॉन्फ़िगरेशन (स्क्वीड पर आधारित) के साथ आए। इसे कहते हैं squid-deb-proxy
। इसे केवल सर्वर के रूप में कार्य करने के लिए मशीन की आवश्यकता होती है। बड़े संगठन आमतौर पर अपना पूरा दर्पण चलाते हैं लेकिन अधिकांश लोगों के लिए ऑन मिररिंग पर्याप्त है।
विद्रूप-वाद-विवाद क्यों?
- क्लाइंट साइड पर फ़ाइलों का कोई संपादन नहीं।
- Zeroconf का उपयोग करें ताकि ग्राहक "शून्य कॉन्फिगर" हों
- एक नया उपकरण लिखने के बजाय एक मौजूदा, ठोस प्रॉक्सी समाधान का उपयोग करें।
- एक विशिष्ट लिनक्स व्यवस्थापक के लिए सेट करना आसान है।
सर्वर कॉन्फ़िगरेशन
जिस मशीन पर आप सर्वर के रूप में कार्य करना चाहते हैं, उसके साथ उपकरण स्थापित करें:
sudo apt-get install squid-deb-proxy avahi-utils
अब सेवा बिट्स शुरू करें:
sudo start squid-deb-proxy
और अवही बिट्स (आपको इसकी आवश्यकता नहीं है यदि आप 12.04+ पर हैं):
sudo start squid-deb-proxy-avahi
यह प्रॉक्सी सर्वर (जो डिफ़ॉल्ट रूप से 8000 को पोर्ट करने के लिए सुनता है) और सर्वर के लिए जरुरी उपकरण आपके नेटवर्क पर zeroconf के माध्यम से विज्ञापन करने के लिए आवश्यक होगा।
ग्राहक विन्यास
पर कंप्यूटर के प्रत्येक है कि आप (इसलिए यह भी कैश का उपयोग कर सकते ग्राहकों, और सर्वर पर ही) कैश का उपयोग करना चाहते, तो आप यहां क्लिक कि चलो स्वचालित रूप से सर्वर के लिए के लिए उपयुक्त नज़र ग्राहक के पक्ष उपकरण स्थापित करने की आवश्यकता है, उन्हें है :
या कमांड लाइन के माध्यम से:
sudo apt-get install squid-deb-proxy-client
वैकल्पिक : अधिकतम दक्षता के लिए आपको स्वचालित रूप से अपडेट डाउनलोड करने के लिए एक मशीन सेट करनी चाहिए, ताकि जब आपकी अन्य मशीनों को इसकी आवश्यकता हो तो यह पहले से ही कैश में हो। आप इसे सिस्टम-> प्रशासन-> अपडेट मैनेजर पर जाकर कर सकते हैं, फिर "सेटिंग ..." बटन पर क्लिक करें, अपडेट टैब में इसे सभी अपडेट को स्वचालित रूप से डाउनलोड करने के लिए सेट करें।
कैशिंग 3 पार्टी स्रोत
डिफ़ॉल्ट रूप से कैश को केवल कैश ऑफिशियल उबंटू रिपॉजिटरी में सेट किया जाता है। अधिक जोड़ने के लिए आपको उन्हें स्रोतों की सूची में जोड़ना होगा /etc/squid-deb-proxy/mirror-dstdomain.acl
। यह वह जगह है जहाँ आप ppa.launchpad.net, या अन्य सेवाओं को जोड़ सकते हैं जिनका आप उपयोग कर सकते हैं। इस फ़ाइल में परिवर्तन करने के बाद, sudo restart squid-deb-proxy
परिवर्तनों को प्रभावी बनाने के लिए आपको चलना चाहिए ।
मैनुअल कॉन्फ़िगरेशन
यदि किसी कारण से आप zeroconf (नेटवर्क कारणों या जो कुछ भी) का उपयोग नहीं करना चाहते हैं, तो आप मैन्युअल रूप /etc/apt/apt.conf
से निम्नलिखित श्लोक को संपादित और जोड़कर प्रॉक्सी का उपयोग करने के लिए एक क्लाइंट सेट कर सकते हैं , (0.0.0.0 को सर्वर के आईपी पते से बदलें) ):
Acquire {
Retries "0";
HTTP { Proxy "http://0.0.0.0:8000"; };
};
फ़ायरवॉल
यदि आप फ़ायरवॉल का उपयोग कर रहे हैं, तो अवधी 224.0.0.0/4 पते पर 5353 का उपयोग करता है और इस तरह के नियम की आवश्यकता होती है:
# Specifically port 5353 which avahi uses
-A INPUT -i eth2 -d 224.0.0.0/4 --dport 5353 -j ACCEPT
# OR
# Wide open so all local broadcasting works
-A INPUT -i eth2 -d 224.0.0.0/4 -j ACCEPT
अगला, आपको प्रॉक्सी के माध्यम से वास्तविक संचार के लिए टीसीपी पोर्ट 8000 खोलने की आवश्यकता है। इस तरह से कम या ज्यादा:
-A INPUT -i eth2 -p tcp -m tcp --dport 8000 -d 192.168.0.1 -s 192.168.0.0/24 --syn -j ACCEPT
ये नियम सिर्फ आपकी मदद करने के लिए हैं। वे शायद आपके सेटअप से एक से मेल नहीं खाते। (यानी गलत इंटरफ़ेस, गलत निजी नेटवर्क आईपी पते, आदि)
इसकी पुष्टि करता है
पहले सर्वर पर लॉग को पूंछें ताकि आप इसे देख सकें: tail -F /var/log/squid-deb-proxy/access.log
और फिर किसी भी मशीन पर एक अपडेट चलाएं जिसमें क्लाइंट स्थापित है; लॉग को इस तरह प्रविष्टियों के साथ स्क्रॉल करना शुरू करना चाहिए:
1307310795.647 32 192.168.1.106 TCP_MISS/302 768 GET http://us.archive.ubuntu.com/ubuntu/dists/natty-proposed/universe/i18n/Translation-en.xz - DIRECT/141.210.26.10 text/html
1307310795.683 34 192.168.1.106 TCP_MISS/302 752 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/main/i18n/Translation-en_US.lzma - DIRECT/141.210.26.10 text/html
1307310795.716 32 192.168.1.106 TCP_MISS/302 746 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/main/i18n/Translation-en.lzma - DIRECT/141.210.26.10 text/html
1307310795.750 32 192.168.1.106 TCP_MISS/302 764 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/multiverse/i18n/Translation-en_US.lzma - DIRECT/141.210.26.10 text/html
1307310795.784 32 192.168.1.106 TCP_MISS/302 758 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/multiverse/i18n/Translation-en.lzma - DIRECT/141.210.26.10 text/html
1307310795.817 32 192.168.1.106 TCP_MISS/404 657 GET http://us.archive.ubuntu.com/dists/natty-proposed/multiverse/i18n/Translation-en_US.xz - DIRECT/141.210.26.10 text/html
जिसका अर्थ है कि ग्राहक कैश देखते हैं, लेकिन उसे याद नहीं कर रहे हैं, जो कि उम्मीद है क्योंकि यह अभी तक कुछ भी कैश नहीं है। प्रत्येक बाद के रन को TCP_HIT के रूप में दिखाना चाहिए। आप स्वयं स्क्वीड कैश फ़ाइलों को पा सकते हैं /var/cache/squid-deb-proxy
।
उसका इस्तेमाल कर रहे हैं
तब से आपके नेटवर्क की सभी मशीनें पैकेज को लाने के लिए बाहर के नेटवर्क को हिट करने से पहले कैश की जाँच करेंगी। यदि नए पैकेज उपलब्ध हैं तो पहली मशीन इसे नेट से डाउनलोड करेगी, उसके बाद उस पैकेज के लिए अनुरोध सर्वर से क्लाइंट्स के लिए आएगा।
करने के लिए
हमें अभी भी बॉक्स से बाहर नेटवर्क पर केवल एक विज्ञापित कैश का उपयोग करने में सक्षम करने की आवश्यकता है और डिफ़ॉल्ट रूप से इसलिए आपको क्लाइंट टुकड़ा स्थापित करने की आवश्यकता नहीं है। हमें बग को ठीक करने की भी आवश्यकता है कि 403 की डिबेट मिरर सूची में नहीं है।