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:
- Működik.
- A legkevesebb változtatást igényli, és
- továbbra is a dnsmasq DNS-gyorsítótárával együtt működik, nem pedig megkerülve.
Megjegyzések
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
- Persist dns névkiszolgáló az ubuntu 14.04 számára
- Hogyan adhatok hozzá egy DNS-kiszolgálót a resolv.conf fájlon keresztül?
Megjegyzések
- Ubuntu 14.04 – amikor a névkiszolgálókat betettem az
base
fájlba, és futtattam aresolvconf -u
parancsot, nem tesszük a resolv.conf fájlba – amikor a névszervereket ahead
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
- 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.
- 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
-
“Hálózati kapcsolat” keresése
-
Nyissa meg
-
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:
-
Válassza ki az ipv4 parancsot a lapokon
-
Csak a metódusban válassza ki a címeket
-
Írja be alul a DNS nevét, és mentse el
-
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:
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 ..
- ezt megtalálja:
dns-nameservers
- ha nem találja meg, egyszerűen írja be oda
- 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:
- megjegyzés
dns=dnsmasq
on/etc/NetworkManager/NetworkManager.conf
- 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
-
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.
dns=none
elemet a/etc/NetworkManager/NetworkManager.conf
fájlba (lásd a következő válaszom részleteit).