Bagaimana cara mengetahui DNS apa yang saya gunakan di Ubuntu mulai 14,04 dan seterusnya

14

(Tindak lanjut untuk pertanyaan serupa untuk 12.04 .)

Sebelum Ubuntu 12.04, Anda mungkin melihat DNS aktif di /etc/resolv.conf. Di Ubuntu 12.04, NetworkManager tidak lagi berfungsi dengan file. Anda harus langsung berkonsultasi dengan alat baris perintah nm-tool.

Menariknya, nm-tool tidak lagi diinstal secara default di 14,04 dan yang lebih baru. Meskipun Anda masih dapat menginstal melalui apt-get install, Anda tidak dapat menganggap semua Ubuntu memiliki yang di luar kotak.

Jadi pertanyaannya tetap. Bagaimana Anda tahu, dengan instalasi default, DNS yang Anda gunakan dengan baris perintah?

Koala Yeung
sumber

Jawaban:

30

Jawaban cepat

Alat NetworkManager baru nmclidiinstal secara default sekarang. Alat baris perintah sangat kuat tetapi agak sulit untuk dipelajari. Tetap pada pertanyaan kami, jawaban singkatnya adalah:

nmcli dev show | grep DNS

atau, untuk menghasilkan keluaran yang lebih bersih

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


Menjelaskan

Jika Anda punya waktu, saya bisa menjelaskan omong kosong di atas:

  1. nmcli dev show

    Bekerja sedikit seperti nm-toolperintah lama . Ini menguraikan info jaringan saat ini.

    Anda juga dapat mempelajari pengaturan antarmuka tertentu dengan menambahkan nama antarmuka. Misalnya, untuk mempelajari informasi eth0, Anda dapat menggunakan nmcli dev show eth0.

  2. grep DNS

    Jelas hanya grep baris dengan teks "DNS" di dalamnya.

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

    Ini hanya untuk membersihkan output. The cutdapat memilih output dengan kolom, tapi dibutuhkan hanya 1 karakter sebagai pemisah (sementara nmclipenggunaan BANYAK SPACE). The sedmengubah ruang, output asli, dalam TAB.

Koala Yeung
sumber
7
+1. Namun tidak tahu tentang utilitas ini, saya menjalankan Ubuntu 14.04, dan perintah saya adalah nmcli d list. Selain itu, hal-hal hebat di sini!
Terrance
1
sed memiliki bendera -E untuk regex yang diperpanjang, yang memungkinkan r+alih-alihrr*
Squidly
1
Berdasarkan versi apa jawaban ini? Pada versi nmcli Trusty saya 0.9.8.8 nmcli dev showmengeluarkan pesan kesalahan besar keriting.
Oli
5
@Oli nmcli dev showmilik nmcli pada 15.04. Untuk beberapa alasan nmcli lama dianggap tidak stabil, jadi. . . sekarang mereka menggunakan nmclibendera yang sama dengan Fedora. Mungkin itu karena beralih ke systemd. Dan karena jawaban ini cocok untuk 15,04 tetapi tidak 14,04, saya sangat tergoda untuk menurunkannya
Sergiy Kolodyazhnyy
1
Saya ingin mengulangi komentar di atas, ini mungkin benar untuk 15,04, tetapi tidak benar untuk 14,04, yang merupakan pertanyaan.
Alex
4

Analisis paket akan menjadi metode alternatif yang berfungsi terlepas dari NetworkManager atau alat koneksi jaringan lain yang Anda gunakan. Ide dasarnya adalah mengirim kueri dns dengan nslookupdan di terminal cek kedua kemana paket pergi.

Untuk itu kita harus terhubung ke jaringan untuk pertama kalinya, sehingga tidak ada yang mengacaukan koneksi, dan jalankan perintah berikut:

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

Dalam menjalankan terminal alternatif:

nslookup google.com 

Setelah Anda mendapatkan daftar paket dari tcpdump, periksa kemana mereka pergi dari alamat IP Anda.

Sebagai contoh,

$ 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)

Seperti yang Anda lihat, laptop saya eagle,, mengirim paket ke dns universitas saya b.resolvers.Level3.net.domain,. Jika Anda ingin melihat alamat IP, Anda dapat menggunakan -nbendera dengan tcpdump.

Sebagai contoh:

$ 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)
Sergiy Kolodyazhnyy
sumber
2

periksa koneksi jaringan Anda:

ls /etc/NetworkManager/system-connections/

dan pilih koneksi yang ingin Anda konfigurasi.

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

Ganti "Internet" tanpa nama koneksi Anda


Gunakan masih bisa menggunakan nm-tool:

nm-tool | grep DNS

Instal untuk U14.04 dan kemudian menggunakan

sudo apt-get install nm-tool

contoh:

nm-tool | grep DNS
    DNS:             192.168.1.1
    DNS:             192.168.10.1
    DNS:             192.168.11.1
Maythux
sumber
1

Ini masih tersedia secara default pada versi 14.04 karena dibundel dengan manajer jaringan. Sejak itu telah dihapus dari network-manager (versi 15.04 dan yang lebih baru) dan bahkan tidak tersedia melalui apt-get.

Untuk saat ini, pada versi 15.04, Anda dapat mengunduh dan mengekstrak nm-tool dari paket lama secara manual. Jalankan perintah berikut.

Pertama, buat direktori temp untuk bekerja di:

cd
mkdir APTGET;cd APTGET

Kemudian, unduh versi lama dan ekstrak file:

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*

Buat direktori baru:

mkdir ~/bin

(jika tertulis file already exists, abaikan saja pesannya dan lanjutkan).

Salin file ke direktori baru:

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

Kembali ke direktori home dan hapus direktori temp:

cd ..
rm -R APTGET

Sekarang, tetapkan alias untuk nm-tool:

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

Pengguna saat ini seharusnya dapat menjalankan nm-tool dari terminal.


Selain itu, ini mungkin masih belum memberikan semua yang sebenarnya secara akurat resolver DNS Anda gunakan.

Anda dapat pergi ke DNSleaktest.com untuk mendapatkan laporan lengkap. Klik pada Extended Test untuk mendapatkan laporan lengkap.

mchid
sumber
1

Sebenarnya, NetworkManager tidak digunakan /etc/resolv.conf. Namun, pada pengaturan default, server DNS yang terdaftar resolv.confadalah 127.0.0.1, karena NetworkManager menggunakan layanan DNS internalnya sendiri untuk beberapa alasan teknis yang tidak jelas yang tidak relevan bagi banyak orang. Inilah sebabnya mengapa Anda harus menggunakannmcli untuk melihat server DNS apa yang digunakan NetworkManager secara internal.

Namun, juga dimungkinkan untuk menonaktifkan perilaku ini dan kembali ke yang lama di mana server DNS yang sebenarnya terdaftar resolv.conf. Untuk melakukannya, cukup komentar pada baris dns=dnsmasqdi /etc/NetworkManager/NetworkManager.conf, dan reboot. Bagi kebanyakan orang, ini seharusnya tidak membuat perbedaan di luar fakta bahwa server DNS aktual sekarang akan ditampilkan di resolv.conf. Jika Anda termasuk di antara kasus sudut di mana perubahan diperkenalkan, ini akan menjadi jelas dengan cepat, dan Anda dapat kembali ke perilaku default dengan menghapus komentar baris lagi.

fkraiem
sumber
1

daftar dev nmcli | grep DNS

itu akan menampilkan sesuatu seperti;
IP4.DNS[1]: 8.8.8.8 IP4.DNS[1]: 8.8.8.8 IP4.DNS[2]: 8.8.4.4

Perintah di atas berfungsi sebelum Ubuntu 16.04
Untuk Ubuntu 16.04 digunakan:
nmcli dev show | grep DNS

Komu
sumber
Anda mungkin bermaksud nmcli dev show, bukan nmcli dev list?
holmb
Saya melakukan beberapa penggalian, tampaknya mereka mengubah CLI antara Ubuntu 14.04 dan 16.04. Tampaknya nmcli dev listbekerja di 14,04, tetapi tidak di 16,04.
holmb
1

Jika seseorang memiliki pertanyaan yang sama dengan saya untuk Ubuntu 18.04LTS:

Daftar semua perangkat jaringan yang dikelola melalui manajer jaringan:

networkctl list

Tampilkan konfigurasi perangkat tertentu:

networkctl status eth0

Alih-alih eth0 Anda harus memasukkan nama perangkat jaringan Anda yang ditunjukkan dalam daftar sebelumnya. Jika tidak ada entri DNS, kartu Anda tidak memiliki server nama yang dikonfigurasi

Ronny Kaufmann
sumber