Jak mohu přidat server DNS pomocí resolv.conf?

192

Je/etc/resolv.conf zbytečný v Ubuntu 12.04 LTS (Precise Pangolin)?

Vidím, že informace serveru DNS jsou nyní uloženy v síťovém manažeru . Nástroj příkazového řádkunmcli může uvést, že pro vás.

Pokud chci přidat další server DNS , přidá jej do/etc/resolv.conf pomocí příkazuresolvconf Nápověda balíčku?

    
dané PnotNP 03.05.2012 02:00

18 odpovědí

130

Pokud/etc/resolv.conf obsahujenameserver 127.0.0.1, přidání položek do/etc/resolvconf/resolv.conf.d/tail nebude opravdu dělat nic užitečného.

Pokud používáte NetworkManager, měli byste místo toho staticky přidat adresy jmenných serverů pomocí indikátoru sítě : Upravit připojení ... | Upravit ... | Nastavení IPv4 | Další servery DNS .

Pokud skutečně chcete přidat více položek do/etc/resolv.conf, vytvořte/etc/resolvconf/resolv.conf.d/tail a přidejte je tam.

Stejně jako u všech vydání Ubuntu doporučujeme přečíst si poznámky k verzi Ubuntu, které jsou k dispozici zde:

Sekce Desktop a Common Infrastructure obsahují odkaz na

  • Odkaz týkající se změn v infrastruktuře DNS v 12.04.
odpověděl stgraber 03.05.2012 02:21
129

Našel jsem jiný přístup zde , který zahrnuje přidání řádku, jako je níže, do/etc/dhcp/dhclient.conf:

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

Podobně jsem našel i třetí přístup zde , který zahrnuje přidání řádků do/etc/network/interfaces:

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

Aktualizace: Zde je oficiální dokumentace pro třetí přístup.

    
odpověděl Randall Cook 09.05.2012 00:48
85

Zní to, jako byste mluvili o balíčku resolvconf.

Nainstalujte balík resolvconf .

Spustit

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

Horní část souboru je strašidelné varování. Soubor /etc/resolv.conf je automaticky generován z obsahu tohoto souboru; varování je tam, takže se dostanete do souboru /etc/resolv.conf, když je generován /etc/resolv.conf. Na konec souboru přidejte

nameserver <ip_of_nameserver>

Stiskněte Ctrl x a při uložení souboru odpovědět ano. Pro dokončení obnovte soubor /etc/resolv.conf, takže změny se použijí právě teď:

sudo resolvconf -u

Poté zkontrolujte obsah /etc/resolv.conf, abyste viděli, že linka, kterou jste přidali, je nyní. Dále to bude stále při příštím spuštění počítače nebo při restartování síťové služby, podle toho, co nastane dříve.

    
odpověděl Azendale 01.07.2011 01:41
29

Níže vám ukážeme nejlepší způsob, jakým jsem zjistil, že spouštím Ubuntu Server edition a používám ifup spíše než NetworkManager.

Ve skutečnosti to pro mě usnadnilo :) tím, že to vše uvedete do souboru / etc / network / interfaces. Stejná konfigurace, jaké jste zapsali do adresáře resolv.conf, mohou nyní být ve stejném souboru jako konfigurace síťového adaptéru jako v následujícím příkladu:

# 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

Doufám, že to pomůže a usnadní to, co dělá pro mě, teď můžeme vytvořit statické adresy IP a přidat do jmenných serverů a dns doménu vše v jednom souboru:)

    
odpověděl Joseph Mituzas 24.05.2012 00:55
16

Mine používá Ubuntu Server 12.04. Udělal jsem následující změny a restartoval server (obvykle to lze provést pouze tím, že přivedete síťové rozhraní, to znamenáifdown eth0 neboifup eth0).

V souboru/etc/resolvconf/resolv.conf.d/base jsem přidal následující položky:

nameserver 8.8.8.8
nameserver 8.8.4.4

Doufám, že výše uvedené pomůže!

    
odpověděl Don Chai 19.03.2013 06:56
11

