Hvordan indstiller jeg min DNS, når resolv.conf overskrives?

De fleste af de oplysninger, jeg ser online, siger at redigere /etc/resolv.conf, men alle ændringer, jeg foretager der, bliver bare tilsidesat .

$ 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 ud til, at 127.0.1.1 er en lokal forekomst af dnsmasq. dnsmasq docs siger at redigere /etc/resolv.conf. Jeg prøvede at sætte tilpassede navneservere i /etc/resolv.conf.d/base, men ændringerne dukkede ikke op i /etc/resolv.conf efter at have kørt sudo resolvconf -u.

FYI, jeg vil ikke ændre DNS pr. tilslutningsbasis, jeg vil indstille standard DNS-indstillinger, der skal bruges til alle forbindelser, når ikke andet er angivet.

UPDATE:

Jeg svarede selv på dette spørgsmål: https://unix.stackexchange.com/a/163506/67024

Jeg synes, det er den bedste løsning siden:

  1. Det fungerer.
  2. Det kræver mindst mulig ændring, og
  3. Det fungerer stadig sammen med dnsmasqs DNS-cache snarere end at omgå det.

Kommentarer

  • Bedre besvare dit spørgsmål i stedet for at opdatere dit spørgsmål Jeg tror … bliver lettere at finde det rigtige svar, du gav til dit problem
  • Det ser ud til, at de fleste svar er Ubuntu-orienterede og alt for komplicerede. En universel løsning for NetworkManager-brugere er at blot tilføje dns=none i /etc/NetworkManager/NetworkManager.conf (se detaljer i mit svar nedenfor).
  • Jeg tror, at dette svar tydeliggør, hvorfor resol.conf overskrives, så ved du, hvordan du konfigurerer det.

Svar

Jeg tror, at hvis du vil tilsidesætte DNS-navneserveren, skal du blot tilføje en linje svarende til denne i din base fil under resolv.conf.d.

Eksempel

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

Sæt derefter din navneserverliste som så:

nameserver 8.8.8.8 nameserver 8.8.4.4 

Endelig opdater resolvconf:

$ sudo resolvconf -u 

Hvis du kigger på mandsiden til resolvconf, beskriver den de forskellige filer 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 

Selvom der “er en advarsel øverst i head -filen:

denne advarsel er der, så når disse filer konstrueres, vil advarslen i sidste ende arbejde sig ind i den resulterende resolv.conf -fil, som disse filer vil bruges til at lave. Så du kunne lige så godt have tilføjet nameserver linjerne, der er beskrevet ovenfor for base filen til head -fil også.

Referencer

Kommentarer

  • Ubuntu 14.04 – når jeg sætter navneserverne i base og kører resolvconf -u, var navneserverne ikke sat i resolv.conf – da jeg satte navneserverne i head, de var
  • Ubuntu 14.04 – måtte også kommentere konfigurationssæt i /run/resolvconf/interface/NetworkManager
  • type nslookup google.com og den første IP på listen skal være din nye navneserver, hvis ikke , du gjorde det forkert
  • Ubuntu 16.04: Fungerede, hvis det kun var tilføjet til /etc/resolvconf/resolv.conf.d/head, ikke med base. Bekræftet med nslookup google.com.
  • Først skal du have resolvconf. Du kan installere det ved at gøre sudo apt-get install resolvconf.

Svar

Jeg er også interesseret i dette spørgsmål, og jeg prøvede den løsning, der blev foreslået @ sim.

For at teste det, satte 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å genstartede jeg netværket med

sudo service network-manager restart 

Resultatet er, at /etc/resolv.conf ligner

# 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 angiver, at dnsserveren er

DNS: 208.67.222.222 DNS: 208.67.220.220 

som er dem, der leveres af min router. På den anden side fortæller en adresse at

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

Hvis jeg har ret, konkluderer jeg ud fra alt dette, at

  1. kun “head” -delen læses af resolvonf: “base” -delen styres på en eller anden måde af dnsmasq
  2. dnsserveren er faktisk tvunget til 8.8.4.4 uanset serveren leveret af dhcp, MEN du mister den leverede caching af dnsmasq, da anmodningen altid sendes til 8.8.4.4
  3. dnsmasq bruger stadig KUN den dnsserver, der leveres af dhcp.

Alt i alt fungerer det, men jeg tror ikke det er det tilsigtede resultat, du beder om.En mere tæt løsning synes jeg er følgende. Rediger

sudo vim /etc/dhcp/dhclient.conf 

tilføj derefter

supersede domain-name-servers 8.8.8.8; 

Resultatet er følgende: resolv.conf indeholder kun 127.0.0.1, hvilket betyder, at dnsmasq cache påberåbes, og nm-tool siger

DNS: 8.8.8.8 

hvilket betyder, at hvis det søgte navn ikke er i cachen , så bliver det bedt om ved 8.8.8.8 og ikke på den server, der leveres af dhcp.

En anden (måske bedre) mulighed er at bruge “prepend” i stedet for “supersede”: på denne måde, hvis navn er ikke løst af 8.8.8.8, så falder anmodningen tilbage på den anden server. Faktisk siger nm-tool

DNS: 8.8.8.8 DNS: 208.67.222.222 DNS: 208.67.220.220 

Kommentarer

  • Et meget bedre svar end at hacke ind i NS konfigurerer. Især muligheden for at forberede en server foran de dhcp, der leveres. Virker som den perfekte balance mellem at løse problemet uden at skabe nye!
  • Det ‘ er værd at bemærke nm-tool er blevet erstattet med nmcli

Svar

Jeg fandt ud af, at du kan ændre navneserverne, som dnsmasq bruger ved at tilføje følgende linjer til /etc/dnsmasq.conf:

server=8.8.8.8 server=8.8.4.4 

Jeg havde ikke en /etc/dnsmasq.conf -fil, da den er installeret af dnsmasq-pakken, men Ubuntu leveres kun med dnsmasq-base. Jeg løb sudo apt-get install dnsmasq og redigerede derefter /etc/dnsmasq.conf, derefter sudo service dnsmasq restart og sudo service network-manager restart.

Jeg løb sudo tail -n 200 /var/log/syslog for at kontrollere min syslog og kontrollere, at dnsmasq brugte navneservere, jeg specificerede:

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

  • Der er en grund til, at dette er markeret som det bedste svar … fordi det faktisk er! mange tak! Jeg vil tilføje, at efter alle de trin, du nævnte, kan en genstart af netværket være nødvendig for at alt fungerer problemfrit (det var for mig …. sudo service network-manager restart)
  • På Ubuntu 14.04 Server omkring halvdelen af tiden ville en koldstart ikke medføre internetforbindelse ved hjælp af en URL, men en IP-adresse ville fungere. Jeg brugte en masse tid uden frugt at forsøge at ordne det, gav op i flere måneder og fandt derefter denne løsning. Jeg synes også, det er det bedste svar.
  • Det ‘ er spændende, at dnsmasq skal installeres. Dette fik faktisk min DNS i en normal situation, men det brød min VPN-konfiguration fuldstændigt (VPN-forbindelse mislykkes nu …)
  • der er ingen sådan fil på Centos
  • ubuntu 16: ændringer fra proceduren med dnsmasq overføres ikke til /etc/resolv.conf. Konsekvensen er, at hat nslookup stadig bruger sin oprindeligt definerede localhost 127.0.0.1. Selvom jeg kan bekræfte dine nævnte syslogs.

Svar

For statiske IP-situationer siger Ubuntu Server Guide til skift fil / etc / netværk / grænseflader, som kan se sådan ud:

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 ændrer IP-er 192.168.3.45 192.168.8.10 for dem, du ønsker , som 8.8.8.8

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

Kommentarer

  • Dette ser bestemt ud, men hvordan kan jeg nu regenerere resolv.conf ?!
  • @JoelBerger ifdown eth0; ifup eth0.
  • nej / etc / netværk / grænseflader på Centos

Svar

  1. Søg efter “Netværksforbindelse”

  2. Åbn den

    indtast billedbeskrivelse her

  3. Vælg derefter enten WiFi eller Ethernet eller hvad du bruger, og klik på rediger. Du får dette:

    indtast billedbeskrivelse her

  4. Vælg ipv4 i fanerne

  5. Vælg kun adresser i metode

  6. Indtast dit DNS-navn nedenfor, og gem det

  7. Du er færdig

Kommentarer

  • I ‘ skal dog gøre dette for hver netværksforbindelse. Tidligere kunne du ændre standard for alle forbindelser, hvilket jeg gerne ville gøre her.
  • Jeg elsker dig! denne UI-indstilling reddede min røv fra sudo og vim-rod: ‘ (
  • Brug af Mint (på Ubuntu 14.04) – men set dette også med KDE – for nogle grund, indstilling af DNS-servere i GUI Network Manager påvirker ikke ‘ t DNS-indstillingerne, der bruges i en terminal
  • Bedste svar imho. På Ubuntu 14.04 fik jeg 2 eksterne IP-adresser til DNS, der ikke ‘ ikke genkender klienter i mit hjemmenetværk. Forlademetode på ‘ Automatisk (DHCP) ‘ til den kablede forbindelse tilføjede min router ‘ s IP-adresse til den eksisterende liste.For den trådløse forbindelse over wlan0 fungerede det ikke ‘, men metode på ‘ Automatisk (DHCP) adresserer kun ‘ erstattede de eksterne adresser med min router-IP, og så fungerede det også. Anvend ændringer med sudo service network-manager restart, vent lidt, bekræft med nmcli d list | grep 'DNS\|IP-IFACE'. Og ping din interne klient ved navn.
  • dette er det rigtige svar

Svar

En hurtig og beskidt løsning, der endnu ikke blev nævnt, indstiller det uforanderlige flag på resolv.conf -filen lige efter redigering.

$ sudo nano /etc/resolv.conf 

Tilføj dette og gem:

nameserver 8.8.8.8 

Derefter:

$ sudo chattr +i /etc/resolv.conf 

Det skal gøre tricket. Jeg gør det også på mit system.

Kommentarer

  • Når som helst din løsning involverer chattr, er det ‘ er ikke rigtig en løsning.
  • dette gør jeg på systemer, hvor jeg af en eller anden grund har behov for midlertidigt at ændre DNS og ikke ‘ t vil ændre konfigurationen. Som en permanent løsning vil jeg ikke ‘ t anbefale det.
  • ” hurtig og beskidt løsning ”
  • Dette er ikke ‘ t beskidt. Programmer der ødelægger lokal konfiguration, fordi de tror, de ved bedre, er beskidte.

Svar

Mit problem var lidt anderledes , Jeg ville tilsidesætte mine routers DNS-servere. Jeg fandt dette link fra Ubuntu: https://wiki.ubuntu.com/OverrideDNSServers

Det siger: Hvis du gerne vil tilsidesæt de DNS-indstillinger, som en DHCP-server har givet dig, åbn

/etc/dhcp3/dhclient.conf 

og tilføj følgende linje:

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

erstatter <dns_ip_address*> emner med det korrekte indhold.

Kommentarer

  • Dette er svaret, der løste mit problem.
  • Perfekt. Bare tilføj, at du skal genstarte sudo-servicenetværk for at aktivere ændringerne.
  • Hvad hvis vi ikke ‘ t har den dhcp3 mappe? Jeg har Xubuntu 17.10, er den flyttet til /etc/dhcp simpelthen?
  • @PlasmaBinturong i mit tilfælde var det /etc/dhcp/dhclient.conf på nyeste versioner af Debian og Ubuntu.

Svar

Prøv at tilføje dns-nameservers XXX.XXX.XXX.X i din /etc/networking/interfaces -fil.

Kommentarer

  • Giv en kommentar, når du nedstemmer, tak. Dette er metoden angivet i manual , side 38.
  • Den ikke-nævnte manual viser alle IPer på en linje. Dette svar synes at antyde at tilføje en linje. Og hvorfor er det sidste tal kun en X bred? Jeg tror, det var for det meste den ekstremt uformelle og usikre korte chat-stil-skrivning, der fik downvotes, @Zook.

Svar

Måske mangler jeg noget, men ifølge konfigurationsinstruktionerne på https://help.ubuntu.com/14.04/serverguide/network-configuration.html er alt hvad du gør, opdater følgende: Jeg kører ikke en proxy – bare en maskine bag en firewall og lokal DNS (eksempel viser Googles, men indstil den til hvad du har brug for).

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 

OPDATERET:

# 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 

Genstart, hvis du kan.

Svar

Nogle af svarene her fungerer fint. Dog var jeg ikke tilfreds med det faktum, at jeg manuelt skal gennemgå konfigurationsfiler bare for at indstille den “korrekte” DNS som jeg allerede ady modtager over DHCP med NetworkManager.

Jeg gravede lidt og bemærkede, at filen /etc/resolv.conf faktisk er et link, og at den peger på /run/systemd/resolve/stub-resolv.conf div Efter nogle eksperimenter ser det ud til, at /run/systemd/resolve/ -mappen indeholder en anden fil med navnet resolv.conf, som allerede indeholder de indstillinger, du har modtaget via DHCP. I stedet for at skulle overskrive / oprette konfigurationsfiler manuelt i /etc/, kan du blot linke /etc/resolv.conf for at pege på /run/systemd/resolve/resolv.conf -filen og alt skal være fint:

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

Du skal nu kunne redigere indstillingerne selv fra netværket Manager i Gnome. 🙂

Ikke sikker på, om dette fungerer på ældre ubuntu, men det gør det på Ubuntu 17.10.

Kommentarer

  • når vi kører systemd-resolve --flush-cache den oprindelige linkede fil er tilsyneladende adskilt, svaret ovenfor gendannes den oprindelige funktionalitet

Svar

REDIGER 6. MAJ, 2016

Jeg har skrevet et script til at opdatere alle indstillinger for systemforbindelser i /etc/Network-Manager/system-connections/ -mappen. GUI, som du bruger til at redigere individuelle forbindelser, redigerer en bestemt fil i den mappe. Scriptet opdaterer alle filerne – det søger bare efter dem, der ikke har dns sat med grep og indstiller det med awk.

Da adgang til disse filer kræver sudo adgang, skal du køre dette script med sudo og derefter – genstart netværksadministrator

#!/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 i aktion:

indtast billedbeskrivelse her

OPRINDELIG POST Nogle brugere her påpegede, at DNS på en eller anden måde styres af dnsmasq. Det er virkelig sandt. Jeg har stået over for et noget mindre problem, hvor uanset hvordan jeg ændrede head eller body i /etc/resolvconf/resolv.conf.d, min computer kunne faktisk ikke få adgang til interneret af domænenavn – kun med IP-adresser.

Hvad jeg gjorde er at redigere /etc/NetworkManager/NetworkManager.conf -filen. Oprindeligt stod det dns=dnsmasq men jeg ændrede det til: dns=208.67.222.222. Selvom nm-tool på denne måde ikke nævner 208.67.222.222, var jeg stadig i stand til at bruge domænenavne, ikke kun IP-adresser.

Her er hvordan min NetworkManager.conf -fil ser ud som nu:

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

BEMÆRK: For flere detaljer om mit problem og denne løsning henvises til mit indlæg på askubuntu.com .

UPDATE # 1

Da jeg kom hjem fra universitetet i dag, opdagede jeg, at jeg ikke kunne oprette forbindelse til mit hjem-WiFi. Jeg har læst lidt op på man NetworkManager.conf og det viser sig, at dns= i [main] faktisk er en linje til plug-ins, så linje dns=dnsmasq tilføjer faktisk tilsyneladende dnsmasq-pluginet til NetworkManager.

Så min løsning fungerede stadig, bare ikke som jeg havde forventet. Her er uddrag fra mandsiden:

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

DNS-plugins bruges til at give lokal caching-navneserverfunktionalitet (som fremskynder DNS-forespørgsler) og skubber DNS-data til applikationer, der bruger det.

Så ved at indstille dns=208.67.222.222 Jeg har grundlæggende muligvis forhindret NetworkManager i at bruge det plugin, som ellers ville bruge den lokale DNS-server (som tilsyneladende ikke fungerer).

Svar

Der er to metoder

Metode 1

Den DNS-server, der skal bruges, kan ændres ved at opdatere head -fil under resolv.conf.d

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

og kør derefter

$ sudo resolvconf -u 

Ovenstående genererer en generisk resolv.conf -fil i /etc -mappen. Alle dine anmodninger om løsning vil blive sendt til ovennævnte navneserver. Løst.

Der er dog implikationer ved dette. Når du bruger resolvconf til direkte forespørgsel på 1.1.1.1 til adresseopløsninger, er kraften i caching fra dnsmasq væk. Hver anmodning går til 1.1.1.1

Metode 2

Hvis du ikke ønsker, at ovenstående skal ske, og brug dnsmasq til DNS-opløsninger, se dette svar. Svaret er simpelthen beskrevet her.

Tilføj følgende indhold i /etc/dnsmasq.conf -fil .

server = 1.1.1.1

Genstart derefter dnsmasq-tjenesten

$ sudo systemctl restart dnsmasq.service 

Ting fungerer fint. Løst.

Svar

Den nemme måde at ændre DNS på:

$ sudo nano /etc/network/interfaces 

Hvis der opstår problemer, skal du installere nano:

$ sudo apt-get install nano -y 

derefter ..

  1. find dette: dns-nameservers
  2. hvis du ikke finder det, skal du bare skrive det derinde
  3. Jeg gjorde min sådan: dns-nameservers 199.85.126.10 199.85.127.10

Jeg håber, det er den bedste måde, jeg gjorde det sådan på en VPS forresten.

Svar

på rod:

  1. kommentar dns=dnsmasq/etc/NetworkManager/NetworkManager.conf
  2. tilføj 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; i slutningen af /etc/dhcp/dhclient.conf
  3. sudo service network-manager restart

Følgende foretager de ændringer, der er 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 at afslutte genstartsprocessen, tjek din konfiguration med” nslookup nist.gov “. Fungerer godt på Ubuntu LTS 14.04.

Svar

NB: Som de fleste svar antager denne brug af NetworkManager . Men i modsætning til de fleste andre svar antager den ikke brugen af resolvconf, dhclient eller noget andet – pas på, at de kan overtage, dog (se opdatering).

I betragtning af antallet af synspunkter på dette spørgsmål er det ganske utroligt, at dette 8 tegn -løsningen er endnu ikke blevet sendt: ifølge man NetworkManager.conf,

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

Tilføj derfor

dns=none 

i [main] sektionen i /etc/NetworkManager/NetworkManager.conf genstart NetworkManager, så ændres det ikke /etc/resolv.conf længere.

Bemærk, at indstilling rc-manager=unmanaged skal svare til dns=none , og den indstilling rc-manager=symlink sammen med at have /etc/resolv.conf som en symb olic link kan være en bedre idé (læs ovennævnte manpage).

Opdatering:

Efter at NetworkManager stoppede med at overskrive /etc/resolv.conf, regnede jeg med dhcpcd erstattede allerede /etc/resolv.conf med en ubrugelig tom fil ved opstart. Hjemmesiden til dhcpcd.conf hjalp, det er tilstrækkeligt at tilføje

nohook resolv.conf 

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

Svar

At “fordi et bestemt installeret program administrerer denne fil. Du kan enten afinstallere det program eller indstille dine ønskede indstillinger direkte gennem det pågældende program.

På min sag (Linux centos7 minimal server) med samme situation som jeg fik # Generated by NetworkManager øverst i resolv.conf fil, så den bedste måde, jeg kunne ændre denne indstilling på var at bruge

nmtui

kommando. Du kan redigere navneservere i dette værktøj, og når du ændrer indstillinger for netværksadministrator fra dette værktøj, anvendes de automatisk til /etc/resolv.conf efter genstart. Her kan du finde flere oplysninger .

Svar

Intet på alt på Internettet han sendte mig besked, fordi NordVPNs CLI-værktøj fortsatte med at overskrive /etc/resolv.conf hver gang jeg oprettede forbindelse og afmeldte VPN. Det overstyrede endda chattr +i, hvilket var super irriterende !!

Hvad der fungerede for mig var fuldstændig at deaktivere resolvconf !

Rediger /etc/resolvconf.conf og gør dette til den eneste post:

resolv_conf=NO 

Dette deaktiverer specifikt resolvconf, hvilket betyder at din /etc/resolv.conf aldrig vil blive ændret af den. Gå derefter videre og sudo chattr +i /etc/resolv.conf for godt mål.

Testet på Arch Linux.

Svar

På Centos 7, ved hjælp af NetworkManager, er den reneste, vedholdende, arbejdsløsning, som jeg har været i stand til at finde, at oprette et NetworkManager-script, der bruger nmcli til at indstille de værdier, jeg ønsker.

f.eks.

Opret /etc/NetworkManager/dispatcher.d/mydns.sh med tilladelser 755 og følgende indhold:

#!/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 at teste uden genstart:

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

YMMV, men det er den eneste måde, jeg har fundet, der tillader min /etc/resolv.conf at “overlev” en genstart uden at blive overskrevet med værdier, som jeg ikke ønsker.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *