Vraag Hoe voeg ik een DNS-server toe via resolv.conf?


is /etc/resolv.conf nutteloos in Ubuntu 12.04 LTS (Precieze Pangolin)?

Ik zie dat de DNS-serverinformatie is opgeslagen in Netwerkmanager nu. De nmcli opdrachtregelprogramma kan dat voor u weergeven.

Als ik er nog een wil toevoegen DNS server, zal het toevoegen aan /etc/resolv.conf door de resolvconf hulp bij het pakket?


192
2018-05-03 00:00


oorsprong


Ik denk dat het bovenstaande commando zou moeten zijn nm-tool, niet nmcli. - Jesse Glick


antwoorden:


Als /etc/resolv.conf bevat nameserver 127.0.0.1 vervolgens items toevoegen aan /etc/resolvconf/resolv.conf.d/tail zal niet echt iets nuttigs doen.

Als u NetworkManager gebruikt, moet u in plaats daarvan statistisch nameserveradressen toevoegen via netwerk indicator: Verbindingen bewerken ... | Bewerken ... | IPv4-instellingen | Extra DNS-servers.

als jij werkelijk wil meer items toevoegen aan /etc/resolv.conf, Maak een /etc/resolvconf/resolv.conf.d/tail en voeg ze daar toe.

Zoals bij elke Ubuntu-uitgave, is het aanbevolen om de Ubuntu-release-opmerkingen te lezen, die hier beschikbaar zijn:

De secties Desktop en Common Infrastructure bevatten een link naar


130
2018-05-03 00:21



@stgraber, geef alsjeblieft commentaar op de alternatieve benadering die ik heb gevonden en hieronder heb gepost. Hoe is het te vergelijken met het toevoegen van een /etc/resolvconf/resolv.conf.d/tail bestand of met behulp van Network Manager? Bedankt. - Randall Cook
@stgraber Wat adviseert u voor Ubuntu Server? Ik heb gemerkt vanuit je blog en merkt op dat Network-Manger de beste manier lijkt om dit te beheren, maar als ik een installatie van netwerkbeheerder op mijn systeem installeer zou ik een heleboel dingen installeren die ik niet nodig heb (bijv. GUI-dingen ). - Avery Chan
Wat een bom toevoegend aan /etc/resolvconf/resolv.conf.d/head (volgens jouw blogpost)? - sup
@AveryChan, gebruik de "derde benadering" voorgesteld door @ randallcook - voeg gewoon toe dns-nameservers naar je eth0 sectie in /etc/network/interfaces. - mrm
/etc/resolvconf/update.d/libc op Ubuntu 14.04.1 server: # Set TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS=no  # to allow additional nameserver addresses to be listed in  # resolv.conf after an initial loopback address 127.* or ::1.  (zet het in /etc/default/resolvconf, zoals regel 23 en 24 van /etc/resolvconf/update.d/libc laten zien. - immeëmosol


Ik vond een andere benadering hier dat is het toevoegen van een regel zoals hieronder /etc/dhcp/dhclient.conf:

prepend domain-name-servers x.x.x.x, y.y.y.y;

Op dezelfde manier vond ik een derde benadering hier dat is het toevoegen van regels aan /etc/network/interfaces:

auto eth0
iface eth0 inet static
    . . .
    dns-nameservers 8.8.8.8 8.8.4.4

Update: hier is de officiële documentatie voor de derde benadering.


128
2018-05-08 22:48



Ik heb hier voor gestemd omdat het third approach is veruit de eenvoudigste manier om dit te doen. - Billy Moon
@billy Ik kon de derde methode helemaal niet gebruiken .. alleen de eerste hier vermeld, het dclient.conf bewerken, werkte voor mij. - Jeff Atwood
Opmerking: het bewerken van dhclient.conf heeft alleen enig effect als dhclient wordt gebruikt (en het wordt gebruikt door zowel ifup als NetworkManager!) Het bewerken van / etc / network / interfaces heeft alleen effect als ifup wordt gebruikt. Het configureren van NetworkManager-verbindingen met behulp van de NetworkManager-verbindingseditor heeft alleen effect als NetworkManager wordt gebruikt. - jdthood
Als ik me niet vergis, voegt de derde benadering een andere nameserver toe NA die geretourneerd door DHCP. Als u wilt dat het eerst komt, is een van de andere opties meer geschikt. ik gebruikte /etc/resolvconf/resolv.conf.d/head (na het overwinnen van de misleidende "NIET BEWERKEN" commentaar daar :)) - starfry
@ Mr.Hyde, dat zijn geen opdrachtregelopdrachten, het zijn regels om toe te voegen aan / etc / network / interfaces. - Randall Cook


Het klinkt alsof je het hebt over het resolvconf-pakket.

Installeer de resolvconf pakket.

Rennen

cd /etc/resolvconf/resolv.conf.d
sudo cp -p head head.orig  #backup copy, always do this
sudo nano head

De bovenkant van het bestand is een enge waarschuwing. Het bestand /etc/resolv.conf wordt automatisch gegenereerd uit de inhoud van dit bestand; de waarschuwing is aanwezig, zodat deze in /etc/resolv.conf wordt geplaatst wanneer /etc/resolv.conf wordt gegenereerd. Aan het einde van het bestand toevoegen

nameserver <ip_of_nameserver>

druk op Ctrl  X en antwoord ja om het bestand op te slaan. Om af te sluiten, genereer je /etc/resolv.conf opnieuw zodat de wijzigingen nu worden toegepast:

sudo resolvconf -u

Controleer vervolgens de inhoud van /etc/resolv.conf om te zien dat de regel die je hebt toegevoegd nu beschikbaar is. Verder zal het er nog steeds zijn de volgende keer dat uw machine opstart of uw netwerkdienst opnieuw wordt opgestart, afhankelijk van wat zich het eerst voordoet.


85
2018-06-30 23:41



De informatie over de bestandswaarschuwing is precies wat ik nodig had. Ik had de indruk dat ik het bestand niet moest bewerken! Bedankt! - Xunnamius


Hieronder zal ik je de beste manier laten zien die ik heb gevonden sinds ik Ubuntu Server editie uitvoer en ifup gebruik in plaats van NetworkManager.

Eigenlijk maakten ze dit makkelijker :) door alles in het bestand / etc / network / interfaces te plaatsen. Dezelfde configuraties die u naar resolv.conf zou hebben geschreven, kunnen nu in hetzelfde bestand zijn als uw netwerkadapterconfiguraties zoals in het onderstaande voorbeeld:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        dns-nameservers 75.75.75.75 75.75.76.76
        dns-search local

Ik hoop dat dit helpt en het eenvoudiger maakt voor mij, nu kunnen we statische IP-adressen maken en namenservers en dns-domeinen toevoegen in één bestand :)


29
2018-05-23 22:55



Dank je. Dit is ook mijn favoriete methode geworden. Een opmerking buiten het onderwerp: het is niet nodig om de adressen 'netwerk' en 'broadcast' op te geven, omdat deze automatisch worden berekend op basis van het 'adres' en het 'netmasker'. Het enige dat u echt nodig hebt, zijn 'adres', 'netmask' en 'gateway'. - Martijn Heemels
Dit is het schoonste antwoord. Zorg ervoor dat u de dns-* -woorden correct spelt. Verkeerd gespelde "dns-nameservers" was mijn eigenlijke probleem. - John McGehee


Mine gebruikt Ubuntu Server 12.04. Ik heb de volgende wijzigingen aangebracht en de server opnieuw opgestart (meestal kan dit worden gedaan door de netwerkinterface alleen naar beneden te halen, ifdown eth0of ifup eth0).

In bestand /etc/resolvconf/resolv.conf.d/base Ik heb de volgende items toegevoegd:

nameserver 8.8.8.8
nameserver 8.8.4.4

Ik hoop dat het bovenstaande helpt!


16
2018-03-19 05:56





U kunt NetworkManager gebruiken zoals vermeld in het antwoord van Frank, maar als u liever handmatig wilt bewerken /etc/resolv.conf, u kunt dit doen door het te verwijderen (het is eigenlijk een symlink) en vervolgens een nieuw gewoon bestand te maken met de gewenste inhoud. De resolvconf utility schrijft alleen naar het bestand /run/resolvconf/resolv.conf.


11
2018-05-04 14:38





Opmerking: dit antwoord was voor een nogal verschillende, vooraf samengevoegde versie van de vraag, met alleen een focus op het vooraf in behandeling nemen van een gewenste naamserver.

Dit werkt vóór 12.04:

Bewerk /etc/dhcp3/dhclient.conf en voeg toe :
prepend domain-name-servers 127.0.0.1;

(In feite is deze regel al aanwezig, het enige dat u hoeft te doen is het commentaar weg te doen.)


8
2018-03-06 20:26



Werkt dit als u geen adressen hebt toegewezen door DHCP? - Azendale
Als u meer wilt weten over de configuratie van de dhclient, kunt u a man dhclient.conf om toegang te krijgen tot de dhclient man-pagina. (Dit is geen antwoord op de vraag van Azendale.) - Christian Skjødt
Dit antwoord is helemaal verkeerd. Allereerst wil de vraag-indiener het adres van een externe namserver toevoegen, niet het adres 127.0.0.1. De interface-configurator voor een externe interface is niet de plaats om een ​​adres toe te voegen voor een interne nameserver. Ten tweede is het bestand op / etc / dhcp, niet op / etc / dhcp3. Ten derde, omdat Ubuntu 12.04 dergelijke dingen zijn geconfigureerd met behulp van resolvconf. - jdthood
Allereerst - de oorspronkelijke vraag was dramatisch veranderd door het samenvoegen van moderators, dus mijn antwoord ziet er natuurlijk vreemd uit. Het dhcp3-bestand was de locatie toen ik dit antwoordde 2011en zelfs als het niet ideaal is, werkte het. Ik heb deze oplossing op meerdere machines gebruikt. Vanzelfsprekend zou je het loopback-adres veranderen naar het adres dat je wilt toevoegen. Ik neem aan dat de meeste mensen weten wat een terugval is, zelfs als ze RFC6890 niet hebben gelezen. - belacqua
@jdthood Waarom niet je eigen antwoord toevoegen? Persoonlijk was ik niet bekend met de bsd-achtige resolvconf-manier om dingen te doen. Ik gaf de voorkeur aan de directe /etc/resolv.conf-aanpak en ik weet niet zeker wat het voordeel van het nieuwe Rube Goldberg-systeem is. (Evenzo met / etc / motd). - belacqua


