Suurin osa verkossa näkemistä tiedoista sanoo muokkaavan /etc/resolv.conf
, mutta kaikki tekemäni muutokset ohitetaan. .
$ 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
Vaikuttaa siltä, että 127.0.1.1 on dnsmasq
: n paikallinen esiintymä. dnsmasq
-asiakirjat sanovat muokkaavan /etc/resolv.conf
. Yritin laittaa mukautetut nimipalvelimet kansioon /etc/resolv.conf.d/base
, mutta muutokset eivät näy /etc/resolv.conf
-kohdassa suoritettuasi sudo resolvconf -u
.
FYI, en halua muuttaa DNS: ää yhteyskohtaisesti, haluan asettaa DNS-oletusasetukset käytettäväksi kaikille yhteyksille, ellei toisin ole määritelty.
PÄIVITYS:
Vastasin itse tähän kysymykseen: https://unix.stackexchange.com/a/163506/67024
Mielestäni se on paras ratkaisu siitä lähtien:
- Se toimii.
- Se vaatii vähiten muutoksia ja
- Se toimii edelleen dnsmasqin DNS-välimuistin kanssa sen ohittamisen sijaan.
Kommentit
Vastaus
Uskon, että jos haluat ohittaa DNS-nimipalvelimen, lisäät vain tämän kaltainen rivi base
tiedosto resolv.conf.d
.
Esimerkki
$ sudo vim /etc/resolvconf/resolv.conf.d/base
Laita sitten nimipalvelinluettelosi kuten joten:
nameserver 8.8.8.8 nameserver 8.8.4.4
Päivitä lopuksi resolvconf
:
$ sudo resolvconf -u
Jos katsot resolvconf
-sivun man-sivua, se kuvaa eri tiedostot kohdassa /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
Vaikka head
-tiedoston yläosassa on varoitus:
tämä varoitus on olemassa, joten kun nämä tiedostot rakennetaan, varoitus toimii viime kädessä tuloksena olevaan resolv.conf
-tiedostoon, jonka nämä tiedostot käytetään tekemään. Joten olisit yhtä helposti voinut lisätä nameserver
-rivit, jotka on kuvattu yllä tiedostolle base
, head
tiedosto.
Viitteet
- Pysäytä dns-nimipalvelin Ubuntu 14.04: lle
- Kuinka lisään DNS-palvelimen resolv.conf-tiedoston kautta?
Kommentit
- Ubuntu 14.04 – kun laitoin nimipalvelimet
base
-ohjelmaan ja suoritinresolvconf -u
, nimipalvelimet olivat ei laiteta resolv.conf-tiedostoon – kun laitoin nimipalvelimet tiedostoonhead
, ne olivat - Ubuntu 14.04 – Piti myös kommentoida
/run/resolvconf/interface/NetworkManager
- -tyyppi
nslookup google.com
ja luettelon ensimmäisen IP-osoitteen tulisi olla uusi nimipalvelimesi, ellei , teit sen väärin - Ubuntu 16.04: Toimii, jos se liitettiin vain
/etc/resolvconf/resolv.conf.d/head
-sarjaan, eibase
. Vahvistettu:nslookup google.com
. - Aluksi sinulla on oltava asennettuna
resolvconf
. Voit asentaa sen tekemälläsudo apt-get install resolvconf
.
Vastaa
Olen myös kiinnostunut tästä kysymyksestä ja kokeilin ehdotettua ratkaisua @sim.
Testatakseni laitoin
nameserver 8.8.8.8
kohtaan /etc/resolvconf/resolv.conf.d/base
ja
nameserver 8.8.4.4
/etc/resolvconf/resolv.conf.d/head
Käynnistin sitten verkon uudelleen
sudo service network-manager restart
Tuloksena on, että /etc/resolv.conf
näyttää tältä
# 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
ja nm-tool
todetaan, että dns-palvelin on
DNS: 208.67.222.222 DNS: 208.67.220.220
jotka ovat reitittimeni tarjoamat. Toisaalta osoitteen kaivaminen kertoo, että
;; Query time: 28 msec ;; SERVER: 8.8.4.4#53(8.8.4.4)
Jos olen oikeassa, päätän kaikesta tästä, että
- vain ”head” -osan lukee resolvonf: ”base” -osaa ohjaa jotenkin dnsmasq
- dns-palvelin pakotetaan tosiasiallisesti versioon 8.8.4.4 dhcp: n tarjoamasta palvelimesta riippumatta, MUTTA menetät välimuistin dnsmasq, koska pyyntö lähetetään aina osoitteeseen 8.8.4.4
- dnsmasq käyttää edelleen AINOASTAAN dhcp: n tarjoamaa dns-palvelinta.
Kaiken kaikkiaan se toimii, mutta minä älä usko, että se on haluttu tulos.Tiivisempi ratkaisu on mielestäni seuraava. Muokkaa
sudo vim /etc/dhcp/dhclient.conf
lisää sitten
supersede domain-name-servers 8.8.8.8;
Tulos on seuraava: resolv.conf sisältää vain 127.0.0.1, mikä tarkoittaa, että dnsmasq-välimuisti käynnistetään ja nm-tool sanoo
DNS: 8.8.8.8
mikä tarkoittaa, että jos etsimääsi nimeä ei ole välimuistissa , niin sitä pyydetään kohdassa 8.8.8.8 eikä dhcp: n tarjoamalla palvelimella.
Toinen (ehkä parempi) vaihtoehto on käyttää ”korvataan” sijasta ”korvaava”: tällä tavalla, jos 8.8.8.8 ei ratkaise nimeä, niin pyyntö palautuu toiselle palvelimelle. Itse asiassa nm-tool sanoo
DNS: 8.8.8.8 DNS: 208.67.222.222 DNS: 208.67.220.220
Kommentit
- Paljon parempi vastaus kuin hakkerointi NS-määritykset. Varsinkin mahdollisuus ennakoida palvelin dhcp-palvelimien eteen. Näyttää siltä, että ongelman ratkaiseminen on täydellinen tasapaino luomatta uusia!
- Se on ’ huomionarvoista, että nm-työkalu on korvattu nmcli: llä
vastaus
Huomasin, että voit muuttaa nimipalvelimia, joita dnsmasq
käyttää lisäämällä seuraavat rivit kansioon /etc/dnsmasq.conf
:
server=8.8.8.8 server=8.8.4.4
Minulla ei ollut /etc/dnsmasq.conf
-tiedosto, koska dnsmasq-paketti on asentanut sen, mutta Ubuntu mukana tulee vain dnsmasq-base. Juoksin sudo apt-get install dnsmasq
, muokkain sitten /etc/dnsmasq.conf
, sitten sudo service dnsmasq restart
ja sudo service network-manager restart
.
Suoritin sudo tail -n 200 /var/log/syslog
tarkistamaan syslogini ja varmistamaan, että dnsmasq
käytti Määrittämäni nimipalvelimet:
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
kommentit
- Tähän on syynä paras vastaus … koska se todellakin on! Kiitos paljon! Lisään, että kaikkien mainitsemiesi vaiheiden jälkeen verkon uudelleenkäynnistys saattaa olla tarpeen, jotta kaikki toimisi sujuvasti (se oli minulle ….
sudo service network-manager restart
) - Ubuntu 14.04 -palvelimessa noin puolet kylmän käynnistyksen ajasta ei johda Internet-yhteyteen URL-osoitteen avulla, mutta IP-osoite toimisi. Vietin paljon aikaa yrittämättä korjata sitä, annoin periksi kuukausia ja löysin tämän ratkaisun. Minäkin mielestäni se on paras vastaus.
- Se on ’ mielenkiintoista, että dnsmasq on asennettava. Tämä todella korjasi DNS: n normaalitilanteessa, mutta se rikkoi täysin VPN-kokoonpanoni (VPN-yhteys epäonnistui nyt …)
- Centosissa ei ole tällaista tiedostoa
- ubuntu 16: Muutoksia menettelystä, jossa on
dnsmasq
, ei levitetä tiedostoon/etc/resolv.conf
. Seurauksena on, että hat nslookup käyttää edelleen alkuperäistä määriteltyä paikallista isäntää 127.0.0.1. Vaikka voin vahvistaa mainitsemasi järjestelmälogit.
Vastaa
Staattisissa IP-tilanteissa Ubuntu Server Guide kertoo muuta tiedosto / etc / network / interfaces, joka voi näyttää tältä:
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
Vaihdat haluamasi IP-osoitteet 192.168.3.45 192.168.8.10 , kuten 8.8.8.8
https://help.ubuntu.com/14.04/serverguide/serverguide.pdf Sivu 38
Kommentit
- Tämä näyttää varmasti hyvältä, mutta miten voin nyt luoda resolv.conf-tiedoston ?!
- @JoelBerger
ifdown eth0; ifup eth0
. - Centosissa ei ole / etc / network / -rajapintoja
Vastaa
-
Hae ”Verkkoyhteys”
-
Avaa se
-
Valitse sitten joko WiFi tai Ethernet tai mitä tahansa käyttämääsi ja napsauta muokkaa. Saat tämän:
-
Valitse välilehdistä ipv4
-
Valitse vain osoitteet menetelmässä
-
Kirjoita DNS-nimesi alla ja tallenna se
Olet valmis
kommentit
- I ’ d on kuitenkin tehtävä tämä jokaiselle verkkoyhteydelle. Aikaisemmin voit muuttaa oletusasetusta kaikille yhteyksille, mitä halusin tehdä täällä.
- Rakastan sinua! tämä käyttöliittymän asetus tallensi perseeni sudo- ja vim-sotkuista: ’ (
- Mintin käyttö (Ubuntu 14.04: ssä) – mutta näki tämän myös KDE: n kanssa – joillekin syystä DNS-palvelinten asettaminen GUI Network Manageriin ei vaikuta ’ ei vaikuta päätelaitteen DNS-asetuksiin.
- Paras vastaus. Ubuntu 14.04: ssä sain 2 ulkoista IP-osoitteet DNS: lle, joka ei ’ ei tunnista asiakkaita kotiverkossani. Jätetään menetelmä ’ Automaattinen (DHCP) ’ langallista yhteyttä varten lisäsi reitittimeni ’ IP-osoitteen olemassa olevaan luetteloon.Wlan0: n kautta tapahtuvaa langatonta yhteyttä varten se ei toiminut ’, mutta menetelmä ’ vain automaattisissa (DHCP) osoitteissa ’ korvasi ulkoiset osoitteet reitittimen IP-osoitteella ja sitten se toimi. Ota muutokset käyttöön kohdalla
sudo service network-manager restart
, odota vähän, tarkista kohdallanmcli d list | grep 'DNS\|IP-IFACE'
. Ja pingistä sisäistä asiakastasi nimen mukaan. - tämä on oikea vastaus
vastaus
Nopea ja likainen kiertotapa, jota ei vielä mainittu, on muuttamattoman lipun asettaminen resolv.conf
-tiedostoon heti sen muokkaamisen jälkeen.
$ sudo nano /etc/resolv.conf
Lisää tämä ja tallenna:
nameserver 8.8.8.8
Sitten:
$ sudo chattr +i /etc/resolv.conf
Tämän pitäisi tehdä temppu. Teen tämän myös järjestelmässäni.
Kommentit
- Aina kun ratkaisuun liittyy chattr, se ’ ei todellakaan ole ratkaisu.
- Tätä teen järjestelmissä, joissa minun on jostain syystä vaihdettava DNS väliaikaisesti ja don ’ t haluavat muokata kokoonpanoa. Pysyvänä ratkaisuna en suosittele sitä ’.
- ” nopea ja likainen kiertotapa ”
- Tämä ei ole ’ t likainen. jotka tuhoavat paikallisen kokoonpanon, koska heidän mielestään tietävät paremmin olevan likaisia.
Vastaus
Minun ongelmani oli hieman erilainen , Halusin ohittaa reitittimien DNS-palvelimet. Löysin tämän linkin Ubuntusta: https://wiki.ubuntu.com/OverrideDNSServers
Siinä sanotaan: Jos haluat ohita DHCP-palvelimen toimittamat DNS-asetukset, avaa
/etc/dhcp3/dhclient.conf
ja lisää seuraava rivi:
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;
<dns_ip_address*>
-kohtien korvaaminen oikealla sisällöllä.
Kommentit
- Tämä on vastaus, joka ratkaisi ongelmani.
- Täydellinen. Lisätään vain, että sudo-palveluverkko on käynnistettävä uudelleen muutosten ottamiseksi käyttöön.
- Entä jos meillä ’ ei ole sitä, että
dhcp3
kansio? Minulla on Xubuntu 17.10, onko se siirtynyt/etc/dhcp
-kansioon yksinkertaisesti? - @PlasmaBinturong minun tapauksessani se oli
/etc/dhcp/dhclient.conf
päällä uusimmat Debian- ja Ubuntu-versiot.
Vastaa
Yritä lisätä dns-nameservers XXX.XXX.XXX.X
tiedostoon /etc/networking/interfaces
.
Kommentit
- Jätä kommentti, kun aliarvioit. Tämä on menetelmä, joka on annettu käsikirjassa , sivulla 38.
- Mainitsematon käsikirja näyttää kaikki IP-osoitteet yhdellä rivillä. Tämä vastaus näyttää viittaavan rivin lisäämiseen. Ja miksi viimeinen numero on vain yksi X leveä? Luulen, että lähinnä äärimmäisen epävirallinen ja epävarma lyhyt chat-tyyppinen kirjoitus keräsi äänet, @Zook.
Vastaus
Ehkä minusta puuttuu jotain, mutta kokoonpanon ohjeiden mukaan kohdassa https://help.ubuntu.com/14.04/serverguide/network-configuration.html teet vain päivitä seuraava: En käytä välityspalvelinta – vain kone palomuurin ja paikallisen DNS: n takana (esimerkki näyttää Googlen, mutta aseta se mitä tarvitset).
nano /etc/network/interfaces
Oletus:
# This file... # and how to activate... # The loopback... auto local iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp
PÄIVITETTY:
# 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
Käynnistä uudelleen, jos voit.
Vastaus
Jotkut täällä annetuista vastauksista toimivat hienosti. En kuitenkaan ollut tyytyväinen siihen, että minun täytyy käydä läpi manuaalisesti asetustiedostot vain ”oikean” DNS
asettamiseksi, joka minäkin ady saan yli DHCP
vastaanottajan NetworkManager
.
Kaivoin vähän ja huomasin, että /etc/resolv.conf
-tiedosto on itse asiassa linkki ja se osoittaa /run/systemd/resolve/stub-resolv.conf
. Joitakin kokeiluja tehdessä näyttää siltä, että hakemisto /run/systemd/resolve/
sisältää toisen tiedoston nimeltä resolv.conf
, joka sisältää jo asetukset, jotka olet saanut DHCP
. Joten sen sijaan, että sinun tarvitsisi korvata / luoda määritystiedostoja manuaalisesti tiedostossa /etc/
, voit yksinkertaisesti linkittää uudelleen /etc/resolv.conf
osoittamaan /run/systemd/resolve/resolv.conf
-tiedoston ja kaikkien pitäisi olla hienosti:
# sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
Sinun pitäisi nyt pystyä muokkaamaan asetuksia jopa verkosta Gnomen johtaja. 🙂
Etkö ole varma, toimiiko tämä vanhemmilla ubuntuilla, mutta se toimii Ubuntu 17.10: llä.
Kommentit
- kun suoritamme
systemd-resolve --flush-cache
alkuperäisen linkitetyn tiedoston ilmeisesti katkaistaan, yllä oleva vastaus palautetaan alkuperäinen toiminto
Vastaa
MUOKKAA TOUKOKUU 6, 2016
Olen kirjoittanut komentosarjan päivittääksesi kaikki järjestelmäyhteyksien asetukset hakemistossa /etc/Network-Manager/system-connections/
. GUI, jota käytät yksittäisten yhteyksien muokkaamiseen, muokkaa tiettyä tiedostoa siinä hakemistossa. Skripti päivittää kaikki tiedostot – se vain etsii niitä, joille dns: ää ei ole asetettu grep: llä ja asetetaan awk: llä.
Koska näiden tiedostojen käyttäminen vaatii sudo
-käyttöoikeuden, suorita tämä komentosarja sudo
-kohdalla ja käynnistä sitten verkonhallinta uudelleen
#!/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
Komentosarja toiminnassa:
ALKUPERÄINEN POSTITUS Jotkut käyttäjät huomauttivat, että DNS: ää ohjaa jotenkin dnsmasq
. Se on totta. Olen kohdannut jonkin verran pienemmän ongelman, missä riippumatta siitä, kuinka muutin head
tai body
ryhmässä /etc/resolvconf/resolv.conf.d
, tietokoneeni ei voinut todella käyttää internetyhteyttä verkkotunnuksella – toimii vain IP-osoitteiden kanssa.
Minun tehtäväni oli muokata /etc/NetworkManager/NetworkManager.conf
-tiedostoa. Alun perin siinä sanottiin dns=dnsmasq
, mutta muutin sen muotoon: dns=208.67.222.222
. Vaikka tällä tavalla nm-tool
ei mainita 208.67.222.222, pystyin silti käyttämään verkkotunnuksia, ei vain IP-osoitteita.
Tässä miten NetworkManager.conf
-tiedosto näyttää tältä:
[main] plugins=ifupdown,keyfile,ofono #dns=dnsmasq dns=208.67.222.222 [ifupdown] managed=false
HUOMAUTUS: Lisätietoja ongelmastani ja ratkaisustani on viestissäni osoitteessa askubuntu.com .
PÄIVITYS # 1
Palattuani tänään yliopistosta kotiin huomasin, että en voinut muodostaa yhteyttä kotini WiFi-verkkoon. Olen lukenut hieman aiheesta man NetworkManager.conf
ja käy ilmi, että dns=
kohdassa [main]
on itse asiassa rivi laajennuksille, joten rivi dns=dnsmasq
lisää dnsmasq-laajennuksen ilmeisesti NetworkManageriin.
Joten ratkaisuni toimi edelleen, vain ei niin kuin olin odottanut. Tässä on ote man-sivulta:
dns=plugin1,plugin2, ... List DNS plugin names separated by ",".
DNS-laajennuksia käytetään tarjoamaan paikallisen välimuistin nimipalvelimen toimintoja (mikä nopeuttaa DNS-kyselyjä) ja siirtää DNS-tiedot sovelluksiin, jotka käyttävät sitä.
Joten asettamalla dns=208.67.222.222
Olen ehkä periaatteessa estänyt NetworkManageria käyttämästä tätä laajennusta, joka muuten käyttäisi paikallista DNS-palvelinta (joka ilmeisesti ei toimi).
Vastaa
on kaksi menetelmää
Menetelmä 1
Käytettävää DNS-palvelinta voidaan muuttaa päivittämällä head
-tiedosto kohtaan resolv.conf.d
$ echo "nameserver 1.1.1.1" | sudo tee /etc/resolvconf/resolv.conf.d/base
ja suorita sitten
$ sudo resolvconf -u
Yllä oleva luo yleisen resolv.conf
-tiedoston hakemistossa /etc
. Kaikki ratkaisupyynnöt lähetetään yllä mainitulle nimipalvelimelle. Ratkaistu.
Tähän on kuitenkin vaikutuksia. Kun resolvconf
-palvelua käytetään suoraan hakemaan 1.1.1.1
osoiteratkaisuihin, dnsmasqin tarjoama välimuistin teho on kadonnut. Jokainen pyyntö menee osioon 1.1.1.1
Tapa 2
Jos et halua yllä tapahtuvan ja käytät DNS-ratkaisuissa dnsmasq-viitteitä tämä vastaus. Vastaus kuvataan yksinkertaisesti tässä.
Lisää seuraava sisältö tiedostoon /etc/dnsmasq.conf
.
server = 1.1.1.1
Käynnistä sitten dnsmasq-palvelu uudelleen
$ sudo systemctl restart dnsmasq.service
Asiat toimivat hyvin. Ratkaistu.
Vastaa
Helppo tapa muuttaa DNS: ää:
$ sudo nano /etc/network/interfaces
Jos ongelmia ilmenee, asenna nano
:
$ sudo apt-get install nano -y
sitten ..
- etsi tämä:
dns-nameservers
- jos et löydä sitä, kirjoita se vain sinne
- Tein omani näin:
dns-nameservers 199.85.126.10 199.85.127.10
Toivon, että tämä on paras tapa, tein sen muuten VPS: llä.
vastaus
juuressa:
- kommentti
dns=dnsmasq
päällä/etc/NetworkManager/NetworkManager.conf
- lisää
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;
kohdan/etc/dhcp/dhclient.conf
-
sudo service network-manager restart
Seuraava tekee yllä esitetyt muutokset:
$ 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
Odota 7/10 sekuntia, jotta uudelleenkäynnistys on valmis, tarkista määritykset” nslookup nist.gov ”-toiminnolla. Toimii hyvin Ubuntu LTS 14.04: ssä.
Vastaus
HUOMAUTUS: Kuten useimmat vastaukset, tässäkin oletetaan käyttävän NetworkManageria . Toisin kuin useimmat muut vastaukset, siinä ei kuitenkaan oteta käyttöön resolvconf
, dhclient
tai mitään muuta – varo, että ne voivat ottaa haltuunsa, vaikka (katso päivitys).
Kun otetaan huomioon tämän kysymyksen katselukertojen määrä, on aivan uskomatonta, että tämä 8 merkkiä -ratkaisua ei ole vielä julkaistu: man NetworkManager.conf
,
mukaan dns: […] ei mitään: NetworkManager ei muokkaa resolv.conf-tiedostoa. Tämä tarkoittaa, että rc-manager ei ole hallinnassa
Lisää siksi
dns=none
[main]
-osiossa /etc/NetworkManager/NetworkManager.conf
-kohdassa, käynnistä sitten NetworkManager uudelleen ja se ei muokkaa /etc/resolv.conf
enää.
Huomaa, että asetuksen rc-manager=unmanaged
on oltava sama kuin dns=none
ja kyseinen asetus rc-manager=symlink
sekä symboli /etc/resolv.conf
olic link voi olla parempi idea (lue yllä mainittu sivu).
Päivitys:
Kun NetworkManager lopetti /etc/resolv.conf
-kirjoituksen, ajattelin dhcpcd
oli jo korvaamassa /etc/resolv.conf
hyödyttömällä tyhjällä tiedostolla käynnistyksen yhteydessä. dhcpcd.conf
-sivun sivu auttoi, riittää, että lisätään
nohook resolv.conf
dhcpcd.conf
(minun on /etc/dhcpcd.conf
).
Vastaa
Se ”, koska tietty asennettu sovellus hallinnoi tätä tiedostoa. Voit joko poistaa kyseisen sovelluksen asennuksen tai asettaa haluamasi vaihtoehdot suoraan kyseisen sovelluksen kautta.
Minun tapauksessani (Linux centos7 minimaalinen palvelin) minulla on sama tilanne kuin minulla # Generated by NetworkManager
resolv.conf
-tiedoston yläosassa, joten paras tapa muuttaa tätä vaihtoehtoa oli
nmtui
-komento. Voit muokata nimipalvelimia tällä työkalulla, ja kun muutat networkmanagerin asetuksia tästä apuohjelmasta, niitä käytetään automaattisesti /etc/resolv.conf
-käynnistyksen jälkeen. Täältä löydät lisätietoja .
Vastaa
Ei kaikki Internetissä hän Laskin minut, koska NordVPN: n CLI-apuohjelma korvasi /etc/resolv.conf
joka kerta, kun muodostin yhteyden VPN: ään ja irrotin siitä. Se korvasi jopa chattr +i
, mikä oli erittäin ärsyttävää !!
Minulle toimi poistamalla resolvconf kokonaan käytöstä!
Muokkaa /etc/resolvconf.conf
ja tee tästä ainoa merkintä:
resolv_conf=NO
Tämä poistaa nimenomaisesti käytöstä resolvconf
, mikä tarkoittaa, että se ei koskaan muuta /etc/resolv.conf
. Mene sitten eteenpäin ja sudo chattr +i /etc/resolv.conf
hyväksi.
Testattu Arch Linuxilla.
Vastaa
Centos 7: ssä NetworkManagerin avulla puhtain, sitkeä ja toimiva ratkaisu, jonka olen löytänyt, on luoda NetworkManager-komentosarja, joka käyttää nmcliä haluamiesi arvojen asettamiseen.
esim.
Luo /etc/NetworkManager/dispatcher.d/mydns.sh
oikeuksilla 755 ja seuraavalla sisällöllä:
#!/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
Ja testata ilman uudelleenkäynnistystä:
systemctl restart NetworkManager.service cat /etc/resolv.conf
YMMV, mutta ainoa tapa, jonka löysin, sallii /etc/resolv.conf: n ”selviydy” uudelleenkäynnistyksestä korvaamatta arvoja, joita en halua.
dns=none
kohtaan/etc/NetworkManager/NetworkManager.conf
(katso yksityiskohdat alla olevasta vastauksestani).