Hvordan stiller jeg inn DNS når resolv.conf blir overskrevet?

Det meste av informasjonen jeg ser på nettet sier å redigere /etc/resolv.conf, men alle endringer jeg gjør der blir bare overstyrt .

$ 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 

Det ser ut til at 127.0.1.1 er en lokal forekomst av dnsmasq. dnsmasq dokumentene sier å redigere /etc/resolv.conf. Jeg prøvde å sette tilpassede navneservere i /etc/resolv.conf.d/base, men endringene dukket ikke opp i /etc/resolv.conf etter å ha kjørt sudo resolvconf -u.

FYI, jeg vil ikke endre DNS per tilkoblingsbasis, jeg vil angi standard DNS-innstillinger som skal brukes for alle tilkoblinger når ikke annet er spesifisert.

UPDATE:

Jeg svarte selv på dette spørsmålet: https://unix.stackexchange.com/a/163506/67024

Jeg tror det er den beste løsningen siden:

  1. Det fungerer.
  2. Det krever minst mulig endringer og
  3. Det fungerer fortsatt i forbindelse med dnsmasqs DNS-cache, i stedet for å omgå den.

Kommentarer

  • Bedre svare på spørsmålet ditt i stedet for å oppdatere spørsmålet ditt tror jeg … blir lettere å finne det rette svaret du ga på problemet ditt
  • Det ser ut til at de fleste svarene er Ubuntu-orienterte, og altfor kompliserte. En universell løsning for NetworkManager-brukere er å bare legge til dns=none i /etc/NetworkManager/NetworkManager.conf (se detaljer i svaret mitt nedenfor).
  • Jeg tror dette svaret tydeliggjør hvorfor resol.conf blir overskrevet, så vet du hvordan du konfigurerer det.

Svar

Jeg tror at hvis du vil overstyre DNS-navneserveren, legger du bare til en linje som ligner på denne i base fil under resolv.conf.d.

Eksempel

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

Sett deretter navneserverlisten din som så:

nameserver 8.8.8.8 nameserver 8.8.4.4 

Endelig oppdater resolvconf:

$ sudo resolvconf -u 

Hvis du ser på mansiden for resolvconf, beskriver den de forskjellige filene under /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 

Selv om det er en advarsel øverst i head -filen:

denne advarselen er der, slik at når disse filene er konstruert, vil advarselen til slutt jobbe seg inn i den resulterende resolv.conf -filen som disse filene vil brukes til å lage. Så du kunne like gjerne ha lagt til nameserver linjene som er beskrevet ovenfor for base -filen, til head fil også.

Referanser

Kommentarer

  • Ubuntu 14.04 – når jeg setter navneserverne i base og kjører resolvconf -u, var namneserverne ikke satt i resolv.conf – da jeg satte navneserverne i head, de var
  • Ubuntu 14.04 – Måtte også kommentere konfigurasjon satt i /run/resolvconf/interface/NetworkManager
  • type nslookup google.com og den første IP-en i listen skal være din nye navneserver, hvis ikke , du gjorde det galt
  • Ubuntu 16.04: Fungerte hvis det ble lagt til /etc/resolvconf/resolv.conf.d/head, ikke med base. Bekreftet med nslookup google.com.
  • Først må du ha resolvconf. Du kan installere det ved å gjøre sudo apt-get install resolvconf.

Svar

Jeg er også interessert i dette spørsmålet, og jeg prøvde løsningen som ble foreslått @ sim.

For å teste det, la jeg

nameserver 8.8.8.8 

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

nameserver 8.8.4.4 

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

Så startet jeg nettverket på nytt med

sudo service network-manager restart 

Resultatet er at /etc/resolv.conf ser ut som

# 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 

og nm-tool sier at dnserveren er

DNS: 208.67.222.222 DNS: 208.67.220.220 

som er de som leveres av ruteren min. På den annen side forteller det å grave en adresse at

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

Hvis jeg har rett, konkluderer jeg med alt dette at

  1. bare «head» -delen leses av resolvonf: «base» -delen styres på en eller annen måte av dnsmasq
  2. dnsserver er faktisk tvunget til 8.8.4.4 uavhengig av serveren som tilbys av dhcp, MEN du mister caching av dnsmasq, siden forespørselen alltid sendes til 8.8.4.4
  3. dnsmasq bruker fortsatt KUN dnsserver levert av dhcp.

Alt i alt fungerer det, men jeg tror ikke det er ønsket resultat.En nærmere løsning synes jeg er følgende. Rediger

sudo vim /etc/dhcp/dhclient.conf 

og legg deretter til

supersede domain-name-servers 8.8.8.8; 

Resultatet er følgende: resolv.conf inneholder bare 127.0.0.1, noe som betyr at dnsmasq-cache blir påkalt og nm-tool sier

DNS: 8.8.8.8 

som betyr at hvis navnet du søkte etter ikke er i hurtigbufferen , blir det bedt om det ved 8.8.8.8 og ikke på serveren som leveres av dhcp.

Et annet (kanskje bedre) alternativ er å bruke «prepend» i stedet for «supersede»: på denne måten, hvis navnet er ikke løst av 8.8.8.8, så faller forespørselen tilbake på den andre serveren. Faktisk sier nm-tool

DNS: 8.8.8.8 DNS: 208.67.222.222 DNS: 208.67.220.220 

Kommentarer

  • Et mye bedre svar enn å hacke seg inn i NS configs. Spesielt muligheten til å forberede en server foran de dhcp-ene. Virker som den perfekte balansen for å løse problemet uten å skape nye!
  • Det ‘ er verdt å merke seg at nm-tool er erstattet med nmcli

Svar

Jeg fant ut at du kan endre navneserverne som dnsmasq bruker ved å legge til følgende linjer i /etc/dnsmasq.conf:

server=8.8.8.8 server=8.8.4.4 

Jeg hadde ikke /etc/dnsmasq.conf -filen, siden den er installert av dnsmasq-pakken, men Ubuntu kommer bare med dnsmasq-base. Jeg løp sudo apt-get install dnsmasq, redigerte deretter /etc/dnsmasq.conf, deretter sudo service dnsmasq restart og sudo service network-manager restart.

Jeg løp sudo tail -n 200 /var/log/syslog for å sjekke sysloggen min og verifisere at dnsmasq brukte navneservere jeg spesifiserte:

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 

Kommentarer

  • Det er en grunn til at dette er merket som det beste svar … fordi det faktisk er det! Tusen takk! Jeg vil legge til at, etter alle trinnene du nevnte, kan det være nødvendig med en omstart av nettverket for at alt skal fungere greit (det var for meg …. sudo service network-manager restart)
  • På Ubuntu 14.04 Server vil omtrent halvparten av tiden en kaldstart ikke føre til internettforbindelse ved hjelp av en URL, men en IP-adresse vil fungere. Jeg brukte mye tid fruktløst på å fikse det, ga opp i flere måneder, så fant jeg denne løsningen. Jeg synes også det er det beste svaret.
  • Det ‘ er spennende at dnsmasq må installeres. Dette fikset faktisk DNS-en min i en normal situasjon, men den brøt VPN-konfigurasjonen min fullstendig (VPN-tilkobling mislykkes nå …)
  • det er ingen slik fil på Centos
  • ubuntu 16: endringer fra prosedyren med dnsmasq overføres ikke til /etc/resolv.conf. Konsekvensen er at hat nslookup fortsatt bruker sin opprinnelige definerte localhost 127.0.0.1. Selv om jeg kan bekrefte de nevnte sysloggene dine.

Svar

For statiske IP-situasjoner sier Ubuntu Server Guide til endre filen / etc / nettverk / grensesnitt, som kan se slik ut:

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 

Du endrer IP-ene 192.168.3.45 192.168.8.10 for de du vil ha , som 8.8.8.8

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

Kommentarer

  • Dette ser absolutt riktig ut, men hvordan regenererer jeg nå resolv.conf ?!
  • @JoelBerger ifdown eth0; ifup eth0.
  • nei / etc / nettverk / grensesnitt på Centos

Svar

  1. Søk i «Nettverkstilkobling»

  2. Åpne den

    skriv inn bildebeskrivelse her

  3. Velg deretter enten WiFi eller Ethernet, eller hva du bruker, og klikk på rediger. Du får dette:

    skriv inn bildebeskrivelse her

  4. Velg ipv4 i faner

  5. Velg bare adresser i metode

  6. Skriv inn DNS-navnet ditt nedenfor, og lagre det

  7. Du er ferdig

Kommentarer

  • I ‘ div Jeg må gjøre dette for hver nettverkstilkobling. Tidligere kunne du endre standard for alle tilkoblinger, og det var det jeg ønsket å gjøre her.
  • Jeg elsker deg! denne brukergrensesnittinnstillingen reddet rumpa mi fra sudo og vim-rot: ‘ (
  • Bruker Mint (på Ubuntu 14.04) – men har sett dette med KDE også – for noen grunn, innstilling av DNS-servere i GUI Network Manager påvirker ikke ‘ t DNS-innstillingene som brukes i en terminal
  • Beste svar imho. På Ubuntu 14.04 fikk jeg 2 eksterne IP-adresser for DNS som ikke ‘ ikke gjenkjenner klienter i hjemmenettverket mitt. Forlatelsesmetode på ‘ Automatisk (DHCP) ‘ for kablet tilkobling la til ruteren min ‘ s IP-adresse til den eksisterende listen.For den trådløse forbindelsen over wlan0 fungerte det ikke ‘, men Metode på ‘ Automatisk (DHCP) adresser bare ‘ erstattet de eksterne adressene med routerens IP og da fungerte det også. Bruk endringer med sudo service network-manager restart, vent litt, bekreft med nmcli d list | grep 'DNS\|IP-IFACE'. Og ping din interne klient ved navn.
  • dette er riktig svar

Svar

En rask og skitten løsning som ikke ble nevnt ennå, setter det uforanderlige flagget på resolv.conf -filen rett etter redigering.

$ sudo nano /etc/resolv.conf 

Legg til dette og lagre:

nameserver 8.8.8.8 

Deretter:

$ sudo chattr +i /etc/resolv.conf 

Det burde gjøre susen. Jeg gjør dette på systemet mitt også.

Kommentarer

  • Når løsningen din innebærer chattr, er det ‘ er egentlig ikke en løsning.
  • dette gjør jeg på systemer der jeg av en eller annen grunn trenger å endre DNS midlertidig og ikke ‘ t vil endre konfigurasjonen. Som en permanent løsning vil jeg ikke ‘ t anbefale det.
  • » rask og skitten løsning »
  • Dette er ikke ‘ t skitne. som ødelegger lokal konfigurasjon fordi de tror de vet bedre er skitne.

Svar

Problemet mitt var litt annerledes , Jeg ønsket å overstyre ruterne mine DNS-servere. Jeg fant denne lenken fra Ubuntu: https://wiki.ubuntu.com/OverrideDNSServers

Det står: Hvis du vil overstyr DNS-innstillingene som er gitt til deg av en DHCP-server, åpne

/etc/dhcp3/dhclient.conf 

og legg til følgende linje:

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

erstatter <dns_ip_address*> elementer med riktig innhold.

Kommentarer

  • Dette er svaret som løste problemet mitt.
  • Perfekt. Bare å legge til at du skal starte sudo-tjenestenettverk på nytt for å aktivere endringene.
  • Hva om vi ikke ‘ ikke har den dhcp3 mappe? Jeg har Xubuntu 17.10, har den flyttet til /etc/dhcp enkelt?
  • @PlasmaBinturong i mitt tilfelle var det /etc/dhcp/dhclient.conf på siste Debian- og Ubuntu-versjoner.

Svar

Prøv å legge til dns-nameservers XXX.XXX.XXX.X inn i /etc/networking/interfaces -filen.

Kommentarer

  • Legg igjen en kommentar når du nedstemmer. Dette er metoden gitt i manualen , side 38.
  • Den nevnte manualen viser alle IP-adresser på en linje. Dette svaret ser ut til å foreslå å legge til en linje. Og hvorfor er det siste tallet bare en X bred? Jeg tror det for det meste var den ekstremt uformelle og usikre korte chat-stil-skrivingen som fikk nedstemningene, @Zook.

Svar

Kanskje jeg mangler noe, men ifølge konfigurasjonsinstruksjonene på https://help.ubuntu.com/14.04/serverguide/network-configuration.html er alt du gjør er oppdater følgende: Jeg kjører ikke en proxy – bare en maskin bak en brannmur og lokal DNS (eksempel viser Googles, men sett den til det du trenger).

nano /etc/network/interfaces 

Standard:

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

OPPDATERT:

# 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 

Start på nytt, hvis du kan.

Svar

Noen av svarene her fungerer fint. Men jeg var ikke fornøyd med at jeg må gå gjennom manuelt konfigurasjonsfiler bare for å angi «riktig» DNS som jeg allerede ady mottar over DHCP med NetworkManager.

Jeg gravde litt og la merke til at /etc/resolv.conf -filen faktisk er en lenke og at den peker til /run/systemd/resolve/stub-resolv.conf div Etter noen eksperimenter ser det ut til at /run/systemd/resolve/ katalogen inneholder en annen fil med navnet resolv.conf som allerede inneholder innstillingene du har mottatt via DHCP. Så i stedet for å måtte overskrive / opprette konfigurasjonsfiler manuelt i /etc/, kan du ganske enkelt koble til /etc/resolv.conf for å peke på /run/systemd/resolve/resolv.conf -filen og alt skal være bra:

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

Du skal nå kunne redigere innstillingene selv fra nettverket Manager i Gnome. 🙂

Ikke sikker på om dette fungerer på eldre ubuntu, men det gjør det på Ubuntu 17.10.

Kommentarer

  • når vi kjører systemd-resolve --flush-cache den opprinnelige koblede filen er tilsynelatende kuttet, svaret ovenfor gjenopprettes den opprinnelige funksjonaliteten

Svar

REDIGER 6. MAI, 2016

Jeg har skrevet et skript for å oppdatere alle innstillinger for systemforbindelser i /etc/Network-Manager/system-connections/ -katalogen. GUI som du bruker til å redigere individuelle tilkoblinger, redigerer en bestemt fil i den katalogen. Skriptet oppdaterer alle filene – det søker bare etter de som ikke har dns satt med grep og setter det med awk.

Siden tilgang til disse filene krever sudo tilgang, kjør dette skriptet med sudo og start deretter nettverksadministrator på nytt

#!/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 

Skript i aksjon:

skriv inn bildebeskrivelse her

ORIGINAL POST Noen brukere her påpekte at DNS på en eller annen måte styres av dnsmasq. Det er virkelig sant. Jeg har stått overfor et noe mindre problem, uansett hvordan jeg endret head eller body i /etc/resolvconf/resolv.conf.d, datamaskinen min kunne faktisk ikke få tilgang til internert av domenenavn – bare med IP-adresser.

Det jeg gjorde er å redigere /etc/NetworkManager/NetworkManager.conf -filen. Opprinnelig sto det dns=dnsmasq men jeg endret det til: dns=208.67.222.222. Selv om nm-tool ikke nevner 208.67.222.222, klarte jeg fortsatt å bruke domenenavn, ikke bare IP-adresser.

Her er hvordan jeg NetworkManager.conf -fil ser ut som nå:

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

MERK: For mer informasjon om problemet mitt og denne løsningen, se innlegget mitt på askubuntu.com .

OPPDATERING # 1

Etter å ha kommet hjem fra universitetet i dag, oppdaget jeg at jeg ikke kunne koble meg til WiFi hjemme. Jeg har lest litt opp på man NetworkManager.conf og det viser seg at dns= i [main] faktisk er en linje for plugin-moduler, så linje dns=dnsmasq legger faktisk til dnsmasq-pluginet til NetworkManager, tilsynelatende.

Så løsningen min fungerte fremdeles, ikke som jeg hadde forventet. Her er utdrag fra mannssiden:

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

DNS-plugins brukes til å gi lokal caching-navneserverfunksjonalitet (som fremskynder DNS-spørsmål) og for å skyve DNS-data til applikasjoner som bruker det.

Så ved å sette dns=208.67.222.222 Jeg har i utgangspunktet forhindret NetworkManager fra å bruke det pluginet, som ellers ville brukt den lokale DNS-serveren (som tilsynelatende ikke fungerer).

Svar

Det er to metoder

Metode 1

DNS-serveren som skal brukes, kan endres ved å oppdatere head -filen under resolv.conf.d

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

og kjør deretter

$ sudo resolvconf -u 

Ovenstående genererer en generisk resolv.conf -fil i /etc -katalogen. Alle dine løsningsforespørsler vil bli sendt til ovennevnte navneserver. Løst.

Dette har imidlertid implikasjoner. Når du bruker resolvconf for å spørre direkte 1.1.1.1 for adresseoppløsninger, er kraften til caching levert av dnsmasq borte. Hver forespørsel vil gå til 1.1.1.1

Metode 2

Hvis du ikke vil at ovenfor skal skje og bruke dnsmasq for DNS-oppløsninger, se dette svaret. Svaret er ganske enkelt beskrevet her.

Legg til følgende innhold i /etc/dnsmasq.conf -fil .

server = 1.1.1.1

Start deretter dnsmasq-tjenesten på nytt

$ sudo systemctl restart dnsmasq.service 

Ting fungerer greit. Løst.

Svar

Den enkle måten å endre DNS:

$ sudo nano /etc/network/interfaces 

Hvis problemer dukker opp, installer nano:

$ sudo apt-get install nano -y 

deretter ..

  1. finn dette: dns-nameservers
  2. hvis du ikke finner det, skriv det bare inn der
  3. Jeg gjorde mitt slik: dns-nameservers 199.85.126.10 199.85.127.10

Jeg håper dette er den beste måten, jeg gjorde det slik på en VPS forresten.

Svar

på rot:

  1. kommentar dns=dnsmasq/etc/NetworkManager/NetworkManager.conf
  2. legg til 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; på slutten av /etc/dhcp/dhclient.conf
  3. sudo service network-manager restart

Følgende gjør endringene vist ovenfor:

$ 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 

Vent 7/10 sekunder for å fullføre omstartsprosessen, sjekk konfigurasjonen din med» nslookup nist.gov «. Fungerer bra på Ubuntu LTS 14.04.

Svar

NB: Som de fleste svar forutsetter denne bruken av NetworkManager . Men i motsetning til de fleste andre svar, antar den ikke bruk av resolvconf, dhclient eller noe annet – pass på at de kan ta over, skjønt (se oppdatering).

Gitt antall visninger av dette spørsmålet, er det ganske utrolig at dette 8 tegn -løsningen er ikke lagt ut ennå: i henhold til man NetworkManager.conf,

dns: […] ingen: NetworkManager vil ikke endre resolv.conf. Dette innebærer at rc-manager ikke administreres

Legg derfor til

dns=none 

i [main] -delen av /etc/NetworkManager/NetworkManager.conf Start deretter NetworkManager på nytt, og det vil ikke endre /etc/resolv.conf lenger.

Merk at innstillingen rc-manager=unmanaged skal tilsvare dns=none , og den innstillingen rc-manager=symlink sammen med å ha /etc/resolv.conf som en symb oljekobling kan være en bedre idé (les ovennevnte manpage).

Oppdatering:

Etter at NetworkManager sluttet å overskrive /etc/resolv.conf, skjønte jeg dhcpcd erstattet allerede /etc/resolv.conf med en ubrukelig tom fil ved oppstart. Mannssiden til dhcpcd.conf hjalp, det er tilstrekkelig å legge til

nohook resolv.conf 

i dhcpcd.conf (min er i /etc/dhcpcd.conf).

Svar

At «fordi et bestemt installert program administrerer denne filen. Du kan enten avinstallere det programmet eller angi de ønskede alternativene direkte gjennom det programmet.

I mitt tilfelle (Linux centos7 minimal server) med samme situasjon som jeg fikk # Generated by NetworkManager øverst i resolv.conf -filen, så den beste måten jeg kunne endre dette alternativet var å bruke

nmtui

kommando. Du kan redigere navneservere i dette verktøyet, og når du endrer alternativene til nettverksadministrator fra dette verktøyet, blir de automatisk brukt på /etc/resolv.conf etter omstart. Her finner du mer informasjon .

Svar

Ingenting på alt på internett han spurte meg, fordi NordVPNs CLI-verktøy fortsatte å overskrive /etc/resolv.conf hver gang jeg koblet til og frakoblet VPN. Det overstyrte til og med chattr +i, noe som var veldig irriterende !!

Det som fungerte for meg var fullstendig deaktivering av resolvconf !

Rediger /etc/resolvconf.conf og gjør dette til den eneste oppføringen:

resolv_conf=NO 

Dette deaktiverer spesifikt resolvconf, noe som betyr at /etc/resolv.conf vil aldri bli endret av den. Gå så videre og sudo chattr +i /etc/resolv.conf for godt mål.

Testet på Arch Linux.

Svar

På Centos 7, ved hjelp av NetworkManager, er den reneste, iherdige, fungerende løsningen som jeg har kunnet finne, å lage et NetworkManager-skript som bruker nmcli til å angi verdiene jeg ønsker.

f.eks.

Opprett /etc/NetworkManager/dispatcher.d/mydns.sh med tillatelser 755 og følgende innhold:

#!/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 

Og for å teste uten å starte på nytt:

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

YMMV, men dette er den eneste måten jeg har funnet som tillater /etc/resolv.conf å «overlev» en omstart uten å bli overskrevet med verdier jeg ikke vil ha.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *