Cum îmi setez DNS-ul când resolv.conf este suprascris?

Majoritatea informațiilor pe care le văd online indică modificarea /etc/resolv.conf, dar orice modificări pe care le fac acolo sunt doar anulate .

$ 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 

Se pare că 127.0.1.1 este o instanță locală a dnsmasq. Documentele dnsmasq spun că se editează /etc/resolv.conf. Am încercat să pun servere de nume personalizate în /etc/resolv.conf.d/base, dar modificările nu au apărut în /etc/resolv.conf după ce am rulat sudo resolvconf -u.

FYI, nu vreau să schimb DNS pe bază de conexiune, vreau să setez setările DNS implicite pentru toate conexiunile atunci când nu sunt specificate altfel.

UPDATE:

Am răspuns la această întrebare personal: https://unix.stackexchange.com/a/163506/67024

Cred că este cea mai bună soluție din moment ce:

  1. Funcționează.
  2. Necesită cea mai mică cantitate de modificări și
  3. Funcționează în continuare împreună cu cache-ul DNS al dnsmasq, mai degrabă decât ocolirea acestuia.

Comentarii

  • Răspundeți mai bine la întrebarea dvs. în loc să vă actualizați întrebarea, cred … va fi mai ușor să găsiți răspunsul corect pe care l-ați dat problemei dvs.
  • Se pare că majoritatea răspunsurilor sunt orientate spre Ubuntu și prea complicate. O soluție universală pentru utilizatorii NetworkManager este să adăugați pur și simplu dns=none în /etc/NetworkManager/NetworkManager.conf (consultați detaliile din răspunsul meu de mai jos).
  • Cred că acest răspuns clarifică motivul pentru care resolver.conf este suprascris, apoi știți cum să îl configurați.

Răspuns

Cred că dacă doriți să suprascrieți serverul de nume DNS, pur și simplu adăugați o linie similară cu aceasta în base fișier sub resolv.conf.d.

Exemplu

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

Apoi puneți lista de servere de nume în like deci:

nameserver 8.8.8.8 nameserver 8.8.4.4 

În cele din urmă actualizați resolvconf:

$ sudo resolvconf -u 

Dacă aruncați o privire la pagina de manual pentru resolvconf, aceasta descrie diferitele fișiere din /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 

Chiar dacă există un avertisment în partea de sus a fișierului head:

acest avertisment este acolo, astfel încât atunci când aceste fișiere sunt construite, avertismentul își va merge în cele din urmă în fișierul resolv.conf rezultat pe care aceste fișiere îl vor fi folosit pentru a face. Deci, la fel de ușor ați fi putut adăuga liniile nameserver descrise mai sus pentru fișierul base, la head și fișierul.

Referințe

Comentarii

  • Ubuntu 14.04 – când pun serverele de nume în base și rulez resolvconf -u, serverele de nume au fost not introdus în resolv.conf – când am pus serverele de nume în head, acestea erau
  • Ubuntu 14.04 – De asemenea, a trebuit să comentez configurare setată în /run/resolvconf/interface/NetworkManager
  • tastați nslookup google.com și primul IP din listă ar trebui să fie noul dvs. server de nume, dacă nu , ați făcut-o greșit
  • Ubuntu 16.04: a funcționat dacă este atașat numai la /etc/resolvconf/resolv.conf.d/head, nu cu base. Confirmat cu nslookup google.com.
  • La început, trebuie să aveți instalat resolvconf. Îl puteți instala făcând sudo apt-get install resolvconf.

Răspuns

De asemenea, mă interesează această întrebare și am încercat soluția propusă @sim.

Pentru a o testa, am pus

nameserver 8.8.8.8 

în /etc/resolvconf/resolv.conf.d/base și

nameserver 8.8.4.4 

în /etc/resolvconf/resolv.conf.d/head

Apoi am repornit rețeaua cu

sudo service network-manager restart 

Rezultatul este că /etc/resolv.conf arată ca

# 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 

și nm-tool afirmă că dnsserver este

DNS: 208.67.222.222 DNS: 208.67.220.220 

care sunt cele furnizate de routerul meu. Pe de altă parte, săpat o adresă spune că

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

Dacă am dreptate, concluzionez din toate acestea că

  1. numai partea „head” este citită de resolvonf: partea „base” este cumva controlată de dnsmasq
  2. dnsserver este de fapt forțat să 8.8.4.4 indiferent de serverul furnizat de dhcp, DAR pierzi cache-ul furnizat de către dnsmasq, deoarece solicitarea este întotdeauna trimisă la 8.8.4.4
  3. dnsmasq folosește încă DOAR dnsserverul furnizat de dhcp.

Una peste alta, funcționează, dar eu Nu cred că este rezultatul dorit.O soluție mai apropiată cred că este următoarea. Editați

sudo vim /etc/dhcp/dhclient.conf 

apoi adăugați

supersede domain-name-servers 8.8.8.8; 

Rezultatul este următorul: resolv.conf conține doar 127.0.0.1, ceea ce înseamnă că este invocată memoria cache dnsmasq și nm-tool spune

DNS: 8.8.8.8 

ceea ce înseamnă că dacă numele căutat nu se află în memoria cache , atunci se solicită la 8.8.8.8 și nu la serverul furnizat de dhcp.

O altă opțiune (poate mai bună) este să folosiți „prepend” în loc de „substituit”: în acest fel, dacă numele nu este rezolvat până la 8.8.8.8, apoi cererea revine pe celălalt server. De fapt, nm-tool spune

DNS: 8.8.8.8 DNS: 208.67.222.222 DNS: 208.67.220.220 

Comentarii

  • Un răspuns mult mai bun decât hacking în Configurații NS. Mai ales opțiunea de a prepend un server în fața celor furnizate de dhcp. Se pare că echilibrul perfect al rezolvării problemei, fără a crea altele noi!
  • Merită remarcat ‘ nm-tool a fost înlocuit cu nmcli

Răspuns

Am aflat că puteți schimba serverele de nume pe care dnsmasq le folosește prin adăugarea următoarelor linii la /etc/dnsmasq.conf:

server=8.8.8.8 server=8.8.4.4 

Nu am avut însă, deoarece este instalat de pachetul dnsmasq, dar Ubuntu vine doar cu dnsmasq-base. Am rulat sudo apt-get install dnsmasq, apoi am editat /etc/dnsmasq.conf, apoi sudo service dnsmasq restart și sudo service network-manager restart.

Am alergat sudo tail -n 200 /var/log/syslog pentru a-mi verifica syslog-ul și a verifica dacă dnsmasq folosea serverele de nume pe care le-am specificat:

Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.8.8#53 Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.4.4#53 

Comentarii

  • Există un motiv pentru care acest lucru este marcat ca fiind cel mai bun răspunde … pentru că este într-adevăr! multumesc foarte mult! Aș adăuga că, după toți pașii pe care i-ați menționat, ar putea fi necesară o repornire a rețelei pentru ca totul să funcționeze fără probleme (a fost pentru mine … sudo service network-manager restart)
  • Pe serverul Ubuntu 14.04 aproximativ jumătate din timpul pornirii la rece nu ar rezulta conectivitate la internet folosind o adresă URL, dar o adresă IP ar funcționa. Am petrecut mult timp încercând fără rezultat să o rezolv, am renunțat luni de zile, apoi am găsit această soluție. Și eu cred că este cel mai bun răspuns.
  • Este ‘ interesant faptul că dnsmasq trebuie instalat. Acest lucru a rezolvat într-adevăr DNS-ul meu într-o situație normală, dar mi-a întrerupt total configurația VPN (conexiunea VPN nu reușește acum …)
  • nu există un astfel de fișier pe Centos
  • ubuntu 16: modificările din procedura cu dnsmasq nu sunt propagate în /etc/resolv.conf. Consecința este că hat nslookup încă folosește localhost-ul său 127.0.0.1. Deși vă pot confirma syslog-urile menționate.

Răspuns

Pentru situații IP statice, Ghidul serverului Ubuntu spune că schimbați fișierul / etc / network / interfaces, care poate arăta astfel:

iface eth0 inet static address 192.168.3.3 netmask 255.255.255.0 gateway 192.168.3.1 dns-search example.com dns-nameservers 192.168.3.45 192.168.8.10 

