Apa cara yang tepat untuk mengubah IP DNS?

56

Saya menduga bahwa server nama yang disediakan oleh modem / router ADSL saya bermasalah. Setiap kali saya menjelajah ke situs web untuk pertama kalinya di ubuntu, menyelesaikan nama domain membutuhkan setidaknya 15 detik.

Untuk mengatasi masalah itu, saya mengubah konfigurasi server nama /etc/resolv.confdari 192.168.1.1 (modem ADSL saya) menjadi 8.8.8.8 (DNS primer Google). Ini tampaknya memperbaiki masalah, tetapi sayangnya perubahan saya /etc/resolv.confditimpa oleh "NetworkManager" di setiap startup.

Apa cara yang tepat untuk mengkonfigurasi IP nama server di ubuntu 10.4?

Wim Coenen
sumber

Jawaban:

51

Jika Anda memiliki pengaturan koneksi khas dengan manajer jaringan dan DHCP, coba yang berikut ini:

  1. Klik kanan pada ikon manajer jaringan di panel dan pilih "Edit koneksi ..."
  2. Pilih koneksi Anda dari tab berkabel atau nirkabel, pilih "Edit"
  3. (Masukkan kata sandi Anda jika koneksi diatur sebagai "tersedia di seluruh sistem")
  4. Pilih tab pengaturan IPv4
  5. Alihkan metode ke "Hanya alamat otomatis (DHCP)"
  6. Masukkan nama server yang Anda inginkan di kotak "Server DNS tambahan" dan tekan "Terapkan"

Itu harus melakukan trik.

Marcel Stimberg
sumber
1
Ini terus bekerja di Ubuntu 12.04 dan yang lebih baru, meskipun NetworkManager sekarang menggunakan resolvconf untuk menangani resolv.conf.
jdthood
4
Jika Anda bertanya-tanya di mana konfigurasi berakhir, lihat /etc/NetworkManager/system-connections/(Anda akan memerlukan hak administratif untuk mengakses file-file konfigurasi).
Lekensteyn
2
Ini hanya mengubah dns untuk koneksi saat ini, tetapi apakah ada juga cara untuk perubahan DNS Global ?
rubo77
daftar ini kosong untuk saya. apa yang digunakannya secara default?
J. Taylor
1
Bekerja persis sama pada antarmuka terminal nmtuibtw!
Granitosaurus
30

Anda dapat mengubahnya seperti ini.

Pertama, klik ikon manajer jaringan di menubar Anda, dan klik Edit Connections...item tersebut.

masukkan deskripsi gambar di sini

Sekarang, beralihlah ke tab "Wired" atau "Wireless", tergantung pada apa yang Anda gunakan - saya menggunakan WiFi, jadi saya akan menggunakannya.

Pilih nama jaringan Anda, dan klik Edit...

Beralih ke tab IPv4, dan kemudian ubah dari DHCP otomatis ke alamat Otomatis (DHCP) saja.

Masukkan alamat IP server DNS Anda.

masukkan deskripsi gambar di sini

Klik simpan, dan Anda selesai!

jrg
sumber
Meskipun Anda dapat mengubah server DNS di pengaturan jaringan pada PC apa pun, yang terbaik adalah mengubahnya di router sebenarnya yang terhubung ke internet sehingga semua perangkat yang terhubung mendapat manfaat darinya.
Mark Rooney
3
Bagaimana jika dia tidak memiliki router per se? Atau dia hanya ingin mengubah DNS untuk komputer / pengguna ini? Bagaimana jika kali ini saja? Mungkin dia sebenarnya tidak memiliki akses router dan ingin menggunakan server DNS lain ... Saya dapat menambahkan alasan ke daftar ini sepanjang malam. Tip dan jawaban yang bagus @jrg.
Bruno Pereira
6
Ini adalah cara grafis yang bagus untuk pengaturan dns pada satu mesin dengan manajer jaringan. Saya hanya akan menunjukkan Anda dapat mengatur lebih dari satu, dipisahkan dengan koma. 8.8.8.8,8.8.4.4. Pengaturan DNS untuk LAN juga bisa membantu, jika lan cukup besar saya pribadi menggunakan router atau dnsmask. Pada LAN, seringkali lebih mudah untuk mempertahankan daftar hitam atau proksi di satu lokasi (router / dnsmask / squid) daripada pada setiap klien atau setiap pengguna pada setiap klien, tetapi itu sedikit di luar pertanyaan yang diajukan di sini.
Panther
29

Cara terbaik untuk menetapkan server nama melalui CLI, tanpa NetworkManger, dengan alamat statis, atau terlepas dari koneksi adalah ini:

Instal paket resolvconf .

Lari

sudo nano /etc/resolvconf/resolv.conf.d/head

(abaikan peringatan menakutkan. /etc/resolv.conf di-autogenerasi, jadi ada peringatan di sana sehingga akan dimasukkan ke /etc/resolv.conf ketika /etc/resolv.conf dibuat.) Di akhir file, Menambahkan

 nameserver <ip_of_nameserver>

Tekan Ctrl xdan jawab ya untuk menyimpan file. Untuk menyelesaikannya, buat ulang /etc/resolv.conf agar perubahan diterapkan sekarang:

 sudo resolvconf -u
Azendale
sumber
1
Untuk beberapa alasan sekitar sebulan yang lalu build Xubuntu nightly saya berhenti menyelesaikan nama host LAN. Server DHCP saya harus mengeluarkan dirinya sendiri (192.168.68.1) sebagai server DNS, saya juga telah mengkodekannya di Network Manager dan setiap tempat (disebutkan di atas jawaban ini). Dengan cara Xubuntu / NetworkMan / Apa pun menggunakan IP 127.0.xx hari ini, sulit untuk mendiagnosis masalah. Saya bisa menyelesaikan IP eksternal, jadi itu SESUATU untuk DNS. Bagaimanapun, ini adalah satu-satunya jawaban yang memecahkan masalah saya. Terima kasih
Adam Plocher
18

Cara lain untuk melakukan ini adalah dengan mengedit /etc/dhcp3/dhclient.confAnda dapat melakukan ini dengan mengetikkan ini pada dialog run (muncul dengan menekan Alt+ F2)

gksudo gedit /etc/dhcp3/dhclient.conf

Kemudian cari baris berikut

#prepend domain-name-servers 127.0.0.1;

Dan mengubahnya menjadi

prepend domain-name-servers 8.8.8.8;

Ini akan membuat dhclient (klien DHCP yang digunakan NetworkManager) menambahkan ini ke server dns Anda, jadi resol.conf akan tampak seperti ini

nameserver 8.8.8.8
nameserver 192.168.1.1

Solusi ini akan bekerja di mana saja dan Anda akan selalu mendapatkan DNS yang telah Anda pilih sebagai yang utama.

LassePoulsen
sumber
4
Bagiku Network Manager menulis resolv.conf tanpa berkonsultasi dhclient.conf
daithib8
2
di ubuntu 11.10 Anda perlu memodifikasi /etc/dhcp/dhclient.conf sebagai ganti /etc/dhcp3/dhclient.conf
Pawel Barcik
1
dapat dimasukkan ke dalam beberapa?
PyRulez
1
@PyRulez Ya, pisahkan dengan koma, titik koma di bagian akhir
Sergiy Kolodyazhnyy
2
Saya mencoba ini di 14.10 tetapi tidak ada efek
rubo77
7

Solusi lain adalah mengubah konfigurasi router Anda untuk menggunakan server DNS lainnya. Cukup login ke adminnya dan selama itu bukan router yang menyebabkan masalah, semua mesin klien Anda mendapatkan DNS yang lebih baik.

Oli
sumber
+1 Setuju jika ini adalah masalah yang tidak mungkin diselesaikan segera untuk memperbaikinya di router maka itu akan diperbaiki untuk semua mesin di jaringan. Saya menemukan yang terbaik untuk menggunakan Google DNS atau OpenDNS.
Mark Davidson
1
Saya sudah melakukan itu, tetapi router kemudian masih bertindak sebagai server nama perantara antara klien dan server nama yang dikonfigurasi, dan masih sangat lambat.
Wim Coenen
1
Banyak ISP mengunci router mereka sehingga Anda tidak dapat mengubah pengaturan ini, atau harus membayar untuk melakukannya.
LassePoulsen
@ Win Jika router Anda tidak dapat memberikan resolusi DNS dalam jangka waktu yang wajar, katakan 50 ms pada koneksi yang baik, ada sesuatu yang salah dengan itu. Jadi salah itu mungkin menangani lalu lintas lain tidak efektif. Mungkin sudah saatnya untuk upgrade $ 30 / £ 20.
Oli
1
@ Oli: Masalah DNS hanya muncul ketika menggunakan router dari kotak linux: Saya memiliki masalah yang sama dengan debian, tetapi tidak ada masalah dengan windows. Saya yakin ini hanya masalah kompatibilitas yang tidak kentara. Router berfungsi dengan baik jika tidak.
Wim Coenen
6

Klik pada indikator jaringan di kanan atas layar dan pilih Edit Connections.... Pilih koneksi yang ingin Anda modifikasi (mungkin dari tab Wiredatau Wirelessdan klik Edit...tombol.

Beralih ke IPv4 Settingstab jendela koneksi dan ubah metode dari Automatic (DHCP)menjadi Automatic (DHCP) addresses only. Anda sekarang harus dapat menentukan alamat IP server DNS.

Simpan koneksi dan Anda harus baik-baik saja. Anda mungkin harus mengatur ulang koneksi dengan memilihnya di menu indikator setelah mengubah pengaturan.

James Henstridge
sumber
1

Saya percaya jika Anda mengubahnya di bawah manajer jaringan itu sendiri perubahannya tetap ada.

Untuk menggunakan eth0 misalnya

Network Manager -> Wired -> Auto eth0 -> Pengaturan ipv4.

Atur server DNS Anda ke 8.8.8.8 dan terapkan.

Mark Davidson
sumber
Saya mengalami kesulitan menemukan sesuatu yang disebut "manajer jaringan". Ada "System - Administration - Network tools" tetapi itu tidak membantu. Akhirnya saya menemukan bahwa saya membutuhkan "Sistem - Preferensi - Koneksi Jaringan".
Wim Coenen
1
Ada ikon manajer jaringan di panel (yang menampilkan status jaringan Anda) yang dapat Anda klik kanan untuk mengedit koneksi.
Marcel Stimberg
Ini tidak berfungsi
user568021
0

Menggunakan Terminal

Anda perlu mengedit /etc/resolv.conffile untuk menetapkan alamat IP server nama yang harus dicari oleh resolver. Hingga 3 nama server, alamat IP internet dapat ditentukan. Jika ada beberapa server, pustaka resolver menanyakannya dalam urutan yang tercantum.

Jenis pertama

sudoedit /etc/resolv.conf

Tambahkan alamat IP server DNS Pilihan Anda sebagai berikut:

nameserver <preferred-ip1>
nameserver <preferred-ip2>
nameserver <preferred-ip3>

diambil dari: http://www.cyberciti.biz/faq/ubuntu-linux-configure-dns-nameserver-ip-address/

Amith KK
sumber
6
Perhatikan bahwa jika server nama diatur melalui DHCP, /etc/resolv.confakan ditimpa. Jadi pendekatan ini hanya sesuai untuk mesin dengan konfigurasi jaringan manual. Secara teknis, Anda bisa lakukan chattr +i /etc/resolv.confuntuk mencegah file tidak dimodifikasi (saya melakukannya bertahun-tahun yang lalu), tetapi cara terbaik untuk kebanyakan mesin adalah pendekatan jrg dalam jawabannya: askubuntu.com/a/90263/13398 .
Scott Severance
@ScottSeverance Apa sistemnya tidak memiliki X
Amith KK
Dalam hal ini, mungkin server dengan jaringan yang dikonfigurasi secara manual, dalam hal ini jawaban Anda sangat tepat. Tetapi sebagian besar mesin Ubuntu menjalankan X dan dapat dengan mudah menangani pendekatan lainnya. Jika mesin tidak menjalankan X tetapi memiliki GUI yang sesuai terpasang, Anda juga bisa menjalankan alat grafis menggunakan SSH ForwardX11=yes.
Scott Severance
6
Jika Anda akan mencoba mengedit file /etc/resolv.conf secara manual, cara yang tepat untuk melakukannya (sehingga tidak ditimpa) adalah dengan menginstal paket "resolvconf" dan kemudian mengedit / etc / resolvconf / resolv. conf.d / head atau /etc/resolvconf/resolv.conf.d/tail.
Azendale
0

Untuk server tanpa kepala di mana tidak ada X dan manajemen melalui ssh atau apa pun, solusi baris perintah diperlukan. Jika resolv.conf tidak ditimpa, maka itu adalah tempat yang tepat untuk mengubah server nama.

Jika resolv.conf tidak ditimpa kemudian, pada 14.04LTS setidaknya, file ke mengedit adalah:

  • /etc/resolvconf/resolv.conf.d/head
  • /etc/resolvconf/resolv.conf.d/tail

Saya sangat menyarankan menempatkan string komentar ke dalam file seperti ini, sehingga mereka muncul di file yang dihasilkan (/etc/resolve.conf) dan Anda dapat menemukannya di masa depan. Saya memulai dan mengakhiri setiap file dengan komentar satu baris dari formulir:

  • # ====== begin /etc/resolveconf/resolv.d/tail ======
  • # ====== end /etc/resolveconf/resolv.d/tail ======

dan menempatkan arahan yang relevan di antara mereka.

Gordon
sumber
0

Saya menemukan bahwa menambahkan baris dns-nameserver ipke file antarmuka, pengaturan pengaturan koneksi kabel ipv4 ke pengaturan Otomatis (DHCP) saja dan memasukkan IP server DNS dan nama domain. Juga menambahkan IP DNS lokal ke bagian statis DNS router DSL menyebabkan NetworkManager memasukkan alamat lokal ini dalam resolv.conffile yang ditimpa bersama dengan info lain yang diambil dari router. Semua ini bersama-sama tampaknya membuat resolusi nama DNS lokal tetap ada - tugas yang tampaknya sulit tampaknya. Kebutuhan saya untuk DNS lokal adalah untuk menginstal klien Linux ke share Samba menggunakan mount.cifspada jaringan yang dilayani DHCP.

Danegerous
sumber
0

Jika Network-Managerdihentikan dan /etc/resolvconf/resolv.conf.d/basetelah dikonfigurasi.

Mungkin resolvconf --enable-updatesbermanfaat.

J.Apakah
sumber
0

Anda dapat mengubah pengaturan DNS IPv4 dengan cara grafis seperti yang dijawab di sini

Tetapi jika Anda bertanya-tanya bagaimana melakukan hal yang sama menggunakan baris perintah, Anda harus mendaftar file dalam /etc/NetworkManager/system-connectionsdirektori dengan lsperintah:

ls /etc/NetworkManager/system-connections

Harus ada file dengan nama koneksi Anda, milik saya dipanggil Wired Connection 1.

Jadi kita perlu mengedit file dan menambahkan server DNS di dalamnya:

Sudo nano "/etc/NetworkManager/system-connections/Wired connection 1"

Tambahkan server DNS sebanyak yang Anda suka di bawah [ipv4]bagian dan pisahkan dengan titik koma ;dan juga letakkan ;di akhir server DNS terakhir seperti ini:

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;

Anda bisa menghapus baris ini jika Anda tidak ingin menetapkan dns.

Anda juga harus menambahkan baris ini ignore-auto-dns=trueuntuk mengabaikan DHCP yang disediakan server DNS (seperti server DNS yang diatur dalam konfigurasi router):

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;
ignore-auto-dns=true

Sedikit konteks jawaban ini: Saya mencoba mencari tahu file apa yang akan diedit ketika saya menambahkan server DNS di pengaturan DNS GUI, jadi saya menjalankan perintah ini selama 16+ jam: sudo grep -rs "1.1.1.1" /yang memindai semua file di mesin virtual Ubuntu saya tetapi itu tidak pernah selesai bahkan setelah menjalankan selama itu, tapi saya tahu ada kemungkinan file itu ada /etc/NetworkManagersehingga saya menjalankan greplagi menunjuk ke direktori itu dan menemukan ini: /etc/NetworkManager/system-connections/Wired connection 1:dns=1.1.1.1;jadi saya kembali ke sini untuk menulis jawaban hanya untuk mengetahui bahwa Lekensteyn sudah memiliki tunjukkan hal ini dalam komentar pada jawaban yang diterima .

Shayan
sumber