Můžete použít nástroj NetworkManager, jak je uvedeno v odpovědi Franka, ale pokud byste raději ručně upravili/etc/resolv.conf, můžete to udělat tak, že je odstraníte (je to vlastně symbolický odkaz) a pak vytvoříte nový prostý soubor s požadovaným obsahem. Nástrojresolvconf zapisuje pouze do souboru/run/resolvconf/resolv.conf.

    
odpověděl Jase 04.05.2012 16:38
8

Poznámka: Tato odpověď byla pro poněkud jinou předběžnou verzi dotazu se zaměřením pouze na předběžný požadovaný název serveru.

Toto funguje před 12.04:

Upravte/etc/dhcp3/dhclient.conf a přidejte:%prepend domain-name-servers 127.0.0.1;

(Ve skutečnosti je tento řádek již přítomen, vše, co musíte udělat, je zrušit komentář.)

    
odpověděl belacqua 06.03.2011 21:26
6

resolvconf je zbytečné. Jsem na serveru Linux a můj adresa IP je statický a můj DNS jsou statické. Nepotřebuji resolvconf nebo NetworkManager .

Při práci na serveru je to jednoduché. Čím méně složitosti, tím jednodušší bude spravovat / opravit, když se věci rozpadnou.

Takže jsem udělalaptitude purge resolvconf a ručně jsem se ujistil, že/etc/resolv.conf není symbolický odkaz a stačí vytvořit statický soubor. Jen v případě, že se program pokusí změnit soubor, učinil jsemchattr +i (neměnný) pro/etc/resolv.conf jako preventivní opatření.

    
odpověděl Mark 16.10.2012 17:41
4

Většina z výše uvedených předpokládá, že máte nedotčený systém, ale skutečnost je často taková, že instalujete různé klienty dhcp, vypnete správce sítě v některé předchozí verzi Ubuntu apod. Mohlo by to být užitečné poznat následující. Používám dnsmasq na chvíli, ale odinstaloval ji. V současné době můj systém měl následující obsah/etc/resolv.conf (což je symbolický odkaz na/run/resolvconf/resolv.conf v mém systému):

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

Nezáleží na tom, jak často běžímsudo resolvconf -u nebosudo dpkg-reconfigure resolvconf, neaktualizoval server jmen s těmi, které jsem nastavil v nástroji NetworkManager. Informace, které používá server resolvconf v síti NetworkManager:

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

Ukázalo se však, že pokud je v tomto adresáři více souborů, nemusí být tento soubor používán vůbec. Původce byl soubor, který nebyl odstraněn při demontáži dnsmasq:

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

Právě odebrání tohoto souboru (a spuštěnímsudo resolvconf -u poté) vyřešily mé dns potíže:

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 

Doufám, že to pomůže ostatním s ladění (komplexní interakce mezi všemi těmito různými síťovými nástroji). Pokud používáteresolvconf, nezapomeňte spustitls /run/resolvconf/interfaces, abyste zjistili, co se děje.

    
odpověděl Anne van Rossum 27.12.2014 13:54
2

Můžete upravit připojení "AUTO ETH0" nebo jakéhokoli jména, které používáte k připojení v NM. Můžete to udělat kliknutím pravým tlačítkem na NM a výběrem možnosti "Upravit připojení ...". Na kartě IPv4 můžete jako "Metoda" zvolit pouze "Automatické (DHCP) adresy" a NM vám umožní ručně nastavit adresu (adresy) serverů adres, a to i přes DHCP.

    
odpověděl Frank Barcenas 04.05.2012 16:29
2

Právě jsem smazal odkaz v/etc/resolv.conf a vytvořil pravidelný soubor s adresy jmenných serverů. Funguje to a já nevidím žádné důvody k tomu, že jsem použil tuto poměrně zvláštní konstrukci, kterou vývojáři Ubuntu vytvořili.

    
odpověděl Ivan 19.03.2013 07:34
1

Opravil jsem to změnou pořadí zdrojů. Přesunuldns zdroj předmdns in /etc/nsswitch.conf:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Toto nastavení můžete zachovat a stále používat tento server mezipaměti.

    
odpověděl Dan B 13.10.2012 03:47
1

A co:

  

sudo dpkg - změňte konfiguraci resolvconf

Před tím použijte správce sítě pro změnu adresy DNS a změňte metodu na

  

Pouze adresy automatické (DHPC)

Spusťte příkaz výše a restartujte. To mi dalo řešení.

    
odpověděl Adige72 03.02.2013 21:40
1

