कैसे पता करूँ कि 14.04 से मैं उबंटू में DNS का उपयोग कर रहा हूं


14

( 12.04 के लिए इसी तरह के प्रश्न का अनुसरण करें ।)

Ubuntu 12.04 से पहले, आप सक्रिय DNS को देख सकते हैं /etc/resolv.conf। Ubuntu 12.04 में, NetworkManager अब फ़ाइल के साथ काम नहीं करता है। आपको कमांड लाइन टूल से सीधे परामर्श करना होगा nm-tool

दिलचस्प है, nm-toolअब 14.04 और बाद में डिफ़ॉल्ट रूप से स्थापित नहीं किया गया है। यद्यपि आप अभी भी स्थापित apt-get installकर सकते हैं, आप सभी उबंटू को उस बॉक्स से बाहर मान सकते हैं।

तो सवाल बना हुआ है। आप कैसे जानते हैं, डिफ़ॉल्ट स्थापना के द्वारा, DNS आप कमांड लाइन द्वारा उपयोग कर रहे हैं?

जवाबों:


30

शीघ्र जवाब

nmcliडिफ़ॉल्ट रूप से अब एक नया NetworkManager टूल इंस्टॉल किया गया है। कमांड लाइन टूल बहुत शक्तिशाली है लेकिन सीखने में थोड़ा कठिन है। हमारे सवाल का जवाब दें, संक्षिप्त उत्तर है:

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

    स्पष्ट रूप से इसमें केवल "DNS" पाठ के साथ लाइनों को पकड़ें।

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

    यह केवल आउटपुट को साफ करने के लिए है। cutकॉलम के आधार पर उत्पादन का चयन कर सकते हैं, लेकिन यह (जबकि विभाजक के रूप में केवल 1 चरित्र लेता है nmcliका उपयोग करता है कई अंतरिक्ष)। sedरिक्त स्थान बदल जाता है, मूल उत्पादन में, टैब में।


7
+1। इस उपयोगिता के बारे में नहीं पता था, हालाँकि, मैं Ubuntu 14.04 चलाता हूं, और मेरी आज्ञा है nmcli d list। उसके अलावा, यहाँ बढ़िया सामान!
टेरेंस

1
सीड में विस्तारित रेगेक्स के लिए -ई फ्लैग है, r+इसके बजायrr*
स्क्वीडली

1
यह उत्तर किस संस्करण पर आधारित है? मेरे ट्रस्टी के nmcli संस्करण में 0.9.8.8 nmcli dev showबड़े घुंघराले त्रुटि संदेश हैं।
ओली

5
@ ओली nmcli dev show15.04 को nmcli से संबंधित है। किसी कारण से पुरानी nmcli को अस्थिर माना गया था, इसलिए। । । अब वे nmcliफ़ेडोरा के समान झंडे का उपयोग करते हैं । संभवतः यह सिस्टमड के स्विच के कारण है। और क्योंकि यह उत्तर 15.04 के लिए फिट बैठता है, लेकिन 14.04 के लिए नहीं है, मुझे इसका अपमान करने के लिए जोरदार प्रलोभन दिया गया है
सर्जियो कोलोडियाज़नी

1
मैं उपरोक्त टिप्पणियों को प्रतिध्वनित करना चाहूंगा, यह 15.04 के लिए सही हो सकता है, लेकिन 14.04 के लिए सही नहीं है, जो प्रश्न है।
एलेक्स

4

पैकेट विश्लेषण एक वैकल्पिक तरीका होगा जो NetworkManager या अन्य नेटवर्क कनेक्शन टूल की परवाह किए बिना काम करता है। बेसिक विचार के साथ एक डीएनएस क्वेरी भेजना है 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, पैकेट मेरा विश्वविद्यालय के DNS को भेजता है 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 पर, आप पुराने पैकेज से nm-tool को मैन्युअल रूप से डाउनलोड और निकाल सकते हैं। निम्न आदेश चलाएँ।

सबसे पहले, काम करने के लिए एक अस्थायी निर्देशिका बनाएँ:

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

अब, nm-tool के लिए एक उपनाम सेट करें:

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

वर्तमान उपयोगकर्ता को टर्मिनल से एनएम-टूल चलाने में सक्षम होना चाहिए।


इसके अतिरिक्त, यह अभी भी आपके द्वारा उपयोग किए जा रहे सभी वास्तविक DNS रिज़ॉल्वर को सटीक रूप से प्रदान नहीं कर सकता है।

पूरी रिपोर्ट प्राप्त करने के लिए आप DNSleaktest.com पर जा सकते हैं । पूरी रिपोर्ट प्राप्त करने के लिए विस्तारित परीक्षण पर क्लिक करें ।


1

दरअसल, NetworkManager उपयोग करता है /etc/resolv.conf। हालाँकि, डिफ़ॉल्ट सेटिंग्स पर DNS सर्वर सूचीबद्ध resolv.confहै 127.0.0.1, क्योंकि NetworkManager कुछ आंतरिक तकनीकी कारणों से अपनी आंतरिक DNS सेवा का उपयोग करता है जो कई लोगों के लिए प्रासंगिक नहीं हैं। यही कारण है कि आपको यह nmcliदेखने के लिए उपयोग करना होगा कि DNS सर्वर NetworkManager आंतरिक रूप से क्या उपयोग कर रहा है।

हालांकि, इस व्यवहार को अक्षम करना और पुराने पर वापस जाना संभव है जहां उपयोग में वास्तविक DNS सर्वर सूचीबद्ध है resolv.conf। ऐसा करने के लिए, बस लाइन dns=dnsmasqमें टिप्पणी करें /etc/NetworkManager/NetworkManager.confऔर रिबूट करें। अधिकांश लोगों के लिए, इस तथ्य से परे कोई अंतर नहीं होना चाहिए कि वास्तविक डीएनएस सर्वर अब दिखाया जाएगा resolv.conf। यदि आप उस कोने के मामलों में से हैं जिसके लिए परिवर्तन लाया गया था, तो यह जल्दी से स्पष्ट हो जाना चाहिए, और आप फिर से लाइन को अनइंस्टॉल करके डिफ़ॉल्ट व्यवहार पर वापस लौट सकते हैं।


1

nmcli देव सूची | grep डीएनएस

यह कुछ इस तरह उत्पादन करेगा;
IP4.DNS[1]: 8.8.8.8 IP4.DNS[1]: 8.8.8.8 IP4.DNS[2]: 8.8.4.4

उपरोक्त आदेश Ubuntu 16.04 से पहले
Ubuntu 16.04 उपयोग के लिए काम करता है :
nmcli dev show | grep DNS


आप शायद मतलब है nmcli dev show, नहीं nmcli dev list?
10

मैंने कुछ खुदाई की, ऐसा प्रतीत होता है कि उन्होंने Ubuntu 14.04 और 16.04 के बीच CLI को बदल दिया। जाहिरा तौर nmcli dev listपर 14.04 में काम करता है, लेकिन 16.04 में नहीं।
होल्म

1

अगर किसी के पास उबंटू 18.04LTS के समान प्रश्न है:

नेटवर्क प्रबंधक के माध्यम से प्रबंधित सभी नेटवर्क उपकरणों की सूची बनाएं:

networkctl list

विशिष्ट डिवाइस का कॉन्फ़िगरेशन दिखाएं:

networkctl status eth0

Eth0 के बजाय आपको सूची में दिखाए गए अपने नेटवर्क डिवाइस का नाम दर्ज करना होगा। यदि कोई DNS-प्रविष्टि नहीं है, तो आपके कार्ड में कोई कॉन्फ़िगर नाम नहीं है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.