Kuinka asetan DNS: n, kun resolv.conf korvataan?

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:

  1. Se toimii.
  2. Se vaatii vähiten muutoksia ja
  3. Se toimii edelleen dnsmasqin DNS-välimuistin kanssa sen ohittamisen sijaan.

Kommentit

  • Parempi vastaus kysymykseesi päivittämisen sijaan mielestäni … on helpompaa löytää oikea vastaus, jonka annoit ongelmasi
  • Vaikuttaa siltä, että useimmat vastaukset ovat Ubuntu-suuntautuneita ja liian monimutkaisia. Yleinen ratkaisu NetworkManager-käyttäjille on lisätä dns=none kohtaan /etc/NetworkManager/NetworkManager.conf (katso yksityiskohdat alla olevasta vastauksestani).
  • Luulen, että tämä vastaus selventää miksi resol.conf korvataan, ja osaat sen määrittää.

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

Kommentit

  • Ubuntu 14.04 – kun laitoin nimipalvelimet base -ohjelmaan ja suoritin resolvconf -u, nimipalvelimet olivat ei laiteta resolv.conf-tiedostoon – kun laitoin nimipalvelimet tiedostoon head, 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, ei base. 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ä

  1. vain ”head” -osan lukee resolvonf: ”base” -osaa ohjaa jotenkin dnsmasq
  2. 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
  3. 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

  1. Hae ”Verkkoyhteys”

  2. Avaa se

    kirjoita kuvan kuvaus tähän

  3. Valitse sitten joko WiFi tai Ethernet tai mitä tahansa käyttämääsi ja napsauta muokkaa. Saat tämän:

    kirjoita kuvan kuvaus tähän

  4. Valitse välilehdistä ipv4

  5. Valitse vain osoitteet menetelmässä

  6. 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 kohdalla nmcli 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:

kirjoita kuvan kuvaus tähän

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 ..

  1. etsi tämä: dns-nameservers
  2. jos et löydä sitä, kirjoita se vain sinne
  3. 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:

  1. kommentti dns=dnsmasq päällä /etc/NetworkManager/NetworkManager.conf
  2. 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
  3. 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.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *