Hogyan állíthatom be a DNS-t, amikor a resolv.conf fájlt felülírják?

A legtöbb információ, amit online látok, a /etc/resolv.conf szerkesztését írja le, de az ott végrehajtott módosításokat csak felülírják .

$ 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 

Úgy tűnik, hogy a 127.0.1.1 a dnsmasq helyi példánya. A dnsmasq dokumentumok szerint a /etc/resolv.conf szerkesztésre van szükség. Megpróbáltam egyéni névkiszolgálókat elhelyezni a /etc/resolv.conf.d/base fájlban, de a változások nem jelentek meg a /etc/resolv.conf fájlban a sudo resolvconf -u.

FYI, nem akarom kapcsolatonként megváltoztatni a DNS-t, szeretnék beállítani az alapértelmezett DNS-beállításokat, amelyeket az összes kapcsolathoz használni kell, ha másként nincs meghatározva.

UPDATE:

Magam is válaszoltam erre a kérdésre: https://unix.stackexchange.com/a/163506/67024

Szerintem ez a legjobb megoldás azóta:

  1. Működik.
  2. A legkevesebb változtatást igényli, és
  3. továbbra is a dnsmasq DNS-gyorsítótárával együtt működik, nem pedig megkerülve.

Megjegyzések

  • Jobban válaszoljon a kérdésére ahelyett, hogy frissítené a kérdést. Azt hiszem … könnyebb megtalálni a problémára adott helyes választ
  • Úgy tűnik, hogy a legtöbb válasz Ubuntu-orientált és túl bonyolult. Univerzális megoldás a NetworkManager felhasználók számára az, hogy egyszerűen hozzáadja az dns=none elemet a /etc/NetworkManager/NetworkManager.conf fájlba (lásd a következő válaszom részleteit).
  • Úgy gondolom, hogy ez a válasz tisztázza, miért írják felül a Resol.conf fájlt, akkor tudod, hogyan kell beállítani.

Válasz

Úgy gondolom, hogy ha felül akarja írni a DNS-névkiszolgálót, akkor csak ehhez hasonló sort kell hozzáadnia a base fájl resolv.conf.d alatt.

Példa

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

Ezután tegye a névkiszolgáló listáját így:

nameserver 8.8.8.8 nameserver 8.8.4.4 

Végül frissítsen resolvconf:

$ sudo resolvconf -u 

Ha megnézi a resolvconf kézikönyv oldalát, akkor a /etc/resolvconf/resolv.conf.d/ alatt található fájlokat ismerteti.

 /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 

Annak ellenére, hogy a head fájl tetején figyelmeztetés van:

ez a figyelmeztetés azért van, hogy amikor ezek a fájlok elkészülnek, a figyelmeztetés végül a kapott resolv.conf fájlba fog bejutni, amelyet ezek a fájlok felhasználható. Tehát ugyanolyan könnyen hozzáadhatta a nameserver sorokat, amelyeket a base fájlnál fent leírtunk, az head fájl is.

Hivatkozások

Megjegyzések

  • Ubuntu 14.04 – amikor a névkiszolgálókat betettem az base fájlba, és futtattam a resolvconf -u parancsot, nem tesszük a resolv.conf fájlba – amikor a névszervereket a head fájlba helyeztem,
  • Ubuntu 14.04 – nekik is meg kellett kommentálniük a /run/resolvconf/interface/NetworkManager
  • típus nslookup google.com mezőbe állítva, és a lista első IP-je legyen az új névszerver, ha nem , rosszul csináltad
  • Ubuntu 16.04: Akkor működik, ha csak a /etc/resolvconf/resolv.conf.d/head fájlhoz van csatolva, nem pedig a . Megerősítve a következővel: nslookup google.com.
  • Kezdetben telepítenie kell a resolvconf alkalmazást. Telepítheti a következővel: sudo apt-get install resolvconf.

Válasz

Engem is érdekel ez a kérdés, és kipróbáltam a @sim javasolt megoldást.

A teszteléshez a következőt tettem:

div id = “581739f61b”>

és

nameserver 8.8.4.4 

itt: /etc/resolvconf/resolv.conf.d/head

Ezután újraindítottam a hálózatot a következővel:

sudo service network-manager restart 

Ennek eredményeként /etc/resolv.conf úgy néz ki, mint

# 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 

és nm-tool kijelenti, hogy a dnsszerver

DNS: 208.67.222.222 DNS: 208.67.220.220 

melyeket az útválasztóm szolgáltat. Másrészt a cím ásása azt mondja, hogy

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

Ha nekem van igazam, mindebből arra következtetek, hogy

  1. a “head” részt a resolvonf olvassa: az “base” részt valahogyan a dnsmasq vezérli. a dnsmasq által, mivel a kérést mindig a 8.8.4.4 címre küldjük.
  2. A dnsmasq továbbra is CSAK a dhcp által biztosított dnsszervert használja.

Összességében működik, de én ne gondolja, hogy ez a kívánt eredmény.Szorosabb megoldás szerintem a következő. Szerkesztés

sudo vim /etc/dhcp/dhclient.conf 

majd hozzáadás

supersede domain-name-servers 8.8.8.8; 

Az eredmény a következő: resolv.conf csak a 127.0.0.1-et tartalmazza, ami azt jelenti, hogy a dnsmasq gyorsítótár meghívásra kerül, és az nm-tool mondja

DNS: 8.8.8.8 

ami azt jelenti, hogy ha a keresett név nincs a gyorsítótárban , akkor ezt a 8.8.8.8-as verziónál kérik, és nem a dhcp által biztosított kiszolgálón.

Egy másik (talán jobb) lehetőség az, hogy a „helyettesítés” helyett a „prepend” -t használja: ily módon, ha A nevet a 8.8.8.8 nem oldja meg, akkor a kérés visszaesik a másik szerverre. Valójában az nm-tool azt mondja, hogy

DNS: 8.8.8.8 DNS: 208.67.222.222 DNS: 208.67.220.220 

megjegyzések

  • Sokkal jobb válasz, mint feltörni a NS konfigurációk. Különösen az a lehetőség, hogy a kiszolgálót a dhcp-k előtt adják meg. Tökéletes egyensúlynak tűnik a probléma megoldása, újak létrehozása nélkül!
  • ‘ érdemes megjegyezni, hogy az nm-eszközt nmcli-re cserélték

Válasz

Megtudtam, hogy megváltoztathatja a dnsmasq által használt névszervereket a következő sorok hozzáadásával a következőhöz: /etc/dnsmasq.conf:

server=8.8.8.8 server=8.8.4.4 

Nem volt /etc/dnsmasq.conf fájlt, mivel a dnsmasq csomag telepítette, de az Ubuntu csak a dnsmasq-base fájlt tartalmazza. Futottam sudo apt-get install dnsmasq, majd szerkesztettem /etc/dnsmasq.conf, majd sudo service dnsmasq restart és sudo service network-manager restart.

Futtattam a sudo tail -n 200 /var/log/syslog fájlt, hogy ellenőrizzem a syslogomat, és ellenőrizzem, hogy a dnsmasq Az általam megadott névszerverek:

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 

Megjegyzések

  • Ennek oka van, hogy ezt jelölik a legjobbnak válaszolj … mert valóban az! nagyon szépen köszönöm! Hozzáteszem, hogy az Ön által említett összes lépés után szükség lehet egy hálózati újraindításra, hogy minden zökkenőmentesen működjön (nekem ez volt …. sudo service network-manager restart)
  • Az Ubuntu 14.04 Server kiszolgálón a hideg indítás kb. felének az ideje nem eredményez internetkapcsolatot URL használatával, de egy IP-cím működik. Sok időt töltöttem eredménytelenül a javítással, hónapokig feladtam, aztán megtaláltam ezt a megoldást. Én is úgy gondolom, hogy ez a legjobb válasz.
  • Érdekes ‘, hogy a dnsmasq-ot telepíteni kell. Ez valóban kijavította a DNS-t normál helyzetben, de teljesen megszakította a VPN-konfigurációmat (a VPN-kapcsolat most nem sikerül …)
  • a Centoson nincs ilyen fájl
  • ubuntu 16: A (z) dnsmasq eljárással végrehajtott változtatások nem terjednek át a /etc/resolv.conf fájlba. Ennek következménye, hogy a hat nslookup továbbra is az eredeti, 127.0.0.1-es helyi hostot használja. Bár meg tudom erősíteni az említett rendszernaplóit.