Přidání mého bitu do již dlouhého seznamu, tady je jiný způsob (testováno na 12.04):

Upravte/run/resolvconf/interface/NetworkManager podle svých potřeb. Zde je příklad:

search foobar.com example.com
nameserver 192.168.1.1

Potom, jak bylo uvedeno pro většinu ostatních příkladů, proveďtesudo resolvconf -u. Nyní najdete vášresolv.conf vypadat takto:

nameserver 192.168.1.1
nameserver 127.0.0.1
search foobar.com example.com

Stále se mi nelíbí způsob, jakým je nyní implementován (zdá se, že Ubuntu potřebuje službu pro každé foo to dělá) a upřednostňoval by jistýresolv.conf jistý. Ale tento přístup se mi zdá být pro mne tím nejlepším kompromisem. Přidané "localhost-NS" by nemělo příliš bolet.

    
odpověděl Izzy 28.09.2013 23:32
1

vi /etc/network/interfaces


This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The primary network interface
allow-hotplug eth0


# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto eth0         <<----- change this comment with the #
iface eth0 inet dhcp
    
odpověděl Roy Rogers 04.07.2014 12:33
1

Jedná se o velice populární otázku se sbírkou standardních možných odpovědí, z nichž všechny, IMO, jsou docela šokující. Já pro jednoho vždycky měl problémy s tím, aby Ubuntu respektoval nastavení DNS, které jsem nastavil v síti NetworkManager - zejména nastavení statických DNS serverů pouze s adresami "Automatická (DHCP)" - a dnes jsem nakonec přišel na to, co bylo v podstatě špatné.

Problém je v interakci mezi resolvconf a NetworkManager. resolvconf má tento soubor nazvaný/etc/resolvconf/interface-order. Alespoň v mých systémech, NetworkManager není v tomto souboru vůbec (s výjimkou, že je na konci zakryta * wildcard). Takže co se stane, nejnovější zpráva dhclientu k resolvconf má přednost před nic, co má NetworkManager říct.

Alespoň v mém případě byla skutečnou odpovědí přidat

NetworkManager

v horní části nebo v blízkosti vrcholu/etc/resolvconf/interface-order.

(Ano, vím, že mnozí lidé jen říkají "odinstalovat resolvconf", což se mi zdá jako špatný nápad samo o sobě. Ale víc než to, alespoň wily a xenial považují za rozhodující součást systému [ tj. ubuntu-minimal závisí na tom], takže by bylo obtížné udržet systém v konzistentním, aktualizovaném stavu bez resolvconf.)

Na požádání mohu poskytnout více podrobností o tom, jak jsem si to uvědomil. Stručně řečeno, nahradil jsem spustitelný soubor resolvconf s obalem sbalovacího obalu kolem něj, který vykládal jeho argumenty, vstupy, výstupy a stderr do souborů; a přidal set -x do aktualizačních skriptů resolvconf.

    
odpověděl Steven Collins 31.05.2016 20:32
0

Dalším způsobem je definovat dns servery určené pro dockery na adrese:

/etc/docker/daemon.json

Pokud nemáte takový soubor, vytvořte jej:

{
    "dns": ["10.0.0.2", "8.8.8.8"]
}

Zdroj: Odkaz

Přečtěte si také: Odkaz

    
odpověděl AndreyKo 04.01.2017 13:27
0

Chcete-li změnit DNS, postupujte podle následujících pokynů: Odkaz

  1. Přejít na síť

  2. Vyberte připojení, pro které chcete nakonfigurovat službu DNS.

  3. Chcete-li změnit nastavení bezdrátového připojení, vyberte kartu Bezdrátové připojení a vyberte příslušnou bezdrátovou síť.

  4. Klepněte na šipku (vpravo) a v zobrazeném okně vyberte kartu Nastavení IPv4 nebo Nastavení IPv6.

  5. Pokud je zvolená metoda Automatická (DHCP), otevřete rozevírací nabídku a místo toho zvolte Automatická (DHCP) adresa. Pokud je metoda nastavena na něco jiného, ​​neměňte ji.

  6. Do pole DNS servery zadejte IP adresy DNS oddělené čárkou

odpověděl Ferroao 10.11.2017 21:54