Viac na
Ako nastavím svoj DNS, keď sa prepíše súbor resolv.conf?
Väčšina informácií, ktoré vidím na internete, hovorí o úprave súboru /etc/resolv.conf
, ale všetky zmeny, ktoré tam urobím, sa jednoducho prepíšu.
$ cat /etc/resolv.conf
# 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 127.0.1.1
Zdá sa, že 127.0.1.1 je miestna inštancia dnsmasq
. V dokumentoch k dnsmasq
sa píše, že mám upraviť /etc/resolv.conf
. Skúsil som vložiť vlastné nameservery do /etc/resolv.conf.d/base
, ale zmeny sa v /etc/resolv.conf
po spustení sudo resolvconf -u
nezobrazili.
Pre vašu informáciu, nechcem meniť DNS na základe jednotlivých pripojení, chcem nastaviť predvolené nastavenia DNS, ktoré sa použijú pre všetky pripojenia, ak nie je uvedené inak.
UPDATE:
Na túto otázku som odpovedal sám: https://unix.stackexchange.com/a/163506/67024
Myslím, že je to najlepšie riešenie, pretože:
- Funguje.
- Vyžaduje najmenej zmien a
- Stále funguje v spojení s vyrovnávacou pamäťou DNS dnsmasq's, namiesto toho, aby ju obchádzal.
283
3
Myslím, že ak chcete prepísať DNS nameserver, stačí pridať podobný riadok do súboru
base
v častiresolv.conf.d
.Príklad
Potom vložte svoj zoznam nameserverov takto:
Nakoniec aktualizujte
resolvconf
:Ak sa pozriete na manuálovú stránku pre
resolvconf
, sú tam popísané rôzne súbory v adresári/etc/resolvconf/resolv.conf.d/
.Aj napriek tomu, že na začiatku súboru
head
je upozornenie:toto upozornenie je tam preto, aby sa pri vytváraní týchto súborov toto upozornenie nakoniec dostalo do výsledného súboru
resolv.conf
, ktorý sa z týchto súborov vytvorí. Takže ste mohli rovnako ľahko pridať riadkynameserver
, ktoré sú popísané vyššie pre súborbase
, aj do súboruhead
.Referencie
Táto otázka ma tiež zaujíma a skúsil som riešenie navrhnuté @sim.
Aby som ho otestoval, vložil som
do
/etc/resolvconf/resolv.conf.d/base
av
/etc/resolvconf/resolv.conf.d/head
Potom som reštartoval sieť pomocou
Výsledkom je, že
/etc/resolv.conf
vyzerá taktoa
nm-tool
uvádza, že dnsserver súktoré poskytuje môj smerovač. Na druhej strane kopanie adresy hovorí, že
Ak mám pravdu, z toho všetkého usudzujem, že
Celkovo to funguje, ale nemyslím si, že je to požadovaný výsledok. Bližšie riešenie je podľa mňa nasledovné. Upraviť
potom pridajte
Výsledok je nasledovný: resolv.conf obsahuje iba 127.0.0.1, čo znamená, že je vyvolaná dnsmasq cache a nm-tool hovorí
čo znamená, že ak sa hľadané meno nenachádza v cache, potom sa oň požiada na adrese 8.8.8.8 a nie na serveri, ktorý poskytuje dhcp.
Ďalšou (možno lepšou) možnosťou je použiť "prepend" namiesto "supersede": týmto spôsobom, ak meno nie je vyriešené na 8.8.8.8, potom požiadavka spadne späť na druhý server. V skutočnosti nm-tool hovorí
Skúste pridať
dns-nameservers XXX.XXX.XXX.X
do súboru/etc/networking/interfaces
.