Válasz

Statikus IP-helyzetek esetén az Ubuntu Server Guide azt mondja: változtassa meg az / etc / network / interfaces fájlt, amely így nézhet ki:

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 

Megváltoztatja a 192.168.3.45 192.168.8.10 IP-címeket , például 8.8.8.8

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

Megjegyzések

  • Ez minden bizonnyal jól néz ki, de hogyan tudom most regenerálni a resolv.conf fájlt ?!
  • @JoelBerger ifdown eth0; ifup eth0.
  • nincs / etc / network / interfész a Centoson

Válasz

  1. “Hálózati kapcsolat” keresése

  2. Nyissa meg

    írja ide a kép leírását

  3. Ezután válassza ki a WiFi-t vagy az Ethernet-t, vagy bármit, amit használ, és kattintson a szerkesztés gombra. Ezt megkapja:

    ide írja be a kép leírását

  4. Válassza ki az ipv4 parancsot a lapokon

  5. Csak a metódusban válassza ki a címeket

  6. Írja be alul a DNS nevét, és mentse el

  7. Készen állsz

Megjegyzések

  • I ‘ d ezt meg kell tennie minden egyes hálózati kapcsolatnál. A múltban megváltoztathatta az összes kapcsolat alapértelmezett beállítását, erre törekedtem itt.
  • Szeretlek! ez a felhasználói felület beállítása megmentette a seggemet a sudo és a vim messziről: ‘ (
  • Mint használata (Ubuntu 14.04-en) – de ezt a KDE-vel is látta – néhány ok, ha a DNS-kiszolgálókat a GUI hálózatkezelőben állítja be, akkor ez nem befolyásolja a terminálban használt DNS-beállításokat.
  • Legjobb válasz: Ubuntu 14.04-én 2 külső Annak a DNS-nek az IP-címei, amely nem ‘ nem ismeri fel az otthoni hálózaton belüli ügyfeleket. A módszer hagyása a ‘ Automatikus (DHCP) ‘ a vezetékes kapcsolathoz hozzáadta az útválasztóm ‘ IP-címét a meglévő listához.A wlan0 feletti vezeték nélküli kapcsolathoz ez nem működött, de a ‘ csak az automatikus (DHCP) címeknél használt módszer ‘ lecserélte a külső címeket az útválasztóm IP-jére, majd ez is működött. Alkalmazza a módosításokat a következővel: sudo service network-manager restart, várjon egy kicsit, ellenőrizze a következővel: nmcli d list | grep 'DNS\|IP-IFACE'. És pingelje meg belső kliensét név szerint.
  • ez a helyes válasz

Válasz

Egy gyors és piszkos megoldás, amelyet még nem említettek, a megváltoztathatatlan jelzőt állítja be a resolv.conf fájlban közvetlenül a szerkesztés után.

$ sudo nano /etc/resolv.conf 

Adja hozzá, és mentse:

nameserver 8.8.8.8 

Ezután:

$ sudo chattr +i /etc/resolv.conf 

Ezzel meg kell csinálni a trükköt. Ezt a rendszeremen is megteszem.

Megjegyzések

  • Bármikor a megoldás magában foglalja a chattr-t, ez ‘ nem igazán megoldás.
  • ezt teszem azokon a rendszereken, ahol valamilyen okból ideiglenesen meg kell változtatnom a DNS-t, és ne ‘ nem akarja módosítani a konfigurációt. Végleges megoldásként nem ajánlanám ‘.
  • ” gyors és piszkos megoldás ”
  • Ez nem ‘ t piszkos. amelyek megsemmisítik a helyi konfigurációt, mert azt hiszik, hogy jobban tudják, piszkosak.

Válasz

A problémám egy kicsit más volt , Felül akartam írni a routerek DNS-kiszolgálóit. Ezt a linket az Ubuntu-ból találtam: https://wiki.ubuntu.com/OverrideDNSServers

Ez azt mondja: Ha szeretné felülírja a DHCP-kiszolgáló által biztosított DNS-beállításokat, nyissa meg a

/etc/dhcp3/dhclient.conf 

fájlt, és adja hozzá a következő sort:

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

a <dns_ip_address*> elemek lecserélése a megfelelő tartalomra.

Megjegyzések

  • Ez a válasz megoldotta a problémámat.
  • Tökéletes. Csak hozzá kell tenni, hogy a sudo service networking újra kell indítania a változtatások engedélyezéséhez.
  • Mi van, ha nincs ‘, ha dhcp3 mappa? Nekem van az Xubuntu 17.10 verziója, egyszerűen átkerült a /etc/dhcp fájlba?
  • @PlasmaBinturong az én esetemben /etc/dhcp/dhclient.conf legújabb Debian és Ubuntu verziók.

Válasz

Próbálja meg hozzáadni a dns-nameservers XXX.XXX.XXX.X a /etc/networking/interfaces fájljába.

Megjegyzések

  • Hagyjon megjegyzést, ha visszavonja, kérem. Ez az a módszer, amelyet a kézikönyv , 38. oldal ad meg.
  • Az említett kézikönyv az összes IP-t egy sorban mutatja. Úgy tűnik, hogy ez a válasz egy sor hozzáadását javasolja. És miért az utolsó szám csak egy X széles? Azt hiszem, leginkább a rendkívül informális és bizonytalan rövid chat-stílusú írás keltette a visszhangot, @Zook.

Válasz

Talán hiányzik valami, de a https://help.ubuntu.com/14.04/serverguide/network-configuration.html konfigurációs utasítások szerint csak annyit kell tennie, hogy frissítsem a következőket: Nem futok proxyt – csak egy gépet a tűzfal és a helyi DNS mögött (a példa a Google-t mutatja, de állítsa be bármire, amire szüksége van).

nano /etc/network/interfaces 

Alapértelmezés:

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

Frissítve:

# 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 

Indítsa újra, ha teheti.

Válasz

Néhány válasz itt nagyon jól működik. Azonban nem voltam elégedett azzal a ténnyel, hogy manuálisan át kell mennem konfigurációs fájlok csak a “megfelelő” DNS beállításához, amelyek ady DHCP -et kapok NetworkManager -vel.

Kicsit ástam és észrevettem, hogy a /etc/resolv.conf fájl valójában egy link, és a /run/systemd/resolve/stub-resolv.conf. Némi kísérletezés után úgy tűnik, hogy a /run/systemd/resolve/ könyvtár tartalmaz egy másik, resolv.conf nevű fájlt, amely már tartalmazza a DHCP. Tehát ahelyett, hogy manuálisan kellene felülírni / létrehozni a konfigurációs fájlokat a /etc/ fájlban, egyszerűen újra kell linkelni a /etc/resolv.conf elemet, hogy a /run/systemd/resolve/resolv.conf fájlt, és minden rendben legyen:

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

Mostantól képesnek kell lennie a beállítások szerkesztésére akár a Hálózatról is Menedzser a Gnome-ban. 🙂

Nem biztos benne, hogy ez a régebbi Ubuntu-n is működik-e, de az Ubuntu 17.10-nél.

Megjegyzések

  • amikor systemd-resolve --flush-cache futtatásakor az eredeti linkelt fájl látszólag megszakad, a fenti válasz visszaáll az eredeti funkcionalitás

Válasz

SZERKESZTÉS MÁJUS 6., 2016

Írtam egy szkriptet a rendszerkapcsolatok összes beállításának frissítésére a /etc/Network-Manager/system-connections/ könyvtárban. Az egyedi kapcsolatok szerkesztésére használt GUI, egy adott fájl szerkesztése a könyvtárban. A szkript az összes fájlt frissíti – csak azokat keresi, akiknek nincsenek megadva a dns a grep-lel, és az awk-val.

Mivel ezekhez a fájlokhoz sudo hozzáférést igényel, futtassa ezt a szkriptet a sudo paranccsal, majd – indítsa újra a hálózatkezelő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 

Műveletben lévő szkript:

írja ide a kép leírását

EREDETI POST Néhány felhasználó rámutatott, hogy a DNS-t valamilyen módon a dnsmasq vezérli. Ez valóban igaz. Valamivel kisebb problémával szembesültem, ahol bárhogy is változtattam head vagy body a /etc/resolvconf/resolv.conf.d, a számítógépem valójában nem férhet hozzá domain néven internálva – csak IP-címmel működik.

A /etc/NetworkManager/NetworkManager.conf fájl szerkesztése. Eredetileg a következőt írta: dns=dnsmasq, de megváltoztattam a következőre: dns=208.67.222.222. Bár így nm-tool nem említi a 208.67.222.222-t, mégis használhattam domain neveket, nem csak IP-címeket.

Itt van, hogyan A NetworkManager.conf fájl most úgy néz ki:

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

MEGJEGYZÉS: A problémámmal és a megoldással kapcsolatos további részletekért tekintse meg a askubuntu.com webhelyen található bejegyzésemet.

UPDATE # 1

Miután ma hazatértem az egyetemről, rájöttem, hogy nem tudok csatlakozni az otthoni WiFi-mhez. Olvastam egy kicsit a és kiderül, hogy dns= a [main] -ben valójában a plug-inek sora, tehát a dns=dnsmasq valójában hozzáadja a dnsmasq plugint a NetworkManagerhez, nyilván.

Tehát a megoldásom még mindig működött, csak nem úgy, ahogy vártam. Itt található kivonat a man oldalról:

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

A DNS beépülő modulokat a helyi gyorsítótár-névszerver funkcióinak biztosítására használják (ami felgyorsítja a DNS-lekérdezéseket), és a DNS-adatokat továbbítani az azokat használó alkalmazásokhoz.

Tehát a dns=208.67.222.222 Lehet, hogy alapvetően megakadályoztam a NetworkManagert abban a bővítményben, amely egyébként a helyi DNS-kiszolgálót használná (amely nyilvánvalóan nem működik).

Válasz

két módszer létezik módszer

1. módszer

A használni kívánt DNS-kiszolgáló megváltoztatható az head fájl frissítésével a resolv.conf.d

majd futtassa

$ sudo resolvconf -u 

A fentiek generálnak egy általános resolv.conf fájlt a /etc könyvtárban. Minden megoldási kérését elküldjük a fent említett névszervernek. Megoldva .

Ennek azonban vannak következményei. Ha a resolvconf címet használja közvetlenül a (z) 1.1.1.1 lekérdezésre a címfeloldásokhoz, akkor a dnsmasq által biztosított gyorsítótárazás hatalma megszűnik. Minden kérés a 1.1.1.1

2. Módszer

Ha nem akarja, hogy a fentiek történjenek, és a DNS-megoldásokhoz a dnsmasq-ot használja, lásd ez a válasz. A válasz itt egyszerűen le van írva.

Adja hozzá a következő tartalmat a /etc/dnsmasq.conf fájlba .

server = 1.1.1.1

Ezután indítsa újra a dnsmasq szolgáltatást

$ sudo systemctl restart dnsmasq.service 

A dolgok jól működnek. Megoldott .

Válasz

A DNS módosításának egyszerű módja:

$ sudo nano /etc/network/interfaces 

Ha problémák merülnek fel, telepítse a nano:

$ sudo apt-get install nano -y 

akkor ..

  1. ezt megtalálja: dns-nameservers
  2. ha nem találja meg, egyszerűen írja be oda
  3. Az enyémet így csináltam: dns-nameservers 199.85.126.10 199.85.127.10

Remélem, hogy ez a legjobb módszer, egyébként VPS-en csináltam így.

Válasz

a root-on:

  1. megjegyzés dns=dnsmasq on /etc/NetworkManager/NetworkManager.conf
  2. adjon hozzá 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; a /etc/dhcp/dhclient.conf
  3. sudo service network-manager restart

A fentiekben a következő változtatásokat hajtja végre:

$ 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 

Várjon 7/10 másodpercet az újraindítási folyamat befejezéséhez, ellenőrizze a konfigurációját az” nslookup nist.gov “paranccsal. Jól működik az Ubuntu LTS 14.04-en.

Válasz

Megjegyzés: A legtöbb válaszhoz hasonlóan ez is feltételezi a NetworkManager használatát . A legtöbb más választól eltérően azonban nem feltételezi a resolvconf, dhclient vagy bármi más használatát – vigyázzon, hogy átvehetik, bár (lásd a frissítést).

Tekintettel a kérdés nézettségére, hihetetlen, hogy ez a 8 karakter megoldást még nem tették közzé: man NetworkManager.conf szerint,

dns: […] Nincs: A NetworkManager nem módosítja a resolv.conf fájlt. Ez azt jelenti, hogy az rc-manager nem felügyelt

Ezért adjon hozzá

dns=none 

a [main] szakaszban a /etc/NetworkManager/NetworkManager.conf részben, majd indítsa újra a NetworkManager alkalmazást, és ez nem módosítja a /etc/resolv.conf már.

Ne feledje, hogy a rc-manager=unmanaged beállításnak egyenértékűnek kell lennie a dns=none , és ez a rc-manager=symlink beállítás, valamint a /etc/resolv.conf szimbólum Az olic link jobb ötlet lehet (olvassa el a fent említett oldalt).

Frissítés:

Miután a NetworkManager leállította a /etc/resolv.conf felülírását, arra gondoltam A dhcpcd már a /etc/resolv.conf -et egy haszontalan üres fájlra cserélte indításkor. A dhcpcd.conf kézikönyv segített, elegendő hozzáadni

nohook resolv.conf 

a dhcpcd.conf (az enyém /etc/dhcpcd.conf).

Válasz

Ez “, mert egy adott telepített alkalmazás kezeli ezt a fájlt. Eltávolíthatja az alkalmazást, vagy beállíthatja a kívánt opciókat közvetlenül az alkalmazáson keresztül.

Az én esetemben (Linux centos7 minimális szerver) ugyanolyan helyzetben vagyok, mint én # Generated by NetworkManager a resolv.conf fájl tetején, így ezt a beállítást legjobban a

nmtui

parancs. Ebben az eszközben szerkesztheti a névkiszolgálókat, és amikor megváltoztatja a networkmanager beállításait erről a segédprogramról, azok újraindítás után automatikusan alkalmazandók lesznek a /etc/resolv.conf fájlra. id = “d681508297”>

Itt további információkat talál .

Válasz

Semmi mind az interneten ő Rámutattam, mert a NordVPN CLI segédprogram folyamatosan felülírta a /etc/resolv.conf -t, valahányszor a VPN-hez csatlakoztam és leválasztottam róla. Ez felül is írta a chattr +i t, ami nagyon bosszantó volt !!

Ami nekem bevált, az a a resolvconf teljes letiltása volt!

Szerkesztés /etc/resolvconf.conf, és ez az egyetlen bejegyzés:

resolv_conf=NO 

Ez kifejezetten letiltja a resolvconf, vagyis a /etc/resolv.conf -t soha nem fogja megváltoztatni. Ezután menjen előre, és sudo chattr +i /etc/resolv.conf jó mérlegelés érdekében.

Arch Linux rendszeren tesztelve.

Válasz

A Centos 7-en a NetworkManager használatával a legtisztább, kitartóbb, működő megoldás, amelyet megtaláltam, egy NetworkManager parancsfájl létrehozása, amely az nmcli segítségével állítja be a kívánt értékeket.

pl.

Hozzon létre /etc/NetworkManager/dispatcher.d/mydns.sh 755 engedélyekkel és a következő tartalommal:

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

És tesztelni, újraindítás nélkül:

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

YMMV, de csak így találtam meg, amely lehetővé teszi az /etc/resolv.conf fájlnak, hogy “túlélni” egy újraindítást anélkül, hogy felülírnák azokat az értékekkel, amelyeket nem akarok.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük