Jak nastavím svůj DNS, když je přepsán soubor resolv.conf?

Většina informací, které vidím online, říká o úpravách /etc/resolv.conf, ale všechny změny, které tam provedu, jsou přepsány .

$ 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 

Zdá se, že 127.0.1.1 je místní instance dnsmasq. Dokumenty dnsmasq říkají o úpravách /etc/resolv.conf. Snažil jsem se do /etc/resolv.conf.d/base vložit vlastní jmenné servery, ale změny se po spuštění sudo resolvconf -u

neobjevily .

FYI, nechci měnit DNS na základě jednotlivých připojení, chci nastavit výchozí nastavení DNS pro použití pro všechna připojení, pokud není uvedeno jinak.

UPDATE:

Na tuto otázku jsem odpověděl sám: https://unix.stackexchange.com/a/163506/67024

Myslím, že je to nejlepší řešení od:

  1. Funguje to.
  2. Vyžaduje to nejmenší množství změn a
  3. Stále funguje ve spojení s mezipamětí DNS dnsmasq, místo aby ji obcházelo.

Komentáře

  • Lepší odpověď na vaši otázku namísto aktualizace vaší otázky Myslím, že … bude snazší najít správnou odpověď, kterou jste dali na svůj problém
  • Zdá se, že většina odpovědí je zaměřena na Ubuntu a je příliš komplikovaná. Univerzálním řešením pro uživatele NetworkManageru je jednoduše přidat dns=none do /etc/NetworkManager/NetworkManager.conf (podrobnosti viz moje odpověď níže).
  • Myslím, že tato odpověď objasňuje, proč je přepisován soubor resolve.conf, pak víte, jak jej nakonfigurovat.

Odpověď

Domnívám se, že pokud chcete přepsat DNS nameserver, přidáte pouze podobný řádek do svého base soubor pod resolv.conf.d.

Příklad

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

Pak vložte svůj seznam jmenných serverů jako takže:

nameserver 8.8.8.8 nameserver 8.8.4.4 

Nakonec aktualizujte resolvconf:

$ sudo resolvconf -u 

Pokud se podíváte na manuálovou stránku resolvconf, popisuje různé soubory pod /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 

Přestože v horní části souboru head je varování:

toto varování je k dispozici, takže když budou tyto soubory vytvořeny, varování se nakonec dostane do výsledného resolv.conf souboru, který tyto soubory být použity k výrobě. Stejně snadno jste tedy mohli přidat nameserver řádky, které jsou popsány výše pro soubor base, do head.

Odkazy

Komentáře

  • Ubuntu 14.04 – když jsem dal jmenné servery do base a spustil resolvconf -u, jmenné servery byly nebyl vložen do resolv.conf – když jsem dal jmenné servery do head, byly to
  • Ubuntu 14.04 – také musel komentovat konfigurace nastavená v /run/resolvconf/interface/NetworkManager
  • typu nslookup google.com a první IP v seznamu by měl být váš nový jmenný server, pokud ne , udělali jste to špatně
  • Ubuntu 16.04: Fungovalo to, pokud bylo připojeno pouze k /etc/resolvconf/resolv.conf.d/head, ne k base. Potvrzeno nslookup google.com.
  • Zpočátku musíte mít resolvconf nainstalován. Můžete jej nainstalovat provedením sudo apt-get install resolvconf.

Odpovědět

Také mě tato otázka zajímá a vyzkoušel jsem navrhované řešení @sim.

Abych to otestoval, vložil jsem

nameserver 8.8.8.8 

do /etc/resolvconf/resolv.conf.d/base a

nameserver 8.8.4.4 

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

Poté jsem restartoval síť pomocí

sudo service network-manager restart 

Výsledkem je, že /etc/resolv.conf vypadá

# 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 

a nm-tool uvádí, že dnsserver je

DNS: 208.67.222.222 DNS: 208.67.220.220 

což jsou ty, které poskytuje můj router. Na druhé straně vykopání adresy říká, že

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

Pokud mám pravdu, z toho všeho vyvozuji, že

  1. pouze část „head“ čte resolvonf: část „base“ je nějakým způsobem řízena dnsmasq
  2. dnsserver je ve skutečnosti nucen k 8.8.4.4 bez ohledu na server poskytovaný dhcp, ALE ztratíte poskytované ukládání do mezipaměti dnsmasq, protože požadavek je vždy odeslán na 8.8.4.4
  3. dnsmasq stále používá POUZE dnsserver poskytovaný dhcp.

