de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
Seán Hayes
Seán Hayes
Question

Jak ustawić DNS, gdy resolv.conf jest nadpisywany?

Większość informacji, które widzę w sieci mówi, żeby edytować /etc/resolv.conf, ale wszelkie zmiany, które tam wprowadzam po prostu zostają nadpisane.

$ 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

Wygląda na to, że 127.0.1.1 jest lokalną instancją dnsmasq. Dokumenty dnsmasq mówią, żeby edytować /etc/resolv.conf. Próbowałem umieścić niestandardowe serwery nazw w /etc/resolv.conf.d/base, ale zmiany nie pokazały się w /etc/resolv.conf po uruchomieniu sudo resolvconf -u.

FYI, nie chcę zmieniać DNS na podstawie pojedynczego połączenia, chcę ustawić domyślne ustawienia DNS do użycia dla wszystkich połączeń, jeśli nie jest to inaczej określone.

UPDATE:

Sam odpowiedziałem na to pytanie: https://unix.stackexchange.com/a/163506/67024

Myślę, że to'najlepsze rozwiązanie, ponieważ:

  1. Działa.
  2. Wymaga najmniejszej ilości zmian i
  3. Nadal działa w połączeniu z dnsmasq's DNS cache, zamiast go omijać.
283 2014-05-07T01:31:08+00:00 3
 Community
Community
Edytowane pytanie 13. kwietnia 2017 в 12:36
linux - How do I set my DNS when resolv.conf is being overwritten? - Unix & Linux Stack Exchange
Most of the info I see online says to edit /etc/resolv.conf, but any changes I make there just get overridden.

$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated...
unix.stackexchange.com
W Systemach Unix I Linux
dns
ubuntu
linux
networking
dnsmasq
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
 slm
slm
7. maja 2014 в 2:01
2014-05-07T02:01:27+00:00
Więcej
Źródło
Edytuj
#20661226

Wierzę, że jeśli chcesz nadpisać serwer nazw DNS, po prostu dodajesz linię podobną do tej w swoim pliku base pod resolv.conf.d.

Przykład

$ sudo vim /etc/resolvconf/resolv.conf.d/base

Następnie umieść swoją listę serwerów nazw w taki sposób:

nameserver 8.8.8.8
nameserver 8.8.4.4

Na koniec zaktualizuj resolvconf:

$ sudo resolvconf -u

Jeśli spojrzysz na stronę man dla resolvconf, opisuje ona różne pliki pod /etc/resolvconf/resolv.conf.d/.

   /etc/resolvconf/resolv.conf.d/base
          File  containing  basic  resolver  information.  The lines in this 
          file are included in the resolver configuration file even when no
          interfaces are configured.

   /etc/resolvconf/resolv.conf.d/head
          File to be prepended to the dynamically generated resolver 
          configuration file.  Normally this is just a comment line.

   /etc/resolvconf/resolv.conf.d/tail
          File to be appended to the dynamically generated resolver 
          configuration file.  To append nothing, make this  an  empty  
          file.   This file is a good place to put a resolver options line 
          if one is needed, e.g.,

              options inet6

Nawet jeśli jest ostrzeżenie na górze pliku head:

$ cat /etc/resolvconf/resolv.conf.d/head
# 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

to ostrzeżenie jest tam tak, że kiedy te pliki są skonstruowane, ostrzeżenie ostatecznie znajdzie się w wynikowym pliku resolv.conf, do którego te pliki zostaną użyte. Więc równie dobrze mógłbyś dodać linie nameserver, które są opisane powyżej dla pliku base, do pliku head.

Referencje

  • Persist dns nameserver for ubuntu 14.04]1
  • Jak dodać serwer DNS poprzez resolv.conf?
 Community
Community
Edytowana odpowiedź 13. kwietnia 2017 в 12:22
253
0
 brad
brad
9. września 2014 в 10:10
2014-09-09T10:10:11+00:00
Więcej
Źródło
Edytuj
#20661228

Jestem również zainteresowany tym pytaniem i wypróbowałem rozwiązanie zaproponowane przez @sim.

Aby go przetestować, umieściłem

nameserver 8.8.8.8

w /etc/resolvconf/resolv.conf.d/base i

nameserver 8.8.4.4

w /etc/resolvconf/resolv.conf.d/head.

Następnie zrestartowałem sieć za pomocą

sudo service network-manager restart

W rezultacie /etc/resolv.conf wygląda jak

# 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.4.4
nameserver 127.0.1.1

a nm-tool stwierdza, że dnsserver są

DNS:             208.67.222.222
DNS:             208.67.220.220

które są dostarczane przez mój router. Z drugiej strony wykopanie adresu mówi, że

;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)

Jeśli mam rację, to z tego wszystkiego wnioskuję, że

  1. tylko część "head" jest czytana przez resolvonf: część "base" jest w jakiś sposób kontrolowana przez dnsmasq
  2. dnsserver jest w rzeczywistości zmuszony do 8.8.4.4 niezależnie od serwera podanego przez dhcp, ALE tracisz buforowanie zapewniane przez dnsmasq, ponieważ żądanie jest zawsze wysyłane do 8.8.4.4
  3. dnsmasq wciąż używa TYLKO serwera dnsserver dostarczonego przez dhcp.

W sumie to działa, ale nie sądzę, że jest to zamierzony rezultat, o który prosiłem. Bardziej zbliżone rozwiązanie, jak sądzę, jest następujące. Edit

sudo vim /etc/dhcp/dhclient.conf

następnie dodaj

supersede domain-name-servers 8.8.8.8;

Rezultat jest następujący: resolv.conf zawiera tylko 127.0.0.1, co oznacza, że dnsmasq cache jest wywoływany, a nm-tool mówi

DNS:             8.8.8.8

co oznacza, że jeśli szukanej nazwy nie ma w cache, to jest ona odpytywana na 8.8.8.8, a nie na serwerze podanym przez dhcp.

Inną (być może lepszą) opcją jest użycie "prepend" zamiast "supersede": w ten sposób, jeśli nazwa nie jest rozwiązana przez 8.8.8.8, to żądanie spada z powrotem na inny serwer. W rzeczywistości, nm-tool mówi

DNS:             8.8.8.8    
DNS:             208.67.222.222
DNS:             208.67.220.220
 brad
brad
Edytowana odpowiedź 9. września 2014 в 10:30
79
0
 Mike
Mike
4. czerwca 2014 в 3:57
2014-06-04T15:57:51+00:00
Więcej
Źródło
Edytuj
#20661227

Spróbuj dodać dns-nameservers XXX.XXX.XXX.X do swojego pliku /etc/networking/interfaces.

 drs
drs
Edytowana odpowiedź 4. czerwca 2014 в 4:28
3
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
Jasur Fozilov
Zarejestrowany 10 godzin temu
2
Zuxriddin Muydinov
Zarejestrowany 1 dzień temu
3
Денис Анненский
Zarejestrowany 3 dni temu
4
365
Zarejestrowany 1 tydzień temu
5
True Image
Zarejestrowany 1 tydzień temu
DA
DE
EL
ES
FR
ID
IT
JA
KO
NL
PL
PT
RO
RU
SK
ZH
© de-vraag 2022
Źródło
unix.stackexchange.com
na podstawie licencji cc by-sa 3.0 z przypisaniem