Bagaimana membuat NetworkManager menambahkan server DNS di bagian atas /etc/resolv.conf?

11

Saat ini, /etc/resolv.conf saya terlihat seperti ini:

# Generated by NetworkManager
nameserver 10.165.246.33
nameserver 192.135.82.60
nameserver 10.165.74.2

Dua nameserver pertama secara otomatis dikonfigurasi melalui DHCP; yang terakhir adalah yang saya tambahkan secara manual, di NetworkManager. Itu juga yang paling penting, karena itu menyelesaikan nama domain internal kami (misalnya build-server-17.our-company-domain.com).

Masalahnya adalah, NetworkManager menambahkan ke bawah dari /etc/resolv.conf, jadi ketika mengakses URL intranet, mencoba browser saya untuk mengatasinya menggunakan dua server pertama, dan dibutuhkan lama.

Bagaimana cara membuat NetworkManager menambahkan server DNS yang dikonfigurasi secara manual sebelum yang dikonfigurasi secara otomatis?

Pengguna Linux Pemula
sumber
1
Secara umum, semua server DNS di resolv.conf Anda harus mengembalikan hasil yang sama. Memiliki server campuran di sana adalah resep untuk kegagalan intermiten dan banyak rasa sakit.
Philip Kendall

Jawaban:

3

Saya tidak melihat sistem mana yang harus ditangani secara khusus, tetapi jika Anda menggunakan resolvconf, coba yang berikut ini sebagai root ( su -atau sudo -i):

echo 'nameserver 10.165.74.2' >> /etc/resolvconf/resolv.conf.d/head
resolvconf -u

Ada peringatan di file itu yang menyatakan bahwa perubahan manual akan ditimpa; tetapi, dalam konteksnya, pesan tersebut berlaku untuk /etc/resolv.conf, bukan /etc/resolvconf/resolv.conf.d/head.

Ini harus menempatkan server nama yang diinginkan terlebih dahulu dalam daftar. Tentu saja, jika ini bekerja pada sistem operasi Anda, maka 10.165.74.2 dapat dihapus dari NetworkManager.

Penyelesai lokal,, dnsmasqjuga merupakan jalur maju yang sangat baik. Dengan menggunakan dnsmasq, seseorang dapat menggunakan lebih banyak kontrol atas DNS dan DHCP. Misalnya, dalam skenario ini, dnsmasqdapat meminta server nama tertentu berdasarkan pada nama domain tertentu dengan serveropsinya. Lihat cuplikan dari dnsmasq.confyang berkaitan dengan tujuan Anda di bawah.

# Add other name servers here, with domain specs if they are for
# non-public domains.
server=/our-company-domain.com/10.165.74.2

Memperbarui

Terima kasih telah menyebutkan sistem operasinya. Pada CentOS 7, ada banyak metode. Di GUI, klik Aplikasi> Peralatan Sistem> Pengaturan> Jaringan. Pilih koneksi yang akan dikonfigurasi.

CentOS 7 NetworkManager - Konfigurasikan Koneksi

Matikan DNS Otomatis dan berikan server nama. Terapkan konfigurasi.

CentOS 7 NetworkManager - Menerapkan Pengaturan DNS Statis

Lain kali NetworkManager memulai koneksi itu, ia menulis nilai-nilai kustom. (Saat pengujian, saya mematikan jaringan dan kemudian menghidupkan lagi karena saya memiliki dua koneksi jaringan.)

Menurut dokumentasi ,

  1. Antarmuka pengguna teks (TUI) berbasis kutukan sederhana untuk NetworkManager, nmtui, tersedia.
  2. Alat baris perintah, nmcli, disediakan untuk memungkinkan pengguna dan skrip berinteraksi dengan NetworkManager. Perhatikan bahwa nmcli dapat digunakan pada sistem tanpa GUI seperti server untuk mengontrol semua aspek NetworkManager. Ini setara dengan alat GUI.

Secara khusus, nmcli dokumentasi terlihat sangat bagus.

Christopher
sumber
1
Maaf, ini CentOS, yang tidak memiliki resolvconfpaket. dnsmasqsepertinya solusi yang bagus.
Pengguna Newbie Linux
8

Saya tidak sengaja membuat pertanyaan rangkap di sini . Jawabannya ada di sana, tetapi pada dasarnya, Anda perlu membuat:

/etc/dhcp/dhclient.conf

jika belum ada, dan tambahkan:

prepend domain-name-servers [ip address of server];

Jangan lupa titik koma di akhir!

Setelah itu, cukup boot ulang secara otomatis memindahkan baris 'nameserver [alamat ip server]' di '/etc/resolv.conf' ke atas!

alfreema
sumber
Luar biasa! Itulah backend yang digunakan oleh NetworkManager, dan satu-satunya cara agar ini berfungsi dengan semua koneksi wifi (tidak statis). terima kasih!
Adrien M.
0

Ada cara lain, tidak perlu mematikan NetworkManager.service. Cukup atur ifcfg-idevice:

PEERDNS=no
DNS1=10.165.74.2
DNS2=OTHERDNS
DOMAIN=DEMO.COM

Anda tidak perlu mengatur pengaturan /etc/NetworkManager/NetworkManager.conf, seperti:

[main]
dns=none
pengguna1437464
sumber