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:
- Funcționează.
- Necesită cea mai mică cantitate de modificări și
- Funcționează în continuare împreună cu cache-ul DNS al dnsmasq, mai degrabă decât ocolirea acestuia.
Comentarii
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 rulezresolvconf -u
, serverele de nume au fost not introdus în resolv.conf – când am pus serverele de nume înhead
, 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 cubase
. Confirmat cunslookup google.com
. - La început, trebuie să aveți instalat
resolvconf
. Îl puteți instala făcândsudo 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ă
- numai partea „head” este citită de resolvonf: partea „base” este cumva controlată de dnsmasq
- 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
- 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
-
Căutați „Conexiune de rețea”
-
Deschideți-l
-
Apoi selectați fie WiFi sau Ethernet, fie orice utilizați și faceți clic pe editare. Veți obține acest lucru:
-
Selectați ipv4 în file
-
Selectați adresele numai în metoda
-
Introduceți numele DNS mai jos și salvați-l
-
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 cunmcli 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:
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 ..
- găsiți acest lucru:
dns-nameservers
- dacă nu-l găsești, doar introduceți-l acolo
- 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ă:
- comentariu
dns=dnsmasq
pe/etc/NetworkManager/NetworkManager.conf
- 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
-
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.
dns=none
în/etc/NetworkManager/NetworkManager.conf
(consultați detaliile din răspunsul meu de mai jos).