Celkově to funguje, ale já nemysli si, že je požadován zamýšlený výsledek.Myslím, že bližší řešení je následující. Upravit

sudo vim /etc/dhcp/dhclient.conf 

přidat

supersede domain-name-servers 8.8.8.8; 

Výsledek je následující: resolv.conf obsahuje pouze 127.0.0.1, což znamená, že je vyvolána mezipaměť dnsmasq a nástroj nm říká

DNS: 8.8.8.8 

což znamená, že pokud hledaný název není v mezipaměti , pak je požadováno na 8.8.8.8 a ne na serveru poskytovaném dhcp.

Další (možná lepší) možností je použít „prepend“ místo „supersede“: tímto způsobem, pokud 8.8.8.8 název není vyřešen, pak požadavek spadne zpět na druhý server. Ve skutečnosti nástroj nm říká

DNS: 8.8.8.8 DNS: 208.67.222.222 DNS: 208.67.220.220 

Komentáře

  • Mnohem lepší odpověď než hacknutí do Konfigurace NS. Zejména možnost předřadit server před ty, které poskytuje dhcp. Vypadá to jako dokonalá rovnováha řešení problému bez vytváření nových!
  • Stojí za zmínku, že ‚ nástroj nm byl nahrazen nástrojem nmcli

Odpověď

Zjistil jsem, že můžete změnit jmenné servery, které dnsmasq používá přidáním následujících řádků do /etc/dnsmasq.conf:

server=8.8.8.8 server=8.8.4.4 

Neměl jsem je nainstalován balíčkem dnsmasq, ale Ubuntu je dodáván pouze s dnsmasq-base. Spustil jsem sudo apt-get install dnsmasq, upravil jsem /etc/dnsmasq.conf, poté sudo service dnsmasq restart a sudo service network-manager restart.

Spustil jsem sudo tail -n 200 /var/log/syslog zkontrolovat svůj syslog a ověřit, zda dnsmasq používal jmenné servery, které jsem zadal:

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 

Komentáře

  • Existuje důvod, proč je označen jako nejlepší odpověď … protože je to opravdu tak! díky moc! Dodal bych, že po všech krocích, které jste zmínili, může být nutné restartovat síť, aby vše fungovalo hladce (bylo to pro mě …. sudo service network-manager restart)
  • Na serveru Ubuntu 14.04 asi za poloviční dobu by studený boot nevyústil v připojení k internetu pomocí adresy URL, ale fungovala by IP adresa. Strávil jsem hodně času marným pokusem to napravit, vzdal jsem se měsíců, pak jsem našel toto řešení. I já si myslím, že je to nejlepší odpověď.
  • Je to ‚ zajímavé, že musí být nainstalován dnsmasq. To opravdu opravilo můj DNS v normální situaci, ale úplně to rozbilo moji konfiguraci VPN (připojení VPN nyní selhalo …)
  • neexistuje žádný takový soubor na Centos
  • ubuntu 16: změny z postupu s dnsmasq se nebudou šířit do /etc/resolv.conf. Důsledkem je, že klobouk nslookup stále používá svůj původně definovaný localhost 127.0.0.1. I když mohu potvrdit vaše zmíněné syslogy.

Odpověď

V případě statických IP adres průvodce serverem Ubuntu říká: změňte soubor / etc / network / interfaces, který může vypadat takto:

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 

Změníte IP adresy 192.168.3.45 192.168.8.10 pro ty, které chcete , jako 8.8.8.8

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

Komentáře

  • To rozhodně vypadá dobře, ale jak nyní regeneruji resolv.conf ?!
  • @JoelBerger ifdown eth0; ifup eth0.
  • no / etc / network / interfaces on Centos

Answer

  1. Hledat „Síťové připojení“

  2. Otevřít

    zde zadat popis obrázku

  3. Poté vyberte buď WiFi nebo Ethernet, nebo cokoli, co používáte, a klikněte na Upravit. Dostanete toto:

    zde zadejte popis obrázku

  4. Vyberte ipv4 na kartách

  5. Vyberte adresy pouze metodou

  6. Níže zadejte své jméno DNS a uložte ho

  7. Jste hotovi

Komentáře

  • I ‚ to však musím udělat pro každé síťové připojení. V minulosti jste mohli změnit výchozí nastavení pro všechna připojení, což je to, co jsem zde hledal.
  • Miluji vás! toto nastavení uživatelského rozhraní mi uložilo zadek ze sudo a vim mess: ‚ (
  • pomocí mincovny (na Ubuntu 14.04) – ale také u KDE – pro některé důvod, nastavení serverů DNS v GUI Network Manager neovlivňuje ‚ nastavení DNS použité v terminálu
  • Nejlepší odpověď imho. Na Ubuntu 14.04 mám 2 externí IP adresy pro DNS, které by ‚ nerozpoznaly klienty v mé domácí síti. Ponechání metody na ‚ automatické (DHCP) ‚ pro kabelové připojení přidal můj router ‚ s IP adresu do stávajícího seznamu.U bezdrátového připojení přes wlan0 to ‚ nefungovalo, ale metoda na ‚ automatických (DHCP) adresách pouze ‚ nahradil externí adresy IP adresou mého routeru a pak to také fungovalo. Aplikujte změny pomocí sudo service network-manager restart, chvíli počkejte, ověřte pomocí nmcli d list | grep 'DNS\|IP-IFACE'. A ping na interního klienta podle jména.
  • toto je správná odpověď

odpověď

Rychlé a špinavé řešení, které dosud nebylo zmíněno, nastavuje neměnný příznak v souboru resolv.conf ihned po jeho úpravě.

$ sudo nano /etc/resolv.conf 

Přidat a uložit:

nameserver 8.8.8.8 

Potom:

$ sudo chattr +i /etc/resolv.conf 

To by mělo stačit. Dělám to také ve svém systému.

Komentáře

  • Kdykoli vaše řešení zahrnuje chattr, ‚ ve skutečnosti není řešením.
  • to dělám v systémech, kde z nějakého důvodu potřebuji dočasně změnit DNS a don ‚ nechci upravit konfiguraci. Jako trvalé řešení bych to ‚ nedoporučil.
  • “ rychlé a špinavé řešení “
  • Toto není ‚ špinavé. Programy které ničí místní konfiguraci, protože si myslí, že vědí, že jsou špinavé.

Odpovědět

Můj problém byl trochu jiný , Chtěl jsem přepsat své směrovače DNS servery. Našel jsem tento odkaz z Ubuntu: https://wiki.ubuntu.com/OverrideDNSServers

Říká: Pokud byste chtěli přepsat nastavení DNS, která vám poskytuje server DHCP, otevřete

/etc/dhcp3/dhclient.conf 

a přidejte následující řádek:

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

nahrazení <dns_ip_address*> položek správným obsahem.

Komentáře

  • To je odpověď, která vyřešila můj problém.
  • Perfektní. Stačí dodat, že byste měli restartovat sudo service networking, abyste změny povolili.
  • Co když ‚ nemáme dhcp3 složka? Mám Xubuntu 17.10, přesunul se na /etc/dhcp jednoduše?
  • @PlasmaBinturong v mém případě to bylo /etc/dhcp/dhclient.conf zapnuto nejnovější verze Debianu a Ubuntu.

Odpovědět

Zkuste přidat dns-nameservers XXX.XXX.XXX.X do vašeho /etc/networking/interfaces souboru.

Komentáře

  • Zanechte komentář, když hlasujete proti. Toto je metoda uvedená v příručce , strana 38.
  • Nezmiňovaná příručka zobrazuje všechny adresy IP na jednom řádku. Zdá se, že tato odpověď navrhuje přidat řádek. A proč je poslední číslo široké pouze jedno X? Myslím, že většinou to bylo extrémně neformální a nejisté psaní ve stylu krátkého chatu, které získalo downvotes, @Zook.

Odpověď

Možná mi něco chybí, ale podle pokynů ke konfiguraci na https://help.ubuntu.com/14.04/serverguide/network-configuration.html stačí udělat aktualizujte následující. Nejsem spuštěn proxy server – pouze stroj za bránou firewall a místním DNS (příklad ukazuje Google, ale nastavte jej na vše, co potřebujete).

nano /etc/network/interfaces 

Výchozí:

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

AKTUALIZOVÁNO:

# 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 

Pokud je to možné, restartujte počítač.

Odpověď

Některé z odpovědí zde fungují dobře. Nebyl jsem však spokojený s tím, že musím projít ručně konfigurační soubory pouze pro nastavení „správného“ DNS které jsem již ady přijímám přes DHCP s NetworkManager.

Trochu jsem kopal a všiml jsem si, že soubor /etc/resolv.conf je ve skutečnosti odkaz a ukazuje na /run/systemd/resolve/stub-resolv.conf. Po několika experimentech se zdá, že adresář /run/systemd/resolve/ obsahuje další soubor s názvem resolv.conf, který již obsahuje nastavení, která jste obdrželi prostřednictvím DHCP. Místo toho, abyste museli ručně přepisovat / vytvářet konfigurační soubory v /etc/, můžete jednoduše znovu propojit /etc/resolv.conf a ukázat na /run/systemd/resolve/resolv.conf soubor a vše by mělo být v pořádku:

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

Nyní byste měli mít možnost upravovat nastavení i ze sítě Manažer v Gnome. 🙂

Nejste si jisti, zda to bude fungovat na starších ubuntu, ale na Ubuntu 17.10 ano.

Komentáře

  • když spustíme systemd-resolve --flush-cache původní propojený soubor je zjevně přerušen, výše uvedená odpověď se obnoví původní funkce

odpověď

EDITACE 6. KVĚTNA, 2016

Napsal jsem skript pro aktualizaci všech nastavení systémových připojení v adresáři /etc/Network-Manager/system-connections/. GUI, které používáte k úpravě jednotlivých připojení, upravuje konkrétní soubor v tomto adresáři. Skript aktualizuje všechny soubory – pouze vyhledává ty, kteří nemají nastavený dns pomocí grep a nastaví jej pomocí awk.

Protože přístup k těmto souborům vyžaduje přístup sudo, spusťte tento skript pomocí sudo a poté – restartujte správce sítě

#!/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 v akci:

sem zadejte popis obrázku

ORIGINÁLNÍ PŘÍSPĚVEK Někteří uživatelé zde poukázali na to, že DNS je nějakým způsobem řízen dnsmasq. To je skutečně pravda. Čelil jsem trochu menšímu problému, kde jsem bez ohledu na to, jak jsem změnil head nebo body v /etc/resolvconf/resolv.conf.d, můj počítač nemohl ve skutečnosti přistupovat k internetu pomocí doménového jména – pracuje pouze s IP adresami.

Co jsem udělal, je upravit soubor /etc/NetworkManager/NetworkManager.conf. Původně to bylo dns=dnsmasq, ale změnil jsem to na: dns=208.67.222.222. Ačkoli tímto způsobem nm-tool nezmiňuje 208.67.222.222, stále jsem mohl používat názvy domén, nejen IP adresy.

Zde je můj NetworkManager.conf soubor vypadá nyní:

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

POZNÁMKA: Další podrobnosti o mém problému a tomto řešení najdete v mém příspěvku na askubuntu.com .

AKTUALIZACE č. 1

Když jsem se dnes vrátil z univerzity, zjistil jsem, že se nemohu připojit k domácí WiFi. Četl jsem trochu na man NetworkManager.conf a ukázalo se, že dns= v [main] je vlastně řádek pro pluginy, takže řádek dns=dnsmasq ve skutečnosti přidává plugin dnsmasq do NetworkManageru.

Takže moje řešení stále fungovalo, ale ne tak, jak jsem očekával. Zde je výňatek z hlavní stránky:

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

Doplňky DNS slouží k zajištění funkce místního mezipaměti jmenného serveru. (což zrychluje dotazy DNS) a posílat data DNS do aplikací, které je používají.

Takže nastavením dns=208.67.222.222 Možná jsem v zásadě zabránil NetworkManageru v použití tohoto pluginu, který by jinak použil lokální server DNS (který zjevně nefunguje).

Odpovědět

Existují dvě metody

Metoda 1

Použitý server DNS lze změnit aktualizací souboru head v části resolv.conf.d

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

a poté spusťte

$ sudo resolvconf -u 

Výše uvedené vygeneruje obecný resolv.conf soubor v adresáři /etc. Všechny vaše požadavky na řešení budou zaslány na výše uvedený jmenný server. Vyřešeno.

Má to však důsledky. Při použití resolvconf k přímému dotazu 1.1.1.1 na rozlišení adres je síla ukládání do mezipaměti poskytovaná dnsmasq pryč. Každá žádost přejde na 1.1.1.1

Metoda 2

Pokud si nepřejete, aby se to stalo výše, a použijte pro řešení DNS dnsmasq tato odpověď. Odpověď je jednoduše popsána zde.

Přidejte následující obsah do souboru /etc/dnsmasq.conf .

server = 1.1.1.1

Poté restartujte službu dnsmasq

$ sudo systemctl restart dnsmasq.service 

Věci budou fungovat dobře. Vyřešeno.

Odpovědět

Snadný způsob, jak změnit DNS:

$ sudo nano /etc/network/interfaces 

Pokud se vyskytnou problémy, nainstalujte nano:

$ sudo apt-get install nano -y 

pak ..

  1. najděte toto: dns-nameservers
  2. pokud jej nenajdete, jednoduše jej tam zadejte
  3. můj jsem udělal takto: dns-nameservers 199.85.126.10 199.85.127.10

Doufám, že je to nejlepší způsob, mimochodem jsem to udělal na VPS.

Odpověď

v kořenovém adresáři:

  1. komentář dns=dnsmasq na /etc/NetworkManager/NetworkManager.conf
  2. přidat 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; na konec /etc/dhcp/dhclient.conf
  3. sudo service network-manager restart

Následující změny provedou výše:

$ 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 

Počkejte 7/10 sekund, než dokončíte proces restartu, zkontrolujte konfiguraci pomocí„ nslookup nist.gov “. Funguje dobře na Ubuntu LTS 14.04.

Odpověď

Poznámka: Stejně jako většina odpovědí i tato předpokládá použití NetworkManageru . Na rozdíl od většiny ostatních odpovědí však nepředpokládá použití resolvconf, dhclient ani čehokoli jiného – pozor, mohou převzít kontrolu, ačkoli (viz aktualizace).

Vzhledem k počtu zobrazení této otázky je neuvěřitelné, že tento 8 znaků řešení ještě nebylo zveřejněno: podle man NetworkManager.conf,

dns: […] none: NetworkManager nebude upravovat resolv.conf. To znamená, že rc-manager je nespravovaný

Proto přidejte

dns=none 

v [main] části /etc/NetworkManager/NetworkManager.conf poté restartujte NetworkManager a nebude to upravovat /etc/resolv.conf již.

Upozorňujeme, že nastavení rc-manager=unmanaged by mělo být ekvivalentní s dns=none a toto nastavení rc-manager=symlink spolu s /etc/resolv.conf jako symb olic link může být lepší nápad (přečtěte si výše zmíněnou stránku).

Aktualizace:

Poté, co NetworkManager přestal přepisovat /etc/resolv.conf, napadlo mě dhcpcd již při spuštění nahradil /etc/resolv.conf zbytečným prázdným souborem. Stránka dhcpcd.conf pomohla, stačí přidat

nohook resolv.conf 

do dhcpcd.conf (moje je v /etc/dhcpcd.conf).

Odpovědět

To „Je to proto, že tento soubor spravuje konkrétní nainstalovaná aplikace. Můžete buď odinstalovat tuto aplikaci, nebo nastavit požadované možnosti přímo prostřednictvím této aplikace.

V mém případě (minimální server Linux Centos7) se stejnou situací jsem se dostal # Generated by NetworkManager v horní části souboru resolv.conf, takže nejlepší způsob, jak tuto možnost změnit, bylo použití

nmtui

. V tomto nástroji můžete upravovat jmenné servery a když změníte možnosti networkmanageru z tohoto nástroje, automaticky se použijí na /etc/resolv.conf po restartu. Zde naleznete další informace .

Odpověď

Nic na vše na internetu on Přeložil mě, protože obslužný program CLI NordVPN stále přepisoval /etc/resolv.conf pokaždé, když jsem se připojil a odpojil od VPN. Dokonce to překonalo chattr +i, což bylo super nepříjemné !!

Pro mě fungovalo úplné zakázání resolvconf !

Upravit /etc/resolvconf.conf a učinit z tohoto jediný záznam:

resolv_conf=NO 

Tímto konkrétně zakážete resolvconf, což znamená, že vaše /etc/resolv.conf tím nebude nikdy změněna. Pak pokračujte a sudo chattr +i /etc/resolv.conf pro dobrou míru.

Testováno na Arch Linuxu.

Odpovědět

Na Centos 7 je pomocí programu NetworkManager nejčistší, nejtrvalejší a funkční řešení, které jsem našel, vytvoření skriptu NetworkManager, který k nastavení požadovaných hodnot používá nmcli.

např.

Vytvořit /etc/NetworkManager/dispatcher.d/mydns.sh s oprávněními 755 a následujícím obsahem:

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

A otestovat bez restartu:

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

YMMV, ale toto je jediný způsob, jak jsem zjistil, že umožňuje mému /etc/resolv.conf „přežít“ restart bez přepsání hodnotami, které nechci.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *