আমি / ইত্যাদি / নেটওয়ার্ক / ইন্টারফেসগুলি পরিবর্তন করার পরে কীভাবে রেজোলভকনফকে পুনঃজেনারে রেজলভকনফ পেতে পারি?


92

/etc/network/interfacesনীচের সাথে খুব অনুরূপ কিছু আপডেট করার পরে , আমি কীভাবে /etc/resolv.confআপডেট করব? আমি চেষ্টা করেছি (মূল হিসাবে) resolver -u, service networking restartকিন্তু তারা কার্যকর হয়নি। আমি এর জন্য সিমলিংকও স্থির করে দিয়ে আবার resolv.confচেষ্টা করেছি resolver -u। অবশেষে হতাশায় আমি পুনরায় চালু করেছিলাম, যা পুনর্নির্মাণের মাধ্যমে সমস্যার সমাধান করেছিল /etc/resolv.conf

উবুন্টু 12.04, 64 বিট সার্ভার, সমস্ত সর্বশেষ প্যাচ ইনস্টল করা হয়েছে।

উদাহরণ /etc/network/interfaces:

iface eth0 inet static
    address 192.168.3.3
    netmask 255.255.255.0
    gateway 192.168.3.1
    dns-search example.com
    dns-nameservers 192.168.3.45 192.168.8.10


আপনি কী করতে চেষ্টা করছেন যে রেজলভ.কনফ আপনাকে করতে বাধা দিচ্ছে?
কিংমিলো

উত্তর:


106

service networking restart সবসময় সমস্ত ইন্টারফেস ডাউন-আপ করার একটি নির্ভরযোগ্য উপায় নয়।

resolvconf -uকমান্ড শুধুমাত্র আপডেট resolv.confresolvconf নিজস্ব ডাটাবেস থেকে। আপনার ডাটাবেস আপডেট করতে হবে।

ডাটাবেস আপডেট করার জন্য আপনাকে বিকল্প -aবা -dবিকল্পের সাথে রেজোলভকনফ কল করতে হবে । আপনি যদি আইপআপ বা আইপিডাউন চালাবেন তখন পর্দার আড়ালে এটি ঘটে। সুতরাং, সাধারণত, অন্য যে কোনও পরিবর্তনের মতো /etc/network/interfaces, ডিএনএস- * বিকল্পগুলিতে পরিবর্তনগুলি সক্রিয় করতে আপনাকে প্রশ্নে থাকা ইন্টারফেসটি আইডাউড করতে হবে এবং আবার এটি করা হবে। অথবা আপনি রিবুট করতে পারেন।

আপনি যদি কোনও ইন্টারফেসটিকে ifdownupping ছাড়াই পরিবর্তন করতে চান (সম্ভবত আপনি মেশিনকে দূর থেকে পরিচালনা করছেন এবং সেই ইন্টারফেসের মাধ্যমে সংযুক্ত হওয়ার কারণ হয়ে থাকে) তবে আপনি কমান্ড লাইন থেকে সরাসরি রেজলভকনফ চালিয়ে একই ফলাফল অর্জন করতে পারবেন। এর জন্য রেজলভকনফের শব্দার্থবিজ্ঞানের আরও কিছুটা জ্ঞান প্রয়োজন। ধরুন প্রাসঙ্গিক / ই / এন / আই স্টাঞ্জ

iface IIII FFFF static
    address ...
    ...
    dns-nameservers X.X.X.X Y.Y.Y.Y
    dns-search SSSS

যেখানে এফএফএফএফ একটি ঠিকানা পরিবার ("ইনেট" বা "ইনেট 6")।

এই ডিএনএস- * বিকল্পগুলি সক্রিয় করার জন্য আপনি নীচে রেজোলভকনফ চালান (হ্যাঁ, স্ট্রোলের নতুন লাইনের সাথে রেজলভকনফে পাইপ করা হয়েছে)।

echo "nameserver X.X.X.X
nameserver Y.Y.Y.Y
search SSSS" | sudo resolvconf -a IIII.FFFF

প্রশ্নে প্রদত্ত স্তরের জন্য এটি নিম্নলিখিত হবে।

echo "nameserver 192.168.3.45
nameserver 192.168.8.10
search example.com" | sudo resolvconf -a eth0.inet

আরও তথ্যের জন্য রেজোলভকনফ (8) ম্যানুয়াল পৃষ্ঠা এবং রেজোলভকনফ প্যাকেজ README ফাইল (/usr/share/doc/resolvconf/README.gz) সাথে পরামর্শ করুন।


"পরিষেবা নেটওয়ার্কিং পুনঃসূচনা" করবেন না; এটি সমস্ত ইন্টারফেসকে ডাউন-আপ করার একটি নির্ভরযোগ্য উপায় নয় "" আমার জন্য ভাল কাজ করে। এটি করার পরিষ্কার উপায়টি জানা ভাল।
আকি

11
আপনার যদি "পরিষেবা নেটওয়ার্কিং পুনঃসূচনা" না করা উচিত তবে আমি কি আপনাকে এই প্রশ্নের প্রথম লাইনে না রাখার পরামর্শ দিতে পারি? তাড়াতাড়ি সমাধানের সন্ধানের সময়, আমি যে প্রথম কাজটি করেছি তা হ'ল আমি যে প্রথম আদেশটি দেখেছি তা অনুলিপি করে আটকানো হয়েছিল।
রবিন উইনস্লো

4
আমার দিন তৈরি করার জন্য @ রবিনউইনস্লো +1
পিট

8
এই উত্তরটি সেই ব্যক্তির কাছ থেকে যিনি নিজেই বিকাশ করেছেন resolvconf :)
হেইমাইল

2
/ পুনরায় পাঠ রিষ্টাট হচ্ছে /etc/network/interfaces, আপনি যে করতে পারেন: ifdown eth0 && ifup eth0; এটি এমনকি একটি দূরবর্তী ssh সেশনেও কাজ করে।
পিয়েরে-ড্যামিয়েন


5

আপনার সার্ভারগুলি দূরবর্তীভাবে পরিচালনা করছেন তাদের জন্য আপনি পারেন:

  1. dns-nameserversলাইন আপডেট করুন/etc/network/interfaces
  2. # ifdown eth01; ifup eth01

লক্ষ্য করুন যে এটির সাথে বিভক্ত এক লাইনে থাকতে হবে; (লিনাক্স কমান্ড লাইন বিভাজক)। এমনকি আপনার বর্তমান সংযোগটি হারাতে হবে না। ব্যতিক্রম ইন্টারফেস ফাইলটিতে টাইপ তৈরি করছে। এটি যদি ifupব্যর্থ হয় এবং আপনার শারীরিক অ্যাক্সেস বা অন্য কোনও ethxxসংযোগ থাকতে হবে।


2

service resolvconf restart/etc/resolv.confঅনেক ঝামেলা ছাড়াই ফাইলটি পুনরায় তৈরি করবে ।


2
আমি পেয়েছিFailed to restart resolvconf.service: Unit resolvconf.service not found.
মবিগিতল

কমান্ডটি শেষ হয়েছে তবে /etc/resolv.confউবুন্টু সার্ভারে পুনরায়
জেনারেট হয়নি

1

এই উত্তরটি উপরেরটির মতোই তবে প্রশ্নের উত্তর দেওয়ার জন্য উদাহরণগুলির কনফিগারেশন ব্যবহার করে। এছাড়াও এটি উভয় আদেশই প্রয়োজনীয় কেন তা ব্যাখ্যা করে।

সম্পাদনা করুন /etc/network/interfaces:

iface eth0 inet static
    address 192.168.3.3
    netmask 255.255.255.0
    gateway 192.168.3.1
    dns-search example.com
    dns-nameserver 192.168.3.45
    dns-nameserver 192.168.8.10

আপনি কনফিগারেশন ফাইলটি রিবুট না করা বা পুনরায় লোড না করা পর্যন্ত এই পরিবর্তনগুলি হবে না:

ইন্টারফেস ফাইলটি লাইভ আপডেট করার জন্য নিম্নলিখিত কমান্ডটি চালানো প্রয়োজন:

echo "nameserver 192.168.3.45
nameserver 192.168.8.10
search example.com" | sudo resolvconf -a eth0.inet

এটি কোনও রিবুট বা পুনরায় লোড ছাড়াই ইন্টারফেসটিতে আপডেটের অনুমতি দেয়।

তবে উপরের কমান্ডের পরিবর্তনগুলি পুনরায় বুট করার পরে হারিয়ে যাবে যদি এর মধ্যে পরিবর্তনগুলি /etc/network/interfacesনা করা হয়।

এই তালিকার বিডিনিস থেকে শেষ উত্তরটি আসলে /etc/network/interfacesফাইলটি বিশ্লেষণ করে সেই কমান্ডের মধ্যে লাইনগুলি পাইপ করে শেষ কমান্ডের জায়গায় আসলে কাজ করে sudo resolvconf -a eth0 এটি আসলে অর্ধেক উত্তর এবং ইনলাইন সেড পার্সিংয়ের সত্যই একটি ভাল উদাহরণ। আপনি যদি দেখতে চান যে এটি কীভাবে এটি কমান্ডের প্রথম অংশটি চালায় এবং এটি /etc/network/interfacesফাইলটি বিশ্লেষণ করে দেখুন এবং আপনার sudo resolvconf -a eth0কমান্ডটি চালানোর জন্য প্রয়োজনীয় সমস্ত তথ্য ছড়িয়ে দিয়েছেন :

