আমি একগুচ্ছ সমাধানের জন্য কিছু গবেষণা করেছি এবং কিছু উবুন্টু বিকাশকারীগণ 10.04 এবং তার পরে একটি প্রক্সি কনফিগারেশন (স্কুইড ভিত্তিক) নিয়ে এসেছিলেন। এটি বলা হয় squid-deb-proxy
। সার্ভার হিসাবে কাজ করার জন্য এটির জন্য কেবল একটি মেশিন প্রয়োজন। বড় সংস্থাগুলি সাধারণত তাদের নিজস্ব আয়নাগুলি চালায় তবে বেশিরভাগ মানুষের জন্য চাহিদা মিররিং যথেষ্ট।
স্কুইড-ডেব-প্রক্সি কেন?
- ক্লায়েন্টের পক্ষে ফাইলগুলির কোনও সম্পাদনা নেই।
- জেরোকনফ ব্যবহার করুন যাতে ক্লায়েন্টগুলি "শূন্য কনফিগারেশন" ছিল
- নতুন সরঞ্জাম লেখার পরিবর্তে একটি বিদ্যমান, শক্ত প্রক্সি সমাধান ব্যবহার করুন।
- একটি সাধারণ লিনাক্স প্রশাসকের জন্য সেট আপ করা সহজ।
সার্ভার কনফিগারেশন
আপনি যে মেশিনে সার্ভার হিসাবে কাজ করতে চান তা দিয়ে এই সরঞ্জামটি ইনস্টল করুন:
sudo apt-get install squid-deb-proxy avahi-utils
এখন পরিষেবা বিট শুরু করুন:
sudo start squid-deb-proxy
এবং অবাহি বিটস (আপনার যদি 12.04+ তে থাকে তবে আপনার এটির দরকার নেই):
sudo start squid-deb-proxy-avahi
এটি প্রক্সি সার্ভার ইনস্টল করবে (যা ডিফল্টরূপে 8000 পোর্ট শোনায়) এবং সার্ভারের জন্য জেরোকনফের মাধ্যমে আপনার নেটওয়ার্কে নিজেকে বিজ্ঞাপন দেওয়ার জন্য প্রয়োজনীয় অ্যাভিহি সরঞ্জামগুলি ইনস্টল করবে।
ক্লায়েন্ট কনফিগারেশন
উপর কম্পিউটারের প্রতিটি যে আপনি (তাই এটা খুব ক্যাশে ব্যবহার করতে পারেন ক্লায়েন্ট, এবং সার্ভার নিজেই) ক্যাশে ব্যবহার করতে চান, আপনি এখানে ক্লিক করে দিন স্বয়ংক্রিয়ভাবে সার্ভারের জন্য এর কার্যক্ষম বর্ণন ক্লায়েন্ট সাইড টুল ইনস্টল করতে হবে, তাদের আছে :
বা কমান্ড লাইনের মাধ্যমে:
sudo apt-get install squid-deb-proxy-client
Alচ্ছিক : সর্বাধিক দক্ষতার জন্য আপনার স্বয়ংক্রিয়ভাবে আপডেটগুলি ডাউনলোড করার জন্য একটি মেশিন সেট করা উচিত, যাতে আপনার অন্যান্য মেশিনগুলির এটির প্রয়োজন হলে এটি ইতিমধ্যে ক্যাশে রয়েছে। আপনি সিস্টেম-> প্রশাসন-> আপডেট ম্যানেজারে গিয়ে এটি করতে পারেন, তারপরে আপডেট ট্যাবটিতে "সেটিংস ..." বোতামটিতে ক্লিক করুন এটি সমস্ত আপডেট স্বয়ংক্রিয়ভাবে ডাউনলোড করতে সেট করে।
তৃতীয় পক্ষের উত্স ক্যাচিং
ডিফল্টরূপে ক্যাশে কেবলমাত্র অফিসিয়াল উবুন্টু সংগ্রহস্থলগুলিতে সেট আপ করা হয়। আরও যুক্ত করতে আপনাকে সেগুলিকে উত্সের তালিকায় যুক্ত করতে হবে /etc/squid-deb-proxy/mirror-dstdomain.acl
। এটিই আপনি ppa.launchpad.net, বা আপনি যে পরিষেবাগুলি ব্যবহার করতে পারেন সেগুলি যোগ করতে পারেন। এই ফাইলে পরিবর্তন করার পরে, sudo restart squid-deb-proxy
পরিবর্তনগুলি কার্যকর হওয়ার জন্য আপনাকে অবশ্যই চলতে হবে।
ম্যানুয়াল কনফিগারেশন
যদি কোনও কারণে আপনি জেরোকনফ ব্যবহার করতে না চান (নেটওয়ার্কের কারণে বা যাই হোক না কেন), আপনি /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
যার অর্থ ক্লায়েন্টরা ক্যাশেটি দেখে তবে এটি অনুপস্থিত, যা এখনও কিছু ক্যাশে না করায় এটি প্রত্যাশিত। পরবর্তী প্রতিটি রান টিসিপি_হাইট হিসাবে দেখা উচিত। আপনি স্কুইড ক্যাশে ফাইলগুলি এগুলিতে সন্ধান করতে পারেন /var/cache/squid-deb-proxy
।
এটি ব্যবহার করছি
তারপরে আপনার নেটওয়ার্কের সমস্ত মেশিন প্যাকেজ আনতে বাইরের নেটওয়ার্কে আঘাত করার আগে ক্যাশেটি পরীক্ষা করবে। যদি নতুন প্যাকেজ উপলব্ধ থাকে তবে প্রথম মেশিনটি নেট থেকে এটি ডাউনলোড করবে, তারপরে সেই প্যাকেজের জন্য অনুরোধগুলি সার্ভার থেকে ক্লায়েন্টদের কাছে আসবে।
করতে
বাক্সের বাইরে এবং ডিফল্ট হিসাবে নেটওয়ার্কে কেবলমাত্র একটি বিজ্ঞাপনযুক্ত ক্যাশে ব্যবহার করতে আমাদের এপিকে সক্ষম করতে হবে যাতে আপনার ক্লায়েন্ট টুকরা ইনস্টল করার প্রয়োজন হয় না। আমরা ঠিক করতে প্রয়োজন বাগ যে 403 ডেব আয়না তালিকায় নয়।