Schimbați adresele IP 192.168.3.45 192.168.8.10 pentru cele dorite , cum ar fi 8.8.8.8

https://help.ubuntu.com/14.04/serverguide/serverguide.pdf Pagina 38

Comentarii

  • Cu siguranță acest aspect pare corect, dar cum pot acum să regenerez resolv.conf ?!
  • @JoelBerger ifdown eth0; ifup eth0.
  • nu / etc / network / interfaces pe Centos

Răspuns

  1. Căutați „Conexiune de rețea”

  2. Deschideți-l

    introduceți descrierea imaginii aici

  3. Apoi selectați fie WiFi sau Ethernet, fie orice utilizați și faceți clic pe editare. Veți obține acest lucru:

    introduceți descrierea imaginii aici

  4. Selectați ipv4 în file

  5. Selectați adresele numai în metoda

  6. Introduceți numele DNS mai jos și salvați-l

  7. Ați terminat

Comentarii

  • I ‘ Totuși, ar trebui să fac acest lucru pentru fiecare conexiune de rețea. În trecut, puteai schimba valoarea implicită pentru toate conexiunile, ceea ce căutam să fac aici.
  • Te iubesc! această setare UI mi-a salvat fundul de sudo și vim mess: ‘ (
  • Folosind Mint (pe Ubuntu 14.04) – dar am văzut asta și cu KDE motiv, setarea serverelor DNS în GUI Network Manager nu afectează ‘ setările DNS utilizate într-un terminal
  • Cel mai bun răspuns imho. Pe Ubuntu 14.04 am primit 2 externe Adrese IP pentru DNS care nu ‘ ar recunoaște clienții din rețeaua mea de acasă. Metoda lăsată pe ‘ Automat (DHCP) pentru conexiunea prin cablu adăugat routerul meu ‘ adresa IP la lista existentă.Pentru conexiunea fără fir prin wlan0, aceasta nu a funcționat ‘, dar Metoda pe ‘ numai adresele automate (DHCP) ‘ a înlocuit adresele externe cu adresa IP a routerului meu și apoi a funcționat și el. Aplicați modificările cu sudo service network-manager restart, așteptați puțin, verificați cu nmcli d list | grep 'DNS\|IP-IFACE'. Și trimiteți ping clientului dvs. intern după nume.
  • acesta este răspunsul corect

Răspuns

O soluție rapidă și murdară care nu a fost menționată încă este setarea steagului imuabil în fișierul resolv.conf imediat după editare.

$ sudo nano /etc/resolv.conf 

Adăugați acest lucru și salvați:

nameserver 8.8.8.8 

Apoi:

$ sudo chattr +i /etc/resolv.conf 

Asta ar trebui să facă trucul. Fac asta și în sistemul meu.

Comentarii

  • De fiecare dată când soluția dvs. implică chattr, ea ‘ nu este într-adevăr o soluție.
  • asta fac pe sistemele în care trebuie să schimb temporar DNS-ul dintr-un anumit motiv și să nu ‘ nu vreau să modific configurația. Ca soluție permanentă, nu aș recomanda ‘.
  • ” soluție rapidă și murdară ”
  • Aceasta nu este ‘ t murdară. Programe care distrug configurația locală, deoarece cred că știu mai bine că sunt murdare.

Răspuns

Problema mea a fost puțin diferită , Am vrut să trec peste serverele DNS ale routerelor mele. Am găsit acest link de la Ubuntu: https://wiki.ubuntu.com/OverrideDNSServers

Se spune: Dacă doriți să suprascrieți setările DNS furnizate de un server DHCP, deschideți

/etc/dhcp3/dhclient.conf 

și adăugați următoarea linie:

supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>; 

înlocuirea elementelor <dns_ip_address*> cu conținutul adecvat.

Comentarii

  • Acesta este răspunsul care a rezolvat problema mea.
  • Perfect. Doar adăugând că ar trebui să reporniți rețeaua de serviciu sudo pentru a activa modificările.
  • Ce se întâmplă dacă ‘ nu avem dhcp3 folder? Am Xubuntu 17.10, s-a mutat la /etc/dhcp pur și simplu?
  • @PlasmaBinturong în cazul meu a fost /etc/dhcp/dhclient.conf pe cele mai recente versiuni Debian și Ubuntu.

Răspuns

Încercați să adăugați dns-nameservers XXX.XXX.XXX.X în fișierul dvs. /etc/networking/interfaces.

Comentarii

  • Lăsați un comentariu atunci când votați negativ, vă rog. Aceasta este metoda dată în manual , pagina 38.
  • Manualul nemenționat afișează toate adresele IP pe o singură linie. Acest răspuns pare să sugereze adăugarea unei linii. Și de ce ultimul număr are doar un X lat? Cred că cea mai mare parte a scrierii scurte, extrem de informale și incerte, în stil chat, a adunat voturile negative, @Zook.

Răspuns

Poate că îmi lipsește ceva, dar conform instrucțiunilor de configurare de la https://help.ubuntu.com/14.04/serverguide/network-configuration.html tot ce faci este actualizați următoarele. Nu rulez un proxy – doar o mașină în spatele unui firewall și DNS local (exemplu arată Google, dar setați-l la orice aveți nevoie).

nano /etc/network/interfaces 

Implicit:

# This file... # and how to activate... # The loopback... auto local iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp 

ACTUALIZAT:

# This file... # and how to activate... # The loopback... auto local iface lo inet loopback # The primary network interface #iface eth0 inet dhcp iface eth0 inet static address x.x.x.x netmask 255.255.255.0 gateway x.x.x.x #nameservers # you may not need dns-search # I use it because I"m running this on a Windows network # so its useful to have # dns-search x.y dns-nameservers 4.4.4.4 8.8.8.8 

Reporniți, dacă puteți.

Răspuns

Unele răspunsuri aici funcționează foarte bine. Cu toate acestea, nu am fost mulțumit de faptul că trebuie să trec manual fișierele de configurare doar pentru a seta „corect” DNS pe care le sunt ady primesc peste DHCP cu NetworkManager.

Am făcut câteva săpături și am observat că fișierul /etc/resolv.conf este de fapt un link și indică /run/systemd/resolve/stub-resolv.conf. După unele experimente, se pare că directorul /run/systemd/resolve/ conține un alt fișier numit resolv.conf care conține deja setările pe care le-ați primit prin DHCP. Deci, în loc să trebuiască să suprascrieți manual / să creați fișiere de configurare în /etc/, puteți pur și simplu să reconectați /etc/resolv.conf pentru a indica spre /run/systemd/resolve/resolv.conf și totul ar trebui să fie bine:

# sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf 

Acum ar trebui să puteți edita setările chiar și din rețea Manager în Gnome. 🙂

Nu sunt sigur dacă acest lucru va funcționa pe ubuntu mai vechi, dar funcționează pe Ubuntu 17.10.

Comentarii

  • când rulăm systemd-resolve --flush-cache fișierul original legat este întrerupt aparent, răspunsul de mai sus restaurează funcționalitatea originală

Răspuns

EDITARE 6 MAI 2016

Am scris un script pentru actualizarea tuturor setărilor pentru conexiunile de sistem în directorul /etc/Network-Manager/system-connections/. GUI pe care îl utilizați pentru a edita conexiuni individuale, editează un anumit fișier din acel director. Scriptul actualizează toate fișierele – caută doar pe cei care nu au dns setate cu grep și îl setează cu awk.

Deoarece accesarea acelor fișiere necesită acces sudo, rulați acest script cu sudo și apoi – reporniți administratorul de rețea

#!/bin/bash # Author: Serg Kolo # Date: May 6, 2015 # Description: this script checks all settings for connections in # /etc/NetworkManager/system-connections/ , and if there"s no custom # dns set , this script sets it; # NOTE: run sudo service network-manager restart after running this script set -x for file in /etc/NetworkManager/system-connections/* ; do grep "dns=208.67.220.220;" "$file" || ( awk "{print;if ($1=="[ipv4]"){getline; print "method=auto\ndns=208.67.220. 220;\nignore-auto-dns=true"}}" "$file" > .tmpfile && ( cat .tmpfile > "$file") ) done 

Script în acțiune:

introduceți descrierea imaginii aici

POST ORIGINAL Unii utilizatori de aici au subliniat că DNS este cumva controlat de dnsmasq. Acest lucru este adevărat. M-am confruntat cu o problemă ceva mai mică, în care oricât am schimbat head sau body în /etc/resolvconf/resolv.conf.d, computerul meu nu a putut efectiv să acceseze internat după nume de domeniu – funcționând doar cu adrese IP.

Ceea ce am făcut este să editez fișierul /etc/NetworkManager/NetworkManager.conf. Inițial, scria dns=dnsmasq, dar l-am schimbat în: dns=208.67.222.222. Deși în acest fel, nm-tool nu menționează 208.67.222.222, totuși am putut utiliza nume de domenii, nu doar adrese IP.

Iată cum Fișierul NetworkManager.conf arată acum:

[main] plugins=ifupdown,keyfile,ofono #dns=dnsmasq dns=208.67.222.222 [ifupdown] managed=false 

NOTĂ: Pentru mai multe detalii despre problema mea și această soluție, consultați postarea mea pe askubuntu.com .

UPDATE # 1

După ce m-am întors acasă de la universitate astăzi, am descoperit că nu mă pot conecta la WiFi-ul meu de acasă. Am citit puțin pe man NetworkManager.conf și se dovedește că dns= în [main] este de fapt o linie pentru plug-in-uri, deci linia dns=dnsmasq de fapt adaugă pluginul dnsmasq la NetworkManager, aparent.

Deci, soluția mea a funcționat, nu așa cum mă așteptam. Aici extrasul din pagina manuală:

dns=plugin1,plugin2, ... List DNS plugin names separated by ",". 

Pluginurile DNS sunt utilizate pentru a furniza funcționalitatea serverului de nume de cache local (care accelerează interogările DNS) și pentru a transmite datele DNS către aplicațiile care îl utilizează.

Deci prin setarea dns=208.67.222.222 Este posibil să fi împiedicat, practic, NetworkManager să folosească acel plugin, care altfel ar folosi serverul DNS local (care aparent nu funcționează).

Răspuns

Există două

Metoda 1

Serverul DNS de utilizat poate fi schimbat prin actualizarea fișierului head în resolv.conf.d

$ echo "nameserver 1.1.1.1" | sudo tee /etc/resolvconf/resolv.conf.d/base 

și apoi rulați

$ sudo resolvconf -u 

Cele de mai sus vor genera un fișier generic resolv.conf în directorul /etc. Toate cererile dvs. de soluționare vor fi trimise către serverul de nume menționat mai sus. Rezolvat.

Cu toate acestea, există implicații în acest sens. Când utilizați resolvconf pentru a interoga direct 1.1.1.1 pentru rezoluțiile de adresă, puterea de stocare în cache furnizată de dnsmasq a dispărut. Fiecare solicitare va merge la 1.1.1.1

Metoda 2

Dacă nu doriți să se întâmple mai sus și utilizați dnsmasq pentru rezoluțiile DNS, consultați acest răspuns. Răspunsul este descris pur și simplu aici.

Adăugați următorul conținut în fișierul /etc/dnsmasq.conf .

server = 1.1.1.1

Apoi reporniți serviciul dnsmasq

$ sudo systemctl restart dnsmasq.service 

Lucrurile vor funcționa bine. Rezolvat .

Răspuns

Modul ușor de a schimba DNS:

$ sudo nano /etc/network/interfaces 

Dacă apar probleme, instalați nano:

$ sudo apt-get install nano -y 

apoi ..

  1. găsiți acest lucru: dns-nameservers
  2. dacă nu-l găsești, doar introduceți-l acolo
  3. Am făcut-o așa: dns-nameservers 199.85.126.10 199.85.127.10

Sper că acesta este cel mai bun mod, am făcut-o așa pe un VPS apropo.

Răspuns

pe rădăcină:

  1. comentariu dns=dnsmasq pe /etc/NetworkManager/NetworkManager.conf
  2. adăugați supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2; la sfârșitul /etc/dhcp/dhclient.conf
  3. sudo service network-manager restart

Următoarele efectuează modificările de mai sus:

$ sudo sed -i "s/dns\x3Ddnsmasq/\x23dns\x3Ddnsmasq/" \ /etc/NetworkManager/NetworkManager.conf $ echo "supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;" | \ sudo tee --append /etc/dhcp/dhclient.conf $ sudo service network-manager restart 

Așteptați 7/10 secunde pentru a finaliza procesul de repornire, verificați configurația cu” nslookup nist.gov „. Funcționează bine pe Ubuntu LTS 14.04.

Răspuns

NB: Ca majoritatea răspunsurilor, acesta presupune utilizarea NetworkManager . Cu toate acestea, spre deosebire de majoritatea celorlalte răspunsuri, nu presupune utilizarea resolvconf, dhclient sau orice altceva – ferește-te că pot prelua, totuși (a se vedea actualizarea).

Având în vedere numărul de vizualizări ale acestei întrebări, este „incredibil că acest 8 caractere nu a fost încă postată: conform man NetworkManager.conf,

dns: […] none: NetworkManager nu va modifica resolv.conf. Aceasta implică rc-manager unmanaged

Prin urmare, adăugați

în secțiunea [main] din /etc/NetworkManager/NetworkManager.conf apoi reporniți NetworkManager și nu va fi modificat /etc/resolv.conf mai mult.

Rețineți că setarea rc-manager=unmanaged ar trebui să fie echivalentă cu dns=none și această setare rc-manager=symlink împreună cu /etc/resolv.conf ca simbol linkul olic poate fi o idee mai bună (citiți pagina de manual menționată mai sus).

Actualizare:

După ce NetworkManager a oprit suprascrierea /etc/resolv.conf, m-am gândit dhcpcd înlocuia deja /etc/resolv.conf cu un fișier gol inutil la pornire. Pagina de manual a dhcpcd.conf a ajutat, este suficient să adăugați

nohook resolv.conf 

în dhcpcd.conf (al meu este în /etc/dhcpcd.conf).

Răspunde

Că „deoarece o anumită aplicație instalată gestionează acest fișier. Puteți fie să dezinstalați acea aplicație, fie să setați opțiunile dorite direct prin acea aplicație.

În cazul meu (server Linux centos7 minim) având aceeași situație pe care o primeam # Generated by NetworkManager în partea de sus a fișierului resolv.conf, astfel încât cel mai bun mod în care aș putea schimba această opțiune a fost folosirea

nmtui

comanda. Puteți edita serverele de nume în acest instrument și când modificați opțiunile de networkmanager din acest utilitar, acestea vor fi aplicate automat la /etc/resolv.conf după repornire. Aici puteți găsi mai multe informații .

Răspuns

Nimic la toate pe internet el M-am ajutat, deoarece utilitarul CLI al NordVPN a continuat să suprascrie /etc/resolv.conf de fiecare dată când m-am conectat și m-am deconectat de la VPN. Chiar a suprascris chattr +i, ceea ce a fost super enervant !!

Ceea ce a funcționat pentru mine a fost dezactivarea completă a resolvconf !

Editați /etc/resolvconf.conf și faceți din aceasta singura intrare:

resolv_conf=NO 

Aceasta dezactivează în mod specific resolvconf, adică /etc/resolv.conf nu va fi modificat niciodată de acesta. Apoi, continuați și sudo chattr +i /etc/resolv.conf pentru o măsură bună.

Testat pe Arch Linux.

Răspuns

Pe Centos 7, folosind NetworkManager, cea mai curată, persistentă soluție de lucru pe care am putut să o găsesc este să creez un script NetworkManager care utilizează nmcli pentru a seta valorile dorite.

de ex.

Creați /etc/NetworkManager/dispatcher.d/mydns.sh cu permisiunile 755 și următorul conținut:

#!/usr/bin/sh if [ $1 == "enp0s11" -a $2 == "up" ] then echo "Setting my DNS ($1 is $2)" | logger # disable default DNS nmcli device mod enp0s11 ipv4.ignore-auto-dns yes # Substitute our own DNS, in the desired order nmcli device mod enp0s11 ipv4.dns "10.0.1.101 10.0.1.1" fi 

Și pentru a testa, fără a reporni:

systemctl restart NetworkManager.service cat /etc/resolv.conf 

YMMV, dar acesta este singurul mod pe care l-am găsit, care îmi permite /etc/resolv.conf să „supraviețuiește” o repornire fără a fi suprascris cu valori pe care nu le doresc.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *