Apa "cara yang benar" untuk melakukan perubahan di /etc/resolv.conf dengan /etc/resolv.conf.d pada tempatnya?

11

Saya dulu, resolv.confstatis dan Anda mengeditnya sendiri.

Kemudian, klien DHCP akan menulis ulang, menggunakan beberapa entri statis dan apa yang didapatnya dari penyewaan DHCP.

Saat ini, beberapa distro - seperti milik saya (Linux Mint 18.1) memiliki /etc/resolv.conf.dmekanisme dengan beberapa subdirektori skrip, dan, yah, saya tidak bisa membuat kepala dan ekornya.

Apa jalan yang benar, maka,

  • untuk menunjukkan bahwa saya ingin menggunakan atau tidak menggunakan server DNS yang diperoleh dalam penyewaan DHCP?
  • untuk menambahkan entri tetap ke resolv.conf, selalu atau sebagai mundur ketika tidak ada nameserver yang diperoleh DHCP?
  • membuat keputusan tentang urutan relatif dalam file?

Saya tidak keberatan menulis beberapa skrip saya sendiri jika saya punya, saya hanya tidak ingin "menentang" mekanisme yang ada atau melakukan pekerjaan duplikat.

einpoklum
sumber
4
Saya mencopot pemasangan resolvconfdi server ... unix.stackexchange.com/questions/286195/…
Rui F Ribeiro
Anda juga dapat mengkonfigurasi dhclientuntuk mengabaikan / mengganti info DNS DHCP; Saya tidak yakin ada mekanisme /etc/resolv.conf.duntuk melakukan ini (tapi saya tidak menggunakan Mint, dan tidak memiliki skrip itu).
dirkt
@dirkt: Sebenarnya, saat ini, satu-satunya entri yang masuk ke saya /etc/resolv.confadalah localhost (yang menjalankan dnsmasq), jadi tidak jelas bagi saya bagaimana dnsmasq, mekanisme resolv.conf.d, dan klien DHCP berinteraksi.
einpoklum

Jawaban:

2

Jawabannya sederhana, resolv.conf.dfoldernya ada di / etc / resolvconf / dan berisi file head / base / original dan tail. masing-masing jika diedit akan memperbarui resolv.conffile di / etc /

katakanlah Anda ingin meletakkan beberapa alamat DNS statis di awal resolv.confdi / etc / (karena pada setiap reboot otomatis diatur ulang ke pengaturan default) Anda perlu mengedit headfile di /etc/resolvconf/resolvconf.d/ dan ketik sebagai contoh:

nameserver 1.1.1.1
nameserver 1.0.0.1

setelah itu restart layanan resolvconf menggunakan:

sudo service resolvconf restart

sekarang cat resolv.confdi / etc / dan Anda akan melihat perubahan baru.

Hal yang sama berlaku jika Anda ingin meletakkan barang-barang di bagian bawah file, Anda menggunakan tailbukan headdi /etc/resolvconf/resolvconf.d/

PS: ini 100% diuji dan berfungsi Ubuntu dan Debian

Sunting: Saya sudah menjawab dua butir terakhir pertanyaan Anda, sekarang tentang butir pertama yang berbicara tentang bagaimana tidak menggunakan alamat DNS yang disediakan oleh DHCP. Ini benar-benar tergantung pada perangkat lunak / paket DNS mana yang telah Anda instal, jadi saya sarankan Anda untuk memeriksa Posting ini , dan pastikan Anda membaca yang di bawah ini juga jika Anda miliki dnsmasq.

M03
sumber
1
+1, tetapi ini hanya menjelaskan cara melakukan bagian dari apa yang saya tanyakan.
einpoklum
0

resol.conf dan beberapa mekanisme seperti ini ada dari tahun-tahun sebelumnya hingga sekarang. Ada baris perintah dhclient, resolvconfyang menangani file ini, Namun dalam beberapa tahun terakhir Linux memperkenalkan antarmuka baru untuk konfigurasi NetworkManager dengan nama nmcli . Ini adalah perintah kaya untuk mengelola setiap konfigurasi jaringan persisten (bukan waktu berjalan). Anda dapat menggunakan beberapa hal seperti:

$ nmcli connection modify eth0 ipv4.dns 8.8.8.8

Perintah ini akan menimpa resolv.conffile. Dalam RHCA, disarankan tidak akan mengedit resolv.conf dengan tangan dan menggunakan perintahnya. Tentang direktori resolvconf yang telah Anda sebutkan, saya dapat mengatakan bahwa mungkin ada beberapa layanan memiliki conf sendiri untuk DNS sehingga mereka menggunakannya sebagai conf sendiri seperti OpenVpn. Anda dapat memeriksa /etc/nsswitchfile juga untuk mendapatkan informasi lebih lanjut tentang penyelesaian.

Ali Ghasempour
sumber
Saya tidak percaya ini sebenarnya menjawab pertanyaan saya.
einpoklum
Yah mungkin ini rindu saya mengerti tentang pertanyaan Anda tetapi nsswitchfile adalah salah satu jawaban Anda.
Ali Ghasempour
Saya percaya @einpoklum ingin memiliki kontrol pada urutan server DNS di resolv.conf(lihat man resolv.conf), bukan pada urutan cara yang digunakan untuk menyelesaikan ( man nsswitch.conf). Namun jawaban Anda tetap menarik.
xhienne
Terima kasih atas minat Anda . Sejauh yang saya tahu resolv.conf adalah file berurutan dan prioritas penyelesaiannya dari atas ke bawah.
Ali Ghasempour