14.04 এর পর থেকে আমি কীভাবে ডিএনএস ব্যবহার করছি উবুন্টুতে


14

( 12.04 এর জন্য অনুরূপ প্রশ্নের ফলোআপ করুন ))

উবুন্টু 12.04 এর আগে আপনি সক্রিয় ডিএনএসটি দেখতে পাবেন /etc/resolv.conf। উবুন্টু 12.04-এ, নেটওয়ার্কম্যানেজার ফাইলটির সাথে আর কাজ করে না। আপনাকে সরাসরি কমান্ড লাইন সরঞ্জামের সাথে পরামর্শ করতে হবে nm-tool

মজার nm-toolবিষয় হল, 14.04 এবং তার পরে ডিফল্টরূপে আর ইনস্টল করা হবে না। যদিও আপনি এখনও এটি ইনস্টল apt-get installকরতে পারেন, আপনি সমস্ত উবুন্টুকে বাক্সের বাইরে রাখতে অনুমান করতে পারবেন না।

তাই প্রশ্ন থেকেই যায়। আপনি কীভাবে জানবেন, ডিফল্ট ইনস্টলেশন দ্বারা, আপনি ডিএনএস কমান্ড লাইনের মাধ্যমে ব্যবহার করছেন?

উত্তর:


30

দ্রুত উত্তর

একটি নতুন নেটওয়ার্কম্যানেজার সরঞ্জাম nmcliএখন ডিফল্টরূপে ইনস্টল করা আছে। কমান্ড লাইন সরঞ্জামটি খুব শক্তিশালী তবে এটি শিখতে আরও শক্ত। আমাদের প্রশ্নের সাথে লেগে থাকুন, সংক্ষিপ্ত উত্তরটি হ'ল:

nmcli dev show | grep DNS

বা, ক্লিনার আউটপুট আছে

nmcli dev show | grep DNS | sed 's/\s\s*/\t/g' | cut -f 2


ব্যাখ্যা করা

আপনার যদি সময় থাকে তবে আমি উপরের জাম্বো-বিড়বিড় করে ব্যাখ্যা করতে পারি:

  1. nmcli dev show

    পুরানো nm-toolকমান্ডের মতো কিছুটা কাজ করে । এটি বর্তমান নেটওয়ার্কিং তথ্যটি বিস্তারিতভাবে বর্ণনা করে।

    আপনি ইন্টারফেসের নাম যুক্ত করে একটি নির্দিষ্ট ইন্টারফেসের সেটিংও শিখতে পারেন। উদাহরণস্বরূপ, এর তথ্য শিখতে eth0আপনি ব্যবহার করতে পারেন nmcli dev show eth0

  2. grep DNS

    স্পষ্টতই এতে "ডিএনএস" পাঠ্যযুক্ত রেখাগুলি গ্রেপ করুন।

  3. sed 's/\s\s*/\t/g' | cut -f 2

    এটি কেবল আউটপুট পরিষ্কার করার জন্য। cutকলাম দ্বারা আউটপুট নির্বাচন করতে পারেন, কিন্তু এটা (যখন বিভাজক হিসাবে শুধুমাত্র 1 টি অক্ষর লাগে nmcliব্যবহারসমূহ অনেক Space)। sedশূণ্যস্থান সক্রিয়, মূল আউটপুটে, TAB এর মধ্যে।


7
+1 টি। এই ইউটিলিটি সম্পর্কে জানতাম না, তবে আমি উবুন্টু 14.04 চালাই, এবং আমার আদেশটি nmcli d list। তা ছাড়া এখানে দুর্দান্ত জিনিস!
টেরেন্স

1
r+rr*
সেডের

1
এই উত্তরটি কি সংস্করণ ভিত্তিক? আমার ট্রাস্টির এনএমসি্লি সংস্করণে 0.9.8.8 nmcli dev showবড় বড় কোঁকড়ানো ত্রুটি বার্তা প্রস্থান করে।
অলি

5
@ অলি nmcli dev show15.04 এ nmcli এর অন্তর্গত। কোনও কারণে পুরানো এনএমসি্লিটিকে অস্থিতিশীল বলে মনে করা হয়েছিল, তাই। । । nmcliফেডোরার মতো একই পতাকা রয়েছে এখন তারা ব্যবহার করে। সম্ভবত এটি সিস্টেমেডে স্যুইচ করার কারণে। এবং যেহেতু এই উত্তরটি 15.04-এ ফিট করে তবে 14.04-তে নয়, আমি দৃ down়ভাবে এটিকে ডাউনওয়েট করার প্রলোভনে আছি
সের্গি কলডিয়াজহনি

1
আমি উপরের মন্তব্যগুলির প্রতিধ্বনি করতে চাই, এটি 15.04-র ক্ষেত্রে সঠিক হতে পারে তবে 14.04-র ক্ষেত্রে সঠিক নয়, যা প্রশ্ন is
অ্যালেক্স

4

প্যাকেট বিশ্লেষণটি এমন বিকল্প পদ্ধতি হবে যা আপনার ব্যবহৃত নেটওয়ার্কম্যানেজার বা অন্যান্য নেটওয়ার্ক সংযোগ সরঞ্জাম নির্বিশেষে কাজ করে। বেসিক ধারণাটি হল nslookupপ্যাকেটগুলি কোথায় যায় তা দ্বিতীয় টার্মিনালের সাথে এবং একটি ডিএনএস কোয়েরি প্রেরণ করা ।

তার জন্য আমাদের প্রথমবারের মতো নেটওয়ার্কের সাথে সংযোগ স্থাপন করা দরকার, যাতে সংযোগগুলি বিশৃঙ্খলা না করে এবং নিম্নলিখিত কমান্ডটি চালায়:

sudo tcpdump -vv -i wlan0 -W 1200 | grep google.com  

বিকল্প টার্মিনাল রান:

nslookup google.com 

আপনি একবার থেকে প্যাকেটগুলির তালিকা পেয়ে গেলে tcpdump, আপনার আইপি ঠিকানা থেকে তারা কোথায় যায় তা পরীক্ষা করুন।

উদাহরণ স্বরূপ,

$ sudo tcpdump -vv -i wlan0 -W 1200 | grep google.com                            
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
    eagle.29862 > b.resolvers.Level3.net.domain: [udp sum ok] 64057+ [1au] A? google.com. ar: . OPT UDPsize=4096 (39)
    b.resolvers.Level3.net.domain > eagle.29862: [udp sum ok] 64057 q: A? google.com. 11/0/0 google.com. A 173.194.115.64, google.com. A 173.194.115.65, google.com. A 173.194.115.72, google.com. A 173.194.115.66, google.com. A 173.194.115.69, google.com. A 173.194.115.78, google.com. A 173.194.115.70, google.com. A 173.194.115.71, google.com. A 173.194.115.68, google.com. A 173.194.115.67, google.com. A 173.194.115.73 (204)
    eagle.16429 > b.resolvers.Level3.net.domain: [udp sum ok] 38822+ A? google.com. (28)

আপনি দেখতে পাচ্ছেন যে, আমার ল্যাপটপ, eagleআমার বিশ্ববিদ্যালয়ের ডিএনএসে প্যাকেট প্রেরণ করে b.resolvers.Level3.net.domain। আপনি যদি আইপি ঠিকানা দেখতে চান তবে আপনি -nপতাকাটি ব্যবহার করতে পারেন tcpdump

উদাহরণ স্বরূপ:

$ sudo tcpdump -n -vv -i wlan0 -W 1200 | grep google.com                         
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
    10.10.87.145.56474 > 4.2.2.2.53: [udp sum ok] 15606+ A? google.com. (28)

2

আপনার নেটওয়ার্ক সংযোগগুলি পরীক্ষা করুন:

ls /etc/NetworkManager/system-connections/

এবং আপনি যে সংযোগটি কনফিগার করতে চান তা চয়ন করুন।

 sudo cat /etc/NetworkManager/system-connections/Internet | grep dns

আপনার সংযোগের নাম ছাড়াই "ইন্টারনেট" প্রতিস্থাপন করুন


ব্যবহার এখনও ব্যবহার করতে পারে nm-tool:

nm-tool | grep DNS

এটি U14.04 এর জন্য এবং পরে ব্যবহারের জন্য ইনস্টল করুন

sudo apt-get install nm-tool

উদাহরণ:

nm-tool | grep DNS
    DNS:             192.168.1.1
    DNS:             192.168.10.1
    DNS:             192.168.11.1

1

এটি এখনও 14.04 সংস্করণে ডিফল্টরূপে উপলব্ধ কারণ এটি নেটওয়ার্ক-ম্যানেজারের সাথে বান্ডিল হয়। এটি এর পরে নেটওয়ার্ক-ম্যানেজার থেকে বাদ পড়েছে (সংস্করণ 15.04 এবং তারপরে) এবং এটিপি-গেটের মাধ্যমে পাওয়া যায় না।

আপাতত, 15.04 সংস্করণে, আপনি পুরানো প্যাকেজটি ম্যানুয়ালি এনএম-সরঞ্জাম ডাউনলোড এবং আহরণ করতে পারেন। নিম্নলিখিত আদেশগুলি চালান।

প্রথমে এতে কাজ করার জন্য একটি অস্থায়ী ডিরেক্টরি তৈরি করুন:

cd
mkdir APTGET;cd APTGET

তারপরে, পুরানো সংস্করণটি ডাউনলোড করুন এবং ফাইলগুলি বের করুন:

wget 'http://us.archive.ubuntu.com/ubuntu/pool/main/n/network-manager/network-manager_0.9.8.8-0ubuntu7.1_amd64.deb'
ar xvf *
tar xvf dat*

একটি নতুন ডিরেক্টরি করুন:

mkdir ~/bin

(যদি এটি বলে file already exists, কেবল বার্তাটিকে উপেক্ষা করুন এবং এগিয়ে যান)।

নতুন ডিরেক্টরিতে ফাইলটি অনুলিপি করুন:

cp ./usr/bin/nm-tool ~/bin

হোম ডিরেক্টরিতে ফিরে যান এবং অস্থায়ী ডিরেক্টরিটি মুছুন:

cd ..
rm -R APTGET

এখন, এনএম-সরঞ্জামের জন্য একটি উপকরণ সেট করুন:

cp ~/.bashrc ~/.bashback
echo 'alias nm-tool="~/bin/nm-tool"' | tee -a ~/.bashrc;. ~/.bashrc

বর্তমান ব্যবহারকারীর এখন টার্মিনাল থেকে এনএম-সরঞ্জাম চালানো উচিত।


অতিরিক্তভাবে, এটি এখনও আপনি ব্যবহার করছেন এমন সমস্ত আসল ডিএনএস রেজলভার সঠিকভাবে সরবরাহ করতে পারে না ।

একটি সম্পূর্ণ প্রতিবেদন পেতে আপনি DNSleaktest.com এ যেতে পারেন । পূর্ণাঙ্গ প্রতিবেদন পেতে এক্সটেন্ডড টেস্টে ক্লিক করুন ।


1

আসলে, নেটওয়ার্কম্যানেজার ব্যবহার করে /etc/resolv.conf। তবে ডিফল্ট সেটিংসে তালিকাভুক্ত ডিএনএস সার্ভারটি resolv.confহ'ল 127.0.0.1কারণ নেটওয়ার্কম্যানেজার তার নিজস্ব অভ্যন্তরীণ ডিএনএস পরিষেবাটি কিছু অস্পষ্ট প্রযুক্তিগত কারণে ব্যবহার করে যা অনেক মানুষের পক্ষে প্রাসঙ্গিক নয়। এই কারণেই আপনাকে nmcliডিএনএস সার্ভারগুলি নেটওয়ার্কম্যানেজার অভ্যন্তরীণভাবে কী ব্যবহার করছে তা দেখতে ব্যবহার করতে হবে।

তবে, এই আচরণটি অক্ষম করে এবং সেই পুরানোটির কাছে ফিরে যাওয়া সম্ভব যেখানে প্রকৃত ডিএনএস সার্ভার ব্যবহারের তালিকায় রয়েছে resolv.conf। এটি করতে, কেবল লাইনটি dns=dnsmasqভিতরে মন্তব্য করুন /etc/NetworkManager/NetworkManager.confএবং পুনরায় বুট করুন। বেশিরভাগ মানুষের ক্ষেত্রে, আসল ডিএনএস সার্ভারটি এখন দেখানো হবে তার বাইরে এই কোনও পার্থক্য করা উচিত resolv.conf। যদি আপনি যে কোণার ক্ষেত্রে এই পরিবর্তনটি চালু হয়েছিল সেগুলির মধ্যে থাকেন, এটি দ্রুত স্পষ্ট হওয়া উচিত এবং আপনি আবার লাইনটি সংকুচিত করে ডিফল্ট আচরণে ফিরে যেতে পারেন।


1

nmcli dev list | গ্রেপ ডিএনএস

এটি কিছু আউটপুট হবে;
IP4.DNS[1]: 8.8.8.8 IP4.DNS[1]: 8.8.8.8 IP4.DNS[2]: 8.8.4.4

উপরের কমান্ডটি উবুন্টু 16.04 এর আগে
উবুন্টু 16.04 ব্যবহারের পূর্বে কাজ করে :
nmcli dev show | grep DNS


আপনি সম্ভবত বলতে চান nmcli dev show, না nmcli dev list?
হলব

আমি কিছু খনন করেছি, মনে হচ্ছে তারা উবুন্টু 14.04 এবং 16.04 এর মধ্যে সিএলআই পরিবর্তন করেছে। দৃশ্যত nmcli dev list14.04 এ কাজ করে তবে 16.04 এ নয় not
হলব

1

যদি কারও কাছে আমার মতো উবুন্টু 18.04LTS এর মতো প্রশ্ন থাকে:

নেটওয়ার্ক-ম্যানেজারের মাধ্যমে পরিচালিত সমস্ত নেটওয়ার্ক ডিভাইসগুলির তালিকা দিন:

networkctl list

নির্দিষ্ট ডিভাইসের কনফিগারেশন দেখান:

networkctl status eth0

Eth0 এর পরিবর্তে আপনাকে আগে তালিকাতে প্রদর্শিত আপনার নেটওয়ার্ক ডিভাইসের নাম লিখতে হবে। ডিএনএস-এন্ট্রি না থাকলে আপনার কার্ডে কোনও কনফিগার করা নেমসার্ভার নেই

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.