Hoe stel ik mijn DNS in wanneer resolv.conf wordt overschreven?

De meeste informatie die ik online zie, zegt om /etc/resolv.conf te bewerken, maar alle wijzigingen die ik daar aanbreng worden gewoon genegeerd .

$ 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 

Het lijkt erop dat 127.0.1.1 een lokale instantie is van dnsmasq. De dnsmasq documenten zeggen dat ze /etc/resolv.conf moeten bewerken. Ik heb geprobeerd aangepaste naamservers in /etc/resolv.conf.d/base te plaatsen, maar de wijzigingen “niet zichtbaar in /etc/resolv.conf na het uitvoeren van sudo resolvconf -u.

Ter info, ik wil de DNS niet per verbinding wijzigen, ik wil de standaard DNS-instellingen instellen die voor alle verbindingen worden gebruikt, tenzij anders gespecificeerd.

UPDATE:

Ik heb deze vraag zelf beantwoord: https://unix.stackexchange.com/a/163506/67024

Ik denk dat dit de beste oplossing is sinds:

  1. Het werkt.
  2. Het vereist de minste hoeveelheid wijzigingen en
  3. Het werkt nog steeds in combinatie met de DNS-cache van dnsmasq, in plaats van deze te omzeilen.

Opmerkingen

  • Beantwoord je vraag beter in plaats van je vraag bij te werken. Ik denk dat … het gemakkelijker zal zijn om het juiste antwoord te vinden dat je op je probleem hebt gegeven
  • Het lijkt erop dat de meeste antwoorden Ubuntu-georiënteerd en te ingewikkeld zijn. Een universele oplossing voor NetworkManager-gebruikers is om eenvoudig dns=none toe te voegen aan /etc/NetworkManager/NetworkManager.conf (zie details in mijn antwoord hieronder).
  • Ik denk dat dit antwoord duidelijk maakt waarom het bestand resol.conf wordt overschreven, zodat je weet hoe je het moet configureren.

Answer

Ik denk dat als je de DNS-naamserver wilt negeren, je gewoon een regel toevoegt die lijkt op deze in je base bestand onder resolv.conf.d.

Voorbeeld

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

Zet dan je nameserverlijst in zoals dus:

nameserver 8.8.8.8 nameserver 8.8.4.4 

Werk eindelijk resolvconf bij:

$ sudo resolvconf -u 

Als je de man-pagina voor resolvconf bekijkt, beschrijft het de verschillende bestanden onder /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 

Ook al staat er “een waarschuwing bovenaan het head bestand:

deze waarschuwing is er zodat wanneer deze bestanden zijn gemaakt, de waarschuwing uiteindelijk zijn weg zal vinden in het resulterende resolv.conf -bestand dat deze bestanden zullen gebruiken worden gebruikt om te maken. U had dus net zo goed de nameserver -regels die hierboven worden beschreven voor het base -bestand kunnen toevoegen aan het head ook.

Referenties

Reacties

  • Ubuntu 14.04 – toen ik de naamservers in base zette en resolvconf -u draaide, waren de naamservers niet in resolv.conf gezet – toen ik de naamservers in head zette, waren ze
  • Ubuntu 14.04 – moest ook commentaar geven configuratie ingesteld in /run/resolvconf/interface/NetworkManager
  • typ nslookup google.com en het eerste IP in de lijst zou je nieuwe naamserver moeten zijn, zo niet , je hebt het verkeerd gedaan
  • Ubuntu 16.04: werkte alleen als het werd toegevoegd aan /etc/resolvconf/resolv.conf.d/head, niet met base. Bevestigd met nslookup google.com.
  • In eerste instantie moet resolvconf zijn geïnstalleerd. Je kunt het installeren door sudo apt-get install resolvconf te doen.

Antwoord

Ik ben ook geïnteresseerd in deze vraag en ik heb de voorgestelde oplossing geprobeerd @sim.

Om het te testen, heb ik

nameserver 8.8.8.8 

in /etc/resolvconf/resolv.conf.d/base en

nameserver 8.8.4.4 

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

Vervolgens herstartte ik het netwerk met

sudo service network-manager restart 

Het resultaat is dat /etc/resolv.conf eruit ziet als

# 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 

en nm-tool stelt dat de dnsserver

DNS: 208.67.222.222 DNS: 208.67.220.220 

welke worden geleverd door mijn router. Aan de andere kant vertelt het graven van een adres dat

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

Als ik gelijk heb, concludeer ik uit dit alles dat

  1. alleen het “head” -gedeelte wordt gelezen door resolvonf: het “base” -gedeelte wordt op de een of andere manier bestuurd door dnsmasq
  2. de dnsserver wordt feitelijk gedwongen naar 8.8.4.4 ongeacht de server die door dhcp wordt geleverd, MAAR je verliest de verstrekte caching door dnsmasq, aangezien het verzoek altijd naar 8.8.4.4 wordt gestuurd.
  3. dnsmasq gebruikt nog ALLEEN de dnsserver geleverd door dhcp.

Al met al werkt het, maar ik denk niet dat dit het beoogde resultaat is dat wordt gevraagd.Ik denk dat een meer nabije oplossing de volgende is. Bewerken

sudo vim /etc/dhcp/dhclient.conf 

en vervolgens toevoegen

supersede domain-name-servers 8.8.8.8; 

Het resultaat is het volgende: resolv.conf bevat alleen 127.0.0.1, wat betekent dat de dnsmasq cache wordt aangeroepen en nm-tool zegt

DNS: 8.8.8.8 

wat betekent dat als de gezochte naam niet in de cache staat , dan wordt ernaar gevraagd in 8.8.8.8 en niet op de server die door dhcp wordt geleverd.

Een andere (misschien betere) optie is om “prepend” te gebruiken in plaats van “supersede”: op deze manier, als de naam wordt niet omgezet door 8.8.8.8, dan valt het verzoek terug op de andere server. In feite zegt nm-tool

DNS: 8.8.8.8 DNS: 208.67.222.222 DNS: 208.67.220.220 

Reacties

  • Een veel beter antwoord dan hacken in de NS configureert. Vooral de mogelijkheid om een server voor de door dhcp geleverde servers te plaatsen. Lijkt de perfecte balans om het probleem op te lossen, zonder nieuwe te creëren!
  • Het ‘ s opmerkelijk dat nm-tool is vervangen door nmcli

Answer

Ik heb ontdekt dat je de naamservers kunt wijzigen die dnsmasq gebruikt door de volgende regels toe te voegen aan /etc/dnsmasq.conf:

server=8.8.8.8 server=8.8.4.4 

Ik had geen /etc/dnsmasq.conf -bestand, aangezien het is geïnstalleerd door het dnsmasq-pakket, maar Ubuntu wordt alleen geleverd met dnsmasq-base. Ik heb sudo apt-get install dnsmasq uitgevoerd, daarna /etc/dnsmasq.conf bewerkt, daarna sudo service dnsmasq restart en sudo service network-manager restart.

Ik heb sudo tail -n 200 /var/log/syslog uitgevoerd om mijn syslog te controleren en te verifiëren dat dnsmasq de nameservers die ik heb gespecificeerd:

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 

Reacties

  • Er is een reden waarom dit is gemarkeerd als de beste antwoord … want het is inderdaad! heel erg bedankt! Ik zou hieraan willen toevoegen dat, na alle stappen die u noemde, het netwerk opnieuw moet worden opgestart om alles soepel te laten werken (het was voor mij … sudo service network-manager restart)
  • Op Ubuntu 14.04 Server zou ongeveer de helft van de tijd een koude start geen internetverbinding tot gevolg hebben met behulp van een URL, maar een IP-adres zou werken. Ik heb veel tijd besteed aan het vruchteloos proberen te repareren, gaf het maandenlang op en vond toen deze oplossing. Ook ik denk dat dit het beste antwoord is.
  • Het ‘ is intrigerend dat dnsmasq geïnstalleerd moet worden. Dit repareerde inderdaad mijn DNS in een normale situatie, maar het brak mijn VPN-configuratie volledig (VPN-verbinding mislukt nu …)
  • er is geen dergelijk bestand op Centos
  • ubuntu 16: wijzigingen van de procedure met dnsmasq worden niet doorgegeven aan /etc/resolv.conf. Het gevolg is dat nslookup nog steeds de oorspronkelijk gedefinieerde localhost 127.0.0.1 gebruikt. Hoewel ik uw genoemde syslogs kan bevestigen.

Answer

Voor statische IP-situaties zegt de Ubuntu Server Guide tegen verander het bestand / etc / network / interfaces, dat er als volgt uit kan zien:

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 

Je verandert de IPs 192.168.3.45 192.168.8.10 voor degene die je wilt , zoals 8.8.8.8

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

Opmerkingen

  • Dit ziet er zeker goed uit, maar hoe kan ik nu resolv.conf opnieuw genereren ?!
  • @JoelBerger ifdown eth0; ifup eth0.
  • nee / etc / network / interfaces op Centos

Antwoord

  1. Zoek “Netwerkverbinding”

  2. Open het

    voer hier een afbeeldingbeschrijving in

  3. Selecteer vervolgens WiFi of Ethernet, of wat u ook gebruikt, en klik op bewerken. Dit krijg je:

    voer hier een beschrijving van de afbeelding in

  4. Selecteer ipv4 in tabbladen

  5. Selecteer alleen adressen in methode

  6. Voer hieronder uw DNS-naam in en sla deze op

  7. Je bent “klaar

Reacties

  • I ‘ d moet dit echter voor elke netwerkverbinding doen. In het verleden kon je de standaardinstelling voor alle verbindingen wijzigen, en dat is wat ik hier wilde doen.
  • Ik hou van je! deze UI-instelling heeft me gered van sudo en vim rotzooi: ‘ (
  • Mint gebruiken (op Ubuntu 14.04) – maar dit ook gezien met KDE – voor sommigen reden, het instellen van DNS-servers in de GUI Network Manager heeft geen ‘ invloed op de DNS-instellingen die in een terminal worden gebruikt
  • Beste antwoord imho. Op Ubuntu 14.04 heb ik 2 externe IP-adressen voor DNS die geen ‘ clients in mijn thuisnetwerk zouden herkennen. Methode laten staan op ‘ Automatisch (DHCP) ‘ voor de bekabelde verbinding voegde mijn router ‘ s IP-adres toe aan de bestaande lijst.Voor de draadloze verbinding via wlan0 werkte dat niet ‘, maar de methode op ‘ Automatische (DHCP) adressen alleen ‘ verving de externe adressen door mijn router IP en dat werkte ook. Pas wijzigingen toe met sudo service network-manager restart, wacht even, verifieer met nmcli d list | grep 'DNS\|IP-IFACE'. En ping uw interne klant bij naam.
  • dit is het juiste antwoord

Antwoord

Een snelle en vuile oplossing die nog niet “werd genoemd, is het instellen van de onveranderlijke vlag op het resolv.conf -bestand direct na het bewerken ervan.

$ sudo nano /etc/resolv.conf 

Voeg dit toe en bewaar:

nameserver 8.8.8.8 

Vervolgens:

$ sudo chattr +i /etc/resolv.conf 

Dat zou voldoende moeten zijn. Ik doe dit ook op mijn systeem.

Opmerkingen

  • Elke keer dat je oplossing chattr omvat, is het ‘ is niet echt een oplossing.
  • dit is wat ik doe op systemen waar ik om de een of andere reden tijdelijk de DNS moet wijzigen en ‘ t wil de configuratie wijzigen. Als permanente oplossing zou ik het ‘ niet aanbevelen.
  • ” snelle en vuile oplossing ”
  • Dit is niet ‘ t vies. Programmas die de lokale configuratie vernietigen omdat ze denken dat ze weten dat beter vies zijn.

Antwoord

Mijn probleem was een beetje anders , Ik wilde de DNS-servers van mijn routers negeren. Ik vond deze link van Ubuntu: https://wiki.ubuntu.com/OverrideDNSServers

Er staat: Als je zou willen overschrijf de DNS-instellingen die aan u zijn verstrekt door een DHCP-server, open

/etc/dhcp3/dhclient.conf 

en voeg de volgende regel toe:

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

<dns_ip_address*> items vervangen door de juiste inhoud.

Reacties

  • Dit is het antwoord dat mijn probleem heeft opgelost.
  • Perfect. Gewoon toevoegen dat je sudo service networking opnieuw moet opstarten om de wijzigingen mogelijk te maken.
  • Wat als we ‘ die dhcp3 map? Ik heb Xubuntu 17.10, is het verplaatst naar /etc/dhcp?
  • @PlasmaBinturong in mijn geval was het /etc/dhcp/dhclient.conf op nieuwste Debian- en Ubuntu-versies.

Antwoord

Probeer dns-nameservers XXX.XXX.XXX.X in uw /etc/networking/interfaces bestand.

Reacties

  • Laat een reactie achter als je downstemt, alstublieft. Dit is de methode die wordt gegeven in de handleiding , pagina 38.
  • De niet genoemde handleiding toont alle IPs op één regel. Dit antwoord suggereert het toevoegen van een regel. En waarom is het laatste nummer maar één X breed? Ik denk dat het vooral de extreem informele en onzekere korte chatstijl was die de stemmen opleverde, @Zook.

Answer

Misschien “mis ik iets, maar volgens de configuratie-instructies op https://help.ubuntu.com/14.04/serverguide/network-configuration.html hoef je alleen maar update het volgende. Ik gebruik geen proxy – alleen een machine achter een firewall en lokale DNS (voorbeeld toont Google, maar stel het in op wat je nodig hebt).

nano /etc/network/interfaces 

Standaard:

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

BIJGEWERKT:

# 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 

Herstart, indien mogelijk.

Antwoord

Sommige van de antwoorden hier werken prima. Ik was echter niet blij met het feit dat ik dit handmatig moet doornemen configuratiebestanden om de “juiste” DNS in te stellen die ik al ady ontvang via DHCP met NetworkManager.

Ik heb een beetje gezocht en merkte dat het /etc/resolv.conf -bestand eigenlijk een link is en naar /run/systemd/resolve/stub-resolv.conf. Na wat experimenteren blijkt dat de map /run/systemd/resolve/ een ander bestand bevat met de naam resolv.conf dat al de instellingen bevat die je hebt ontvangen via DHCP. Dus in plaats van handmatig configuratiebestanden te moeten overschrijven / aanmaken in /etc/, kun je /etc/resolv.conf eenvoudig opnieuw linken om naar de /run/systemd/resolve/resolv.conf bestand en alles zou in orde moeten zijn:

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

Je zou nu de instellingen moeten kunnen bewerken, zelfs vanuit het netwerk Manager in Gnome. 🙂

Ik weet niet zeker of dit zal werken op oudere ubuntus, maar wel op Ubuntu 17.10.

Opmerkingen

  • wanneer we systemd-resolve --flush-cache uitvoeren, is het oorspronkelijke gekoppelde bestand blijkbaar verbroken, het bovenstaande antwoord is hersteld de originele functionaliteit

Answer

BEWERK 6 MEI, 2016

Ik “heb een script geschreven om alle instellingen voor systeemverbindingen in de /etc/Network-Manager/system-connections/ directory bij te werken. GUI die u gebruikt om individuele verbindingen te bewerken, bewerkt een bepaald bestand in die map. Het script werkt alle bestanden bij – het zoekt alleen naar degenen die geen dns hebben ingesteld met grep en stelt het in met awk.

Aangezien voor toegang tot die bestanden sudo toegang vereist is, voert u dit script uit met sudo en – herstart netwerkbeheer

#!/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 in actie:

voer hier de afbeeldingsbeschrijving in

ORIGINEEL POST Sommige gebruikers wezen erop dat DNS op de een of andere manier wordt beheerd door dnsmasq. Dat klopt inderdaad. Ik heb te maken gehad met een wat kleiner probleem, waarbij het niet uitmaakt hoe ik head of body veranderde in /etc/resolvconf/resolv.conf.d, mijn computer kon eigenlijk geen toegang krijgen tot de intern via domeinnaam – ik werkte alleen met IP-adressen.

Wat ik heb gedaan is het /etc/NetworkManager/NetworkManager.conf -bestand bewerken. Oorspronkelijk stond er dns=dnsmasq op, maar ik veranderde het in: dns=208.67.222.222. Hoewel op deze manier nm-tool 208.67.222.222 niet vermeldt, kon ik nog steeds domeinnamen gebruiken, niet alleen IP-adressen.

Hier is hoe mijn NetworkManager.conf bestand ziet er nu uit:

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

OPMERKING: Voor meer details over mijn probleem en deze oplossing, zie mijn bericht op askubuntu.com .

UPDATE # 1

Toen ik vandaag thuiskwam van de universiteit, ontdekte ik dat ik geen verbinding kon maken met mijn wifi thuis. Ik heb iets gelezen over man NetworkManager.conf en het blijkt dat dns= in [main] eigenlijk een regel is voor plug-ins, dus regel dns=dnsmasq voegt blijkbaar de plug-in dnsmasq toe aan de NetworkManager.

Dus mijn oplossing werkte nog steeds, maar niet zoals ik had verwacht. Hier “s fragment van de man-pagina:

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

DNS-plug-ins worden gebruikt om lokale caching naamserverfunctionaliteit te bieden (wat DNS-zoekopdrachten versnelt) en om DNS-gegevens naar applicaties te pushen die deze gebruiken.

Dus door dns=208.67.222.222 Misschien heb ik in principe voorkomen dat NetworkManager die plug-in gebruikt, die anders de lokale DNS-server zou gebruiken (die blijkbaar niet werkt).

Antwoord

Er zijn twee methoden

Methode 1

De te gebruiken DNS-server kan worden gewijzigd door het head -bestand bij te werken onder resolv.conf.d

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

en voer vervolgens

$ sudo resolvconf -u 

Het bovenstaande genereert een algemeen resolv.conf -bestand in de /etc directory. Al uw oplossingsverzoeken worden naar de bovengenoemde naamserver gestuurd. Opgelost.

Er zijn echter implicaties hieraan. Als je resolvconf gebruikt om direct 1.1.1.1 te zoeken naar adresresoluties, is de kracht van caching die door dnsmasq wordt geboden, verdwenen. Elk verzoek gaat naar 1.1.1.1

Methode 2

Als je niet wilt dat het bovenstaande gebeurt en gebruik dnsmasq voor DNS-resoluties, raadpleeg dit antwoord. Het antwoord wordt hier eenvoudig beschreven.

Voeg de volgende inhoud toe aan het /etc/dnsmasq.conf -bestand .

server = 1.1.1.1

Start vervolgens de dnsmasq-service opnieuw

$ sudo systemctl restart dnsmasq.service 

Alles zal goed werken. Opgelost.

Antwoord

De gemakkelijke manier om DNS te wijzigen:

$ sudo nano /etc/network/interfaces 

Als er problemen optreden, installeer dan nano:

$ sudo apt-get install nano -y 

dan ..

  1. vind dit: dns-nameservers
  2. als je het niet vindt, typ het daar dan gewoon in
  3. Ik heb het mijne zo gedaan: dns-nameservers 199.85.126.10 199.85.127.10

Ik hoop dat dit de beste manier is, ik deed het trouwens zo op een VPS.

Antwoord

op root:

  1. comment dns=dnsmasq op /etc/NetworkManager/NetworkManager.conf
  2. voeg 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; toe aan het einde van /etc/dhcp/dhclient.conf
  3. sudo service network-manager restart

Het volgende brengt de bovenstaande wijzigingen aan:

$ 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 

Wacht 7/10 seconden om het herstartproces te voltooien, controleer uw configuratie met” nslookup nist.gov “. Werkt goed op Ubuntu LTS 14.04.

Answer

NB: zoals de meeste antwoorden gaat deze uit van het gebruik van NetworkManager . In tegenstelling tot de meeste andere antwoorden, wordt er echter niet van uitgegaan dat resolvconf, dhclient of iets anders wordt gebruikt – pas op dat ze het kunnen overnemen, echter (zie update).

Gezien het aantal views van deze vraag “is het ongelooflijk dat deze 8 karakters oplossing is “nog niet gepost: volgens man NetworkManager.conf,

dns: […] geen: NetworkManager zal resolv.conf niet wijzigen. Dit houdt in dat rc-manager onbeheerd is

Voeg daarom toe

dns=none 

in het [main] -gedeelte van /etc/NetworkManager/NetworkManager.conf, start NetworkManager opnieuw en /etc/resolv.conf meer.

Merk op dat instelling rc-manager=unmanaged gelijk moet zijn aan dns=none , en die instelling rc-manager=symlink samen met /etc/resolv.conf als symb olic link is misschien een beter idee (lees bovenstaande manpage).

Update:

Nadat NetworkManager stopte met het overschrijven van /etc/resolv.conf, dacht ik dhcpcd was tijdens het opstarten al /etc/resolv.conf aan het vervangen door een nutteloos leeg bestand. De manpage van dhcpcd.conf hielp, het is voldoende om

nohook resolv.conf 

toe te voegen aan je dhcpcd.conf (de mijne staat in /etc/dhcpcd.conf).

Antwoord

Dat “s omdat een bepaalde geïnstalleerde applicatie dit bestand beheert. U kunt die applicatie verwijderen of de gewenste opties rechtstreeks via die applicatie instellen.

In mijn geval (Linux centos7 minimale server) met dezelfde situatie die ik kreeg # Generated by NetworkManager bovenaan het resolv.conf -bestand, dus de beste manier waarop ik deze optie kon wijzigen, was

nmtui

commando. U kunt naamservers in deze tool bewerken en wanneer u opties van netwerkmanager wijzigt vanuit dit hulpprogramma, worden ze automatisch toegepast op /etc/resolv.conf na het opnieuw opstarten. Hier vindt u meer informatie .

Antwoord

Niets op allemaal op internet hij lp me, omdat NordVPNs CLI-hulpprogramma steeds /etc/resolv.conf overschreef elke keer dat ik verbinding maakte en de verbinding verbrak met de VPN. Het overschreed zelfs chattr +i, wat super vervelend was !!

Wat voor mij werkte, was het volledig uitschakelen van resolvconf !

Bewerk /etc/resolvconf.conf en maak dit de enige invoer:

resolv_conf=NO 

Dit schakelt specifiek resolvconf, wat betekent dat uw /etc/resolv.conf er nooit door zal worden gewijzigd. Ga je gang en sudo chattr +i /etc/resolv.conf voor een goede maatregel.

Getest op Arch Linux.

Antwoord

Op Centos 7, met behulp van NetworkManager, is de schoonste, hardnekkige, werkende oplossing die ik heb kunnen vinden het maken van een NetworkManager-script dat nmcli gebruikt om de waarden in te stellen die ik wil.

bijv.

Maak /etc/NetworkManager/dispatcher.d/mydns.sh met machtigingen 755 en de volgende inhoud:

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

En om te testen, zonder opnieuw op te starten:

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

YMMV, maar dit is de enige manier die ik heb gevonden waardoor mijn /etc/resolv.conf “overleven” een herstart zonder overschreven te worden met waarden die ik niet wil.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *