/etc/hostsফাইলের পরিবর্তনগুলি তত্ক্ষণাত্ কার্যকর হবে বলে মনে হচ্ছে। আমি বাস্তবায়ন সম্পর্কে আগ্রহী। এই বৈশিষ্ট্যটি অর্জন করতে কোন যাদু ব্যবহার করা হয়?
/etc/hostsফাইলের পরিবর্তনগুলি তত্ক্ষণাত্ কার্যকর হবে বলে মনে হচ্ছে। আমি বাস্তবায়ন সম্পর্কে আগ্রহী। এই বৈশিষ্ট্যটি অর্জন করতে কোন যাদু ব্যবহার করা হয়?
উত্তর:
যাদুটি /etc/hostsফাইলটি খুলছে এবং এটি পড়ছে:
strace -e trace=file wget -O /dev/null http://www.google.com http://www.facebook.com http://unix.stackexchange.com 2>&1 | grep hosts
open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 4
open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 5
open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 4
getaddrinfo(3)ফাংশন, যা শুধুমাত্র মান নাম সমাধানে ইন্টারফেস, শুধু খুলবে এবং পড়তে /etc/hostsপ্রতিবার এটি একটি হোস্ট নাম সমাধান করতে বলা হয়।
আরও পরিশীলিত অ্যাপ্লিকেশন যা স্ট্যান্ডার্ড ব্যবহার করছে না getaddrinfo(3), তবে এখনও কোনওভাবে /etc/hostsমিশ্রণে যুক্ত হচ্ছে (যেমন dnsmasqডিএনএস সার্ভার) ফাইলগুলির inotify(7)পরিবর্তনগুলি নিরীক্ষণ /etc/hostsকরতে এবং প্রয়োজনে কেবল এটি পুনরায় পড়তে পারে।
ব্রাউজারগুলি এবং এই জাতীয় অ্যাপ্লিকেশনগুলি এটি করবে না। /etc/hostsহোস্টের নামটি সমাধান করার জন্য প্রতিটি সময় তারা খোলেন এবং পড়বেন , এমনকি যদি তারা সরাসরি লিবিসি-র সমাধানকারী ব্যবহার না করে তবে এর কাজগুলি অন্য উপায়ে প্রতিলিপি করছেন।
অন্যান্য বিষয়গুলির মধ্যে নাম রেজোলিউশন পরিচালনা করে /etc/nsswitch.conf। এখানে একটি অংশ:
passwd: files sss
shadow: files sss
group: files sss
hosts: files dns myhostname
(...)
hostsলাইন নোট করুন । এটি বলে: "হোস্টনামটি সমাধান /etc/hostsকরার সময়, হোস্টনামটি অনুসন্ধান করার জন্য প্রথমে ফাইলটি পড়ুন , যদি পাওয়া না যায় তবে ডিএনএস কোয়েরি চালান, যদি পাওয়া না যায় তবে স্থানীয়ভাবে কনফিগার করা সিস্টেম হোস্ট-নেম চেষ্টা করুন"।
এটি এত দ্রুত কেন এখানে। মনে রাখবেন যে এটি মেশিনে নেটওয়ার্ক পরিষেবাদির উপর নির্ভর করে না, তাই পুনরায় চালু করার বা পুনরায় লোড করার কোনও পরিষেবা নেই।
/etc/hosts। এটি কেন ক্যাশেড সংস্করণ ব্যবহার করছে না?