উত্তর:
dnsmasq
প্যাকেজগুলি এখনও 16.10 এবং 17.04 এ উপলব্ধ।
dnsmasq
অক্ষম করার আগেsystemd-resolved
ইনস্টল করুন এবং নির্ভরতা (বা তাদের প্যাকেজগুলি অন্তত ডাউনলোড করুন) :
sudo apt-get install dnsmasq
অক্ষম করুন systemd-resolved
এবং যাচাইকরণ dnsmasq
চলছে:
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
systemctl status dnsmasq
dnsmasq
স্বাদ মরসুম । আপনার সেটিংস প্রয়োগ করার পরে, পুনরায় চালু করুন dnsmasq
:
sudo systemctl stop dnsmasq
sudo systemctl start dnsmasq
পদক্ষেপ 2 এর পরে ধাপ 3 সম্পূর্ণ না হওয়া পর্যন্ত আপনি কোনও ওয়ার্কিং সিস্টেমের সমাধানের ব্যবস্থা ছাড়াই থাকতে পারেন। আপনাকে dnsmasq
ডিফল্ট কনফিগারেশনের সাথে কাজ করতে নেটওয়ার্কিং সাবসিস্টেমটি পুনরায় চালু করতে (বা কেবল পুনরায় বুট করতে হবে) প্রয়োজন হতে পারে। আমার পরীক্ষায় এটিতে একটি পরিচিত ডিএনএস সার্ভার যুক্ত করা /etc/dnsmasq.conf
এবং পুনরায় চালু dnsmasq
করা এটি লাইভসিডি পরিবেশে কাজ করার জন্য যথেষ্ট ছিল।
dns=dnsmasq
কনফিগারেশনে কনফিগারেশন যুক্ত করে @ ব্লেব্লার উত্তর থেকে অতিরিক্ত পদক্ষেপের প্রয়োজন ছিল/etc/NetworkManager/NetworkManager.conf
@ কুইকসোটিকের উত্তর ছাড়াও:
আপনার /etc/ নেটওয়ার্ক ম্যানেজার / নেট ওয়ার্ক ম্যানেজার.কম এ আছে তা নিশ্চিত করুন:
[main]
dns=dnsmasq
আপনার যদি এটি যুক্ত করার প্রয়োজন হয় তবে নেটওয়ার্ক ম্যানেজারটি এটি পুনরায় চালু করুন:
sudo systemctl restart NetworkManager
এবং এর /etc/resolv.conf
একটি সিমিলিংক হওয়া দরকার /var/run/NetworkManager/resolv.conf
। এইভাবে করা যেতে পারে
sudo rm /etc/resolv.conf; sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf
dns=default
এবং এটি সূক্ষ্মভাবে কাজ করে কারণ আমার কাছে নেমসার্ভারগুলি তখন ডিএনএসমাস্কে সংজ্ঞায়িত না করে নেটওয়ার্ক ম্যানেজার দ্বারা সংজ্ঞায়িত করা হয়েছে; এটি আমার জন্য কাজ করে - এনএম সিস্টেম ট্রে এর মাধ্যমে কেডিএর এনএম কনফিগারেশনে তৈরি সেটিংস থেকে নেমসার্ভারগুলি পেয়ে যায়। আমি আমার হোম নেটওয়ার্ক FWIW এ স্থির আইপি ব্যবহার করি।
সিস্টেমড-রেজোলিউডের ম্যানুয়াল অনুসারে , সিস্টেমড-রেজুলিউড তিনটি পৃথক ইন্টারফেসের মাধ্যমে নাম রেজোলিউশন পরিষেবা সরবরাহ করে:
আরএফসি 3493 দ্বারা সংজ্ঞায়িত গ্লিবিসি গেটাড্রিনফো (3) এপিআই এবং জেথোস্টবাইনেম (3) সহ এর সাথে সম্পর্কিত রেজোলভার ফাংশন। এই API টি লিনাক্স প্ল্যাটফর্মের বাইরেও বহুলাংশে সমর্থিত। এটির বর্তমান আকারে এটি DNSSEC বৈধকরণের স্থিতির তথ্যটি প্রকাশ করে না এবং এটি কেবল সিঙ্ক্রোনাস। এই API টি glibc নেম পরিষেবা স্যুইচ (এনএসএস (5)) দ্বারা সমর্থিত back গ্লিবিবির এনএসএস রিসলভার ফাংশনকে সিস্টেমড-রেজোলিউডের মাধ্যমে হোস্টের নামগুলি সমাধান করার জন্য গ্লাবসি এনএসএস মডিউল এনএসএস-রেজোলিউশন (8) এর ব্যবহার প্রয়োজন।
দেখে মনে হচ্ছে প্রথম দুটি ইন্টারফেস স্বাভাবিক ডিএনএস রেজোলিউশনে হস্তক্ষেপ করবে না এবং আমার পক্ষে সমস্যাটি তৃতীয়টিতে থাকার সম্ভাবনা রয়েছে।
এনএসএস-সমাধানের ম্যানুয়ালটিতে :
এনএসএস মডিউলটি সক্রিয় করতে, /etc/nsswitch.conf এ "হোস্টগুলি:" দিয়ে শুরু করা লাইনে "সংকল্প" যুক্ত করুন। বিশেষত, /etc/nsswitch.conf এর "হোস্টগুলি:" লাইন (তবে "ফাইলগুলি" বা "মাইমাচাইনস" এন্ট্রিগুলির পরে) এর "ঠিকঠাক" স্থাপন করার প্রস্তাব দেওয়া হয়, "ডিএনএস" এন্ট্রি উপস্থিত থাকলে তার ঠিক পরে "[! UNAVAIL = রিটার্ন]", ডিএনএস অনুসন্ধানগুলি সর্বদা সিস্টেমড-সলিউড (8) এর মাধ্যমে চলতে থাকে তবে এই পরিষেবাটি উপলভ্য না হলে এনএসএস-ডিএনএস-এ চালিত হয় তা নিশ্চিত করতে rou
সুতরাং যা প্রয়োজন তা হ'ল /etc/nsswitch.conf এর "হোস্ট:" লাইনটিতে "ডিএনএস" পূর্ববর্তীগুলি "সমাধান" করা । এবং তারপরে getaddrinfo
কেবল /etc/resolv.conf মেনে চলতে হবে ।
এই সমাধানটি সমস্ত ডিএনএস রেজোলিউশন অনুরোধগুলি পরিচালনা করতে কেবল সিস্টেমড-সমাধানকে বাধা দেয় এবং নির্দিষ্ট নেটওয়ার্ক ম্যানেজারের মধ্যে সীমাবদ্ধ নয়। এবং এটিও নিশ্চিত করে যে এলএলএমএনআর এবং এমডিএনএস পরিষেবা স্বাভাবিকভাবে কাজ করছে।
(লিনাক্সের অধীনে নাম রেজ্যুলেশন কীভাবে কাজ করে তার সাথে আমি মোটামুটি পরিচিত নই এবং এই ম্যানুয়ালগুলি থেকে আমি কী বুঝলাম সে সম্পর্কেও অনিশ্চিত P
(এক্স) উবুন্টু 18.04 এর জন্য (স্ট্যাকেক্সচেঞ্জে আমার উত্তর দেখুন )।
এখানে এর অনুলিপি দেওয়া আছে (আমি কি একটি অনুলিপি তৈরি করব?)
(এক্স) উবুন্টু 18.04 বায়োনিকের সমাধান এখানে রয়েছে।
Dnsmasq ইনস্টল করুন
sudo apt install dnsmasq
53 পোর্টে সিস্টেম-সমাধান করা শ্রোতা অক্ষম করুন (/etc/systemd/resolve.conf স্পর্শ করবেন না, কারণ এটি আপগ্রেডে ওভাররাইট করা যেতে পারে):
$ cat /etc/systemd/resolved.conf.d/noresolved.conf
[Resolve]
DNSStubListener=no
এবং এটি আবার চালু করুন
$ sudo systemctl restart systemd-resolved
(বিকল্পভাবে এটি সম্পূর্ণরূপে অক্ষম করুন $ sudo systemctl disable systemd-resolved.service
)
/Etc/resolv.conf মুছুন এবং আবার তৈরি করুন। এটি গুরুত্বপূর্ণ, কারণ ডিফল্টরূপে resolv.conf /run/systemd/resolve/stub-resolv.conf এর প্রতীকী লিঙ্ক। আপনি যদি প্রতীকী লিঙ্কটি মুছবেন না, ফাইলটি পুনরায় বুট করার সময় সিস্টেমড দ্বারা ওভাররাইট করা হবে (যদিও আমরা সিস্টেমড-রেজোলিউশন অক্ষম করেছি!)। এছাড়াও সিস্টেম-মীমাংসিত কনফিগারেশন সনাক্ত করার জন্য নেটওয়ার্ক ম্যানেজার (এনএম) এটি প্রতীকী লিঙ্ক কিনা তা পরীক্ষা করে।
$ sudo rm /etc/resolv.conf
$ sudo touch /etc/resolv.conf
এনএম দ্বারা /etc/resolv.conf ওভাররাইটিং অক্ষম করুন (একটি বিকল্প আরসি-ম্যানেজার এছাড়াও রয়েছে, তবে এটি একটি ম্যানুয়ালে বর্ণিত সত্ত্বেও এটি কাজ করে না):
$ cat /etc/NetworkManager/conf.d/disableresolv.conf
[main]
dns=none
এবং এটি পুনরায় চালু করুন:
$ sudo systemctl restart NetworkManager
এনএম থেকে রেজোলভকনফ ব্যবহার করতে ড্যানমাস্ককে বলুন:
$ cat /etc/dnsmasq.d/nmresolv.conf
resolv-file=/var/run/NetworkManager/resolv.conf
এবং এটি পুনরায় চালু করুন:
$ sudo systemctl restart dnsmasq
সমাধানের জন্য dnsmasq ব্যবহার করুন:
$ cat /etc/resolv.conf
# Use local dnsmasq for resolving
nameserver 127.0.0.1