Bagaimana cara mengganti nameserver yang disediakan DHCP?

12

Saya (berpikir) bahwa saya telah mengkonfigurasi alamat IP statis di /etc/network/interfaces:

# The primary network interface 
auto eth0 
iface eth0 inet static
    address 10.1.1.2
    netmask 255.255.255.0
    network 10.1.1.0
    broadcast 10.1.1.255
    gateway 10.1.1.1

Dan saya mengubah file /etc/resolv.confuntuk memasukkan nameserver yang diinginkan.

Lalu saya restart jaringan sudo /etc/init.d/networking restart

Tetapi setelah beberapa jam, resolv.conf selalu kembali ke nameserver DHCP.


Saya juga harus mengatakan bahwa ini adalah Ubuntu Server dengan hanya l0dan eth0antarmuka.

David Parks
sumber
Apakah resolvconfpaket sudah diinstal?
Gilles 'SANGAT berhenti menjadi jahat'
Apakah Anda mencoba menggunakan dhclient pada antarmuka jaringan lain (mungkin antarmuka wifi atau dial up), atau apakah dhclient salah menjalankan eth0 walaupun seharusnya statis?
poolie
Hanya ada eth0 dan lo0, IP yang saya set secara manual sama dengan IP DHCP yang akan saya dapatkan (server DHCP akan selalu melayani IP statis yang sama). Tetapi saya tidak ingin menggunakan nameserver yang diberikan oleh server DHCP, jadi saya pikir saya akan mengatur IP sendiri dan tidak akan ada DHCP, tapi saya tidak mengerti mengapa resolv.conf terus diperbarui.
David Parks
Gilles - tidak, saya berlari: dpkg -L resolvconf, dan dapatkan: Paket `resolvconf 'tidak diinstal.
David Parks

Jawaban:

34

Jika Anda ingin mengganti atau menambahkan ke server nama yang disarankan oleh server DHCP, Anda dapat mengonfigurasi ini dalam /etc/dhcp/dhclient.conf, misalnya:

interface "eth0" {
    prepend domain-name-servers 10.0.0.2;
}

Anda juga dapat melakukan ini dari kontrol "Edit Koneksi" di indikator jaringan di Unity atau GNOME.

poolie
sumber
4
Ini adalah solusi terbaik, saya memposting pilihan lain, tetapi menyadari bahwa pengaturan IP statis bukanlah ide yang baik di lingkungan AWS EC2. :)
David Parks
Bagaimana jika Anda ingin menambahkan beberapa server nama domain?
dangonfast
Server nama domain yang berurutan 127.0.0.1tampaknya membuang server nama yang disediakan oleh dhcp (ini tidak terjadi dengan menambahkan server nama lain)
dangonfast
2
Ganti prependdengan supersedeuntuk menimpa nilai DHCP sepenuhnya.
Sqerstet
1

Resolusi yang akan menyelesaikan masalah Anda adalah mengonfigurasi resolvconfpaket Anda . Ini akan memberikan prioritas pada server nama yang Anda inginkan serta pengaturan yang diinginkan lainnya seperti pengaturan resolv.conf seperti pencarian dan preferensi domain.

Edit file: /etc/resolvconf/resolv.conf.d/head

Tempatkan nameserver yang Anda inginkan dan konfigurasi lain yang ingin Anda pilih ketika ada perubahan jaringan di sana. Ketika terjadi perubahan pada jaringan, konfigurasi di sana akan selalu diutamakan.

Contoh /etc/resolvconf/resolv.conf.d/headfile:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

nameserver 8.8.8.8
search mydomain.com

Lihatlah jawaban untuk pertanyaan serupa:
ganti nameserver dns

Catatan:
Pastikan memiliki umpan baris setelah entri terakhir. Sebagian besar editor akan memberikan linefeed secara otomatis saat menyimpan file.

LD James
sumber
-2

Saya menemukan referensi untuk menghapus klien dhcp, saya pikir itu penyebab utamanya. Saya sudah melakukan ini dan belum melihat masalahnya. Akan menunggu hingga pagi untuk konfirmasi, tetapi tampaknya klien dhcp masih berjalan dan harus dihentikan dan dihapus.

apt-get remove isc-dhcp-client dhcp3-client dhcpcd
David Parks
sumber
Saya sedikit bingung apakah solusinya adalah perintah prepend atau apakah itu benar-benar menghapus klien DHCP.
Eugene van der Merwe
@EugenevanderMerwe Ini adalah perintah prepend. Poster itu mengatakan, "Ini adalah solusi terbaik, saya memposting pilihan lain, tetapi menyadari bahwa pengaturan IP statis bukanlah ide yang baik di lingkungan AWS EC2. :)"
Grammargeek
-3

Sebagai aturan praktis, Anda harus selalu menghapus instalasi semua layanan jaringan apt-get --purge remove <package-name>. Dengan cara ini, semua file konfigurasi akan dihapus juga.

Dalam hal ini perintahnya adalah:

apt-get --purge remove isc-dhcp-client isc-dhcp-common

Perintah ini akan sepenuhnya menghapus isc-dhcp-client.

Miikael Ljung
sumber
4
Bagaimana ini relevan, dan mengapa menurut Anda itu aturan umum yang baik? Dia tidak ingin berhenti menggunakan DHCP?
poolie