sed 's/#.*$//' /etc/network/interfaces | grep dns- | sed 's/dns-//g'

লক্ষ্য করুন যে এটি কমান্ডের মতো একইভাবে উত্পন্ন করবে:

echo "nameserver 192.168.3.45
nameserver 192.168.8.10
search example.com"

তবে শর্ত থাকে যে /etc/network/interfacesফাইল এই তথ্য মাধ্যমে কনফিগার করা হয়েছে:

iface eth0 inet static
    address 192.168.3.3
    netmask 255.255.255.0
    gateway 192.168.3.1
    dns-search example.com
    dns-nameserver 192.168.3.45 
    dns-nameserver 192.168.8.10

দুঃখের বিষয় এটি ব্যবহার করতে পারে না। আমার ইন্টারফেসটি নেটওয়ার্ক ম্যানেজার এবং ডিএইচসিপি দ্বারা পরিচালিত হয়, সুতরাং এটিতে যুক্ত করা /etc/network/interfacesকোনও ক্ষেত্রে বৈধ বিকল্প নয়। (উবুন্টু 14.04)
টিনো

1

সহজ উত্তর:

কেবল রেজোলভকনফ ইনস্টল করুন। apt install resolvconf

এর পরে, ifup eth0ইন লাইন etc/resolv.confঅনুযায়ী ডিএনএস আপডেট করুন ।dns-nameservers/etc/network/interfaces


অজানা ইন্টারফেস। প্রত্যেকে এখানে কীভাবে বিশদটি রক্ষা করতে হবে তা সত্যই জানে ... আমি মনে করি আমাদের সমস্ত কমান্ডকে ধারক করে তোলা উচিত। প্রত্যেকের জন্য সম্পূর্ণ স্ক্রিপ্ট, কোনও গদ্য নেই।
ম্যাথটিক

1

18.04-এ, নিম্নলিখিতগুলি নির্ভরযোগ্যভাবে কাজ করে (রুট হিসাবে চালানো):

systemctl stop networking
ip address flush dev <device> # just to be safe
systemctl start networking

গুরুত্বপূর্ণ: আপনি প্যাকেজ resolvconfইনস্টল করেছেন তা নিশ্চিত করুন ।
এটি ডিফল্টরূপে বলে মনে হয় না এবং /etc/network/interfacesএগুলি থেকে কিছু (!) পরিবর্তনগুলি নিঃশব্দে উপেক্ষা করা হয় (যেমন dns-*)।


0

এটি আমার পক্ষে কাজ করেছে:

sed -re '/nameservers|dns-search/ !d' -e 's/dns-nameservers/nameserver/' -e 's/dns-search/search/' /etc/network/interfaces  | resolvconf -a eth0.inet && resolvconf -u

সেই অনুযায়ী সামঞ্জস্য করুন।


0

উবুন্টু 18.04 এর ডেস্কটপ সংস্করণে, যেখানে কোনও পরিষেবা নেই networkingএবং resolvconfএটি ডিফল্টরূপে ইনস্টল করা হয়নি, আমি resolv.confপুনরায় চালু করে পুনরায় জন্মানোতে সফল হয়েছি network-manager:

sudo service network-manager restart

-3

এছাড়াও আপনি এই আদেশটি চেষ্টা করতে পারেন:

cat /etc/network/interfaces |sed 's/#.*$//'|grep dns-|sed 's/dns-//g'|sudo resolvconf -a eth0.inet

3
এই আদেশটি কেন কাজ করা উচিত তা আপনি ব্যাখ্যা করতে পারেন?
нιηসнιη

1
লাইনে যদি আপনার একাধিক নেমসারভার আইপি থাকে তবে এটি সঠিকভাবে কাজ করে না dns-nameserver IP1 IP2। এরপরে অবশ্যই লাইনটি পুনরাবৃত্তি করতে হবে resolv.conf, তবে তা নয়।
টিনো

অধিকন্তু, /etc/network/interfacesব্যবহারসমূহ dns-nameservers(লক্ষ্য sযখন শেষে) resolvconfব্যবহারসমূহ nameserver। কমান্ড এটি দিয়ে কাজ করে না। এবং সবকিছু ঠিক থাকলেও পাইপলাইন sed | grep | sedঅবশ্যই সবচেয়ে কার্যকর উপায় হবে না।
মেলিবিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.