resolvconf is nutteloos. Ik ben op een Linux-server en de mijne IP adres is statisch en mijn DNS servers zijn statisch. ik heb niet nodig resolvconfof Netwerkmanager.

Om het simpel te houden, is mijn beleid bij het werken op een server. Hoe minder complexiteit, hoe eenvoudiger het is om te beheren / repareren wanneer dingen kapot gaan.

Dus ik deed aptitude purge resolvconf en handmatig zeker gemaakt /etc/resolv.conf is geen symlink en zojuist een statisch bestand gemaakt. Voor het geval een programma probeert het bestand te wijzigen, deed ik dat chattr +i (onveranderlijk) voor /etc/resolv.conf als een voorzorgsmaatregel.


6
2017-10-16 15:41



Omdat resolvconf deel uitmaakt van het basissysteem, vraagt ​​het door het te verwijderen om problemen in de toekomst, tijdens de upgrade. - jdthood
Ik ben het eens met zowel de opmerking als het antwoord: bedenk hoeveel problemen dit heeft veroorzaakt en hoeveel ondersteuningsuren zijn besteed aan de vaststelling van dit 'probleem' en hoeveel IT-medewerkers tijd hebben besteed aan het zoeken naar antwoorden. Eenvoudig is het beste - ik heb mijn servers niet nodig om de DNS te veranderen in iets dat ik niet wil. - Mei


Het merendeel van het bovenstaande gaat ervan uit dat je een ongerept systeem hebt, maar de realiteit is vaak dat je verschillende dhcp-clients hebt geïnstalleerd, de netwerkbeheerder hebt uitgeschakeld in bepaalde vorige versies van Ubuntu, enz. Het zou de moeite waard kunnen zijn om het volgende te weten. Ik gebruik dnsmasq al een tijdje, maar heb het gedeïnstalleerd. Op dit moment had mijn systeem de volgende inhoud /etc/resolv.conf (wat een symbolische link is naar /run/resolvconf/resolv.conf op mijn systeem):

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

Het maakt niet uit hoe vaak ik ren sudo resolvconf -uof sudo dpkg-reconfigure resolvconf, het heeft de nameserver niet bijgewerkt naar degenen die ik in de NetworkManager heb ingesteld. De informatie die resolvconf gebruikt van de NetworkManager was aanwezig:

cat /run/resolvconf/interface/NetworkManager  
nameserver 8.8.4.4
nameserver 8.8.8.8

Het blijkt echter dat als er meerdere bestanden in deze map staan, dit bestand helemaal niet wordt gebruikt. De boosdoener was een bestand dat niet werd verwijderd bij de de-installatie van dnsmasq:

cat /run/resolvconf/interface/lo.dnsmasq                        
nameserver 127.0.0.1

Gewoon dit bestand verwijderen (en draaien sudo resolvconf -u daarna) opgelost mijn dns problemen:

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 8.8.4.4
nameserver 8.8.8.8 

Ik hoop dat dit anderen ook helpt met debuggen (de complexe interacties tussen al deze verschillende netwerktools). Als je gebruikt resolvconf zorg ervoor om te rennen ls /run/resolvconf/interfaces om te zien wat er is.


4
2017-12-27 12:54



Bedankt, dit was erg nuttig. Ik probeerde eerst de hoger gestemde antwoorden en niemand leek het te doen. Ik had geen extra bestanden in de /run/resolvconf/interface/ dir, maar mijn NetworkManager bestand had wat liefde nodig. Uw antwoord hielp dit probleem voor mij op te lossen. - mason81


U kunt de verbinding "AUTO ETH0" bewerken of wat de naam is die u gebruikt om verbinding te maken in NM. U kunt dit doen door met de rechtermuisknop te klikken op NM en "Verbindingen bewerken ..." te selecteren. Op het tabblad IPv4 kunt u "Automatische (DHCP) -adressen alleen" selecteren als "Methode" en NM stelt u in staat om de nameserveradres (sen) handmatig in te stellen, zelfs adressen worden via DHCP geleverd.


2
2018-05-04 14:29