কেন / ইত্যাদি / হোস্টগুলিতে পরিবর্তনগুলি তত্ক্ষণাত কার্যকর হয়?


18

/etc/hostsফাইলের পরিবর্তনগুলি তত্ক্ষণাত্ কার্যকর হবে বলে মনে হচ্ছে। আমি বাস্তবায়ন সম্পর্কে আগ্রহী। এই বৈশিষ্ট্যটি অর্জন করতে কোন যাদু ব্যবহার করা হয়?

  1. উবুন্টুকে জিজ্ঞাসা করুন: / ইত্যাদি / হোস্টগুলি সংশোধন করার পরে কোন পরিষেবাটি পুনরায় চালু করা দরকার?
  2. নেট অ্যাপ সমর্থন: / ইত্যাদি / হোস্ট ফাইল কীভাবে কাজ করে

5
গতিতে কেবল একটি নোট হোস্ট ফাইলটি সাধারণত খুব ছোট, খুব কম কয়েক কেবি-র উপরে। এটি সম্ভবত ফাইলটি পড়ার জন্য ব্যবহৃত সংকলিত লাইব্রেরির চেয়ে ছোট। একটি ছোট নিয়মিত ব্যবহৃত ফাইল প্রায়শই স্মৃতিতে ক্যাশে থাকবে। সুতরাং ফাইলটি প্রতিটি অনুরোধের জন্য পড়তে পারলেও তা করার জন্য ওভারহেডটি ন্যূনতম হবে (যেমন: খুব দ্রুত)।
ফিলিপ কাপলিং

2
সম্পর্কিত unix.stackexchange.com/questions/388875/... ফিলিপ এর মন্তব্যের :)
জেফ স্ক্যালার হলেন

উত্তর:


27

যাদুটি /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হোস্টের নামটি সমাধান করার জন্য প্রতিটি সময় তারা খোলেন এবং পড়বেন , এমনকি যদি তারা সরাসরি লিবিসি-র সমাধানকারী ব্যবহার না করে তবে এর কাজগুলি অন্য উপায়ে প্রতিলিপি করছেন।


1
স্নিপেট কী দয়া করে দয়া করে সে সম্পর্কে আরও বিস্তারিত বলতে পারেন? আমি যে বিষয়ে আগ্রহী তা হ'ল পরিবর্তনগুলি কীভাবে চলমান কোডে প্রতিবিম্বিত হয় (ওএসের নেটওয়ার্ক অংশ হওয়া উচিত?)।
নভেম্বর

7
@ রডওয়ানা: তার অর্থ: "প্রত্যেকবার যখন কোনও হোস্ট-নেম সন্ধান করা দরকার তখন রেজোলার (সি লাইব্রেরির অংশ) খোলা হয় / ইত্যাদি / হোস্ট এবং এটি পড়ছে So নতুন বিষয়বস্তু "।
ডিসেম্বর

3
@ রডওয়ানা, "চলমান কোড" সম্পর্কিত, আপনি তাত্ক্ষণিকভাবে পরিবর্তনগুলি দেখার কারণটি হ'ল অনেক মানক প্রোগ্রামগুলি অ্যাড্রেসগুলি ক্যাশে করে না (বা তাদের কিছু বুদ্ধিমান ক্যাশে কৌশল রয়েছে যা / ইত্যাদি / হোস্টগুলিতে আপডেটের জন্য শোনায়)। অবশ্যই এখানে কিছু প্রোগ্রাম রয়েছে যা অবিলম্বে / ইত্যাদি / হোস্টগুলিতে পরিবর্তনগুলি দেখতে পাবে না এবং তাদের পুনরায় আরম্ভ করার দরকার আছে। কোডটি যে কেউ লিখেছেন এটি সম্পূর্ণরূপে। নিজেই / ইত্যাদি / হোস্ট সম্পর্কে মায়াবী কিছুই নেই।
স্যামইননউ

9

অন্যান্য বিষয়গুলির মধ্যে নাম রেজোলিউশন পরিচালনা করে /etc/nsswitch.conf। এখানে একটি অংশ:

passwd:     files sss
shadow:     files sss
group:      files sss
hosts:      files dns myhostname
(...) 

hostsলাইন নোট করুন । এটি বলে: "হোস্টনামটি সমাধান /etc/hostsকরার সময়, হোস্টনামটি অনুসন্ধান করার জন্য প্রথমে ফাইলটি পড়ুন , যদি পাওয়া না যায় তবে ডিএনএস কোয়েরি চালান, যদি পাওয়া না যায় তবে স্থানীয়ভাবে কনফিগার করা সিস্টেম হোস্ট-নেম চেষ্টা করুন"।

এটি এত দ্রুত কেন এখানে। মনে রাখবেন যে এটি মেশিনে নেটওয়ার্ক পরিষেবাদির উপর নির্ভর করে না, তাই পুনরায় চালু করার বা পুনরায় লোড করার কোনও পরিষেবা নেই।


1
কিন্তু এটা করতে পারে একটি ক্যাশে (বলুন, পার্স এবং প্রধান মেমরি) ফাইলের সংস্করণ ব্যবহার /etc/hosts। এটি কেন ক্যাশেড সংস্করণ ব্যবহার করছে না?
পিটার মর্টেনসেন

2
@ পিটারমোরটেনসেন, কারণ ওএস ইতিমধ্যে ফাইল অ্যাক্সেসকে ক্যাচ করে, এবং এমনকি হ্যান্ডলগুলি সঠিকভাবে লেখায়।
মাইকেল বর্গওয়ার্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.