it-swarm.dev

Jak přidám server DNS přes resolv.conf?

Je /etc/resolv.conf k ničemu v buntu 12.04 LTS (Přesný Pangolin)?

Vidím, že informace o serveru DNS jsou nyní uloženy v NetworkManager . Nástroj příkazového řádku nmcli vás může vypsat.

Pokud chci přidat ještě jeden DNS server, přidá ho na /etc/resolv.conf pomocí nápovědy k balíčku resolvconf?

210
PnotNP

Pokud /etc/resolv.conf obsahuje nameserver 127.0.0.1 pak přidávání záznamů do /etc/resolvconf/resolv.conf.d/tail opravdu neudělá nic užitečného.

Pokud používáte NetworkManager, měli byste místo toho staticky přidat adresy nameserverů pomocí síťového indikátoru : Upravit připojení ... | Upravit ... | Nastavení IPv4 | Další servery DNS .

Pokud opravdu chcete přidat další položky do /etc/resolv.conf, vytvořit /etc/resolvconf/resolv.conf.d/tail a přidejte je tam.

Stejně jako u každého vydání Ubuntu se doporučuje přečíst si poznámky k vydání Ubuntu, které jsou k dispozici zde:

Sekce Desktop a Common Infrastructure obsahují odkaz na

139
stgraber

Našel jsem další 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 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.

136
Randall Cook

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

Nainstalujte balíček resolvconf .

Běh

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

V horní části souboru je děsivé varování. Soubor /etc/resolv.conf je automaticky generován z obsahu tohoto souboru; varování existuje, takže při generování souboru /etc/resolv.conf se dostane do souboru /etc/resolv.conf. Na konec souboru přidejte

nameserver <ip_of_nameserver>

Lis Ctrlx a odpovězte ano pro uložení souboru. Chcete-li dokončit, regenerujte /etc/resolv.conf, aby se změny projevily hned teď:

Sudo resolvconf -u

Pak zkontrolujte obsah souboru /etc/resolv.conf, abyste viděli, že je tam přidaný řádek. Dále bude stále k dispozici při příštím spuštění počítače nebo restartování síťové služby, podle toho, co nastane dříve.

94
Azendale

Níže vám ukážu nejlepší způsob, jaký jsem našel od spuštění Ubuntu Server Edition a používám ifup spíše než NetworkManager.

Vlastně to pro mě usnadnili :) vložením všeho do souboru/etc/network/interfaces. Stejné konfigurace, jaké byste napsali na resolv.conf, mohou být nyní ve stejném souboru jako konfigurace síťových adaptérů jako v příkladu níže:

# 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 stejně jako pro mě, nyní můžeme vytvářet statické IP adresy a přidávat do jmenných serverů a domén dns vše v jednom souboru :)

31
Joseph Mituzas

Mine provozuje Ubuntu Server 12.04. Provedl jsem následující změny a restartoval jsem server (obvykle to lze provést pouze snížením síťového rozhraní, tj. ifdown eth0 nebo ifup eth0).

V souboru /etc/resolvconf/resolv.conf.d/base Přidal jsem následující záznamy:

nameserver 8.8.8.8
nameserver 8.8.4.4

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

18
Don Chai

Můžete použít NetworkManager, jak je uvedeno v Frankově odpovědi, ale pokud byste raději ručně upravili /etc/resolv.conf, můžete tak učinit tak, že jej odstraníte (ve skutečnosti je to odkaz na odkaz) a poté vytvoříte nový obyčejný soubor s požadovaným obsahem. Obslužný program resolvconf zapíše pouze do souboru /run/resolvconf/resolv.conf.

12
Jase

Poznámka: Tato odpověď byla pro poněkud odlišnou verzi předběžného sloučení otázky, se zaměřením pouze na předběžné zpracování požadovaného serveru názvů.

Toto funguje před 12.04:

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

(Ve skutečnosti je tento řádek již přítomen; stačí zrušit jeho komentář.)

9
belacqua

resolvconf je k ničemu. Jsem na Linuxovém serveru a můj IP adresa je statický a mé DNS servery jsou statické. Nepotřebuji resolvconf nebo NetworkManager .

Při práci na serveru je moje politika jednoduchá. Čím menší složitost, tím snazší bude správa/oprava, když se věci rozbijí.

Takže jsem udělal aptitude purge resolvconf a ručně se ujistil /etc/resolv.conf není symlink a právě vytvořil statický soubor. Pro případ, že se program pokusí soubor změnit, udělal jsem chattr +i (neměnné) na /etc/resolv.conf jako preventivní opatření.

7
Mark

Většina z výše uvedených předpokládá, že máte nedotčený systém, ale realita je často taková, že instalujete různé klienty dhcp, deaktivujete správce sítě v určité předchozí verzi Ubuntu atd. Může být užitečné znát následující. Dnsmasq už nějakou dobu používám, ale odinstaloval jsem ho. V současné době měl můj systém 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 spustím Sudo resolvconf -u nebo Sudo dpkg-reconfigure resolvconf, neaktualizoval jmenný server na ty, které jsem nastavil v NetworkManageru. Informace resolvconf, které používá NetworkManager, byly přítomny:

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žit vůbec. Viníkem byl soubor, který nebyl odstraněn s odinstalací dnsmasq:

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

Pouze odebírá tento soubor (a běží Sudo resolvconf -u poté) vyřešil moje problémy s dns:

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 také s laděním (složité interakce mezi všemi těmito různými síťovými nástroji). Pokud používáte resolvconf nezapomeňte spustit ls /run/resolvconf/interfaces vidět, co tam je.

6
Anne van Rossum

Právě jsem smazal odkaz v /etc/resolv.conf a vytvořili pravidelný soubor s adresami nameserverů. Funguje to a nevidím důvody, proč používat tuto poněkud podivnou konstrukci, kterou vývojáři Ubuntu vytvořili.

4
Ivan

Přidání mého kousku do již dlouhého seznamu, zde je další způsob (testováno dne 12.04):

Upravit /run/resolvconf/interface/NetworkManager podle vašich potřeb. Zde je příklad:

search foobar.com example.com
nameserver 192.168.1.1

Poté, jak je uvedeno pro většinu ostatních příkladů, udělejte Sudo resolvconf -u. Nyní najdete své resolv.conf vypadá 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, které dělá), a raději bych si prostý resolv.conf určitě. Tento přístup se mi však zatím zdá být nejlepším kompromisem. Přidaný „localhost-NS“ by neměl příliš ublížit.

3
Izzy

Můžete upravit připojení „AUTO ETH0“ nebo jakýkoli název, který používáte pro připojení v NM. To lze provést kliknutím pravým tlačítkem myši na NM a výběrem možnosti „Upravit připojení ...“. Na kartě IPv4 můžete jako „Metoda“ vybrat „Pouze automatické adresy (DHCP)“ a NM vám umožní manuálně nastavit adresu jmenného serveru) i adresy jsou doručovány přes DHCP.

3
Frank Barcenas

Opravil jsem to změnou pořadí zdrojů. Přesunul jsem zdroj dns před mdns in /etc/nsswitch.conf:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Můžete si ponechat svá nastavení a tímto způsobem používat místní server pro ukládání do mezipaměti.

2
Dan B
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
2
Roy Rogers

Co takhle:

Sudo dpkg-rekonfigurovat resolvconf

Předtím změňte adresu DNS pomocí Správce sítě a změňte metodu na

Pouze automatické (DHPC) adresy

Poté spusťte výše uvedený příkaz a restartujte počítač. To pro mě řešení znamenalo.

2
Adige72

Jedná se o velmi oblíbenou otázku se sbírkou standardních možných odpovědí, které jsou všechny, IMO, dost hackerské. Vždy jsem měl problémy s tím, aby Ubuntu respektoval nastavení DNS, které jsem nastavil v NetworkManageru - zejména nastavení statických serverů DNS pouze s adresami „Automaticky (DHCP)“ - a dnes jsem konečně zjistil, co bylo AKTUÁLNĚ VADNÉ.

Problém je v interakci mezi resolvconf a NetworkManager. Tento resolvconf má tento soubor s názvem /etc/resolvconf/interface-order. Alespoň v mých systémech NetworkManager není v tento soubor vůbec (kromě toho, že je na konci * divoká karta na konci). Stane se tedy, že nejnovější zpráva dhclienta resolvconf má přednost před čímkoli, co NetworkManager musí říct.

Skutečnou odpovědí tedy bylo přinejmenším v mém případě dodat

NetworkManager

na vrcholu nebo blízko vrcholu /etc/resolvconf/interface-order.

(Ano, vím, že mnoho lidí mi prostě říká „odinstalovat resolvconf“, což se samo o sobě zdá jako špatný nápad. Ale víc než to, alespoň chytro a xenial považují resolvconf za životně důležitou součást systému [tj. Ubuntu -minimální závisí na tom], takže by bylo obtížné udržet váš systém v konzistentním, aktualizovaném stavu bez resolvconf.)

Na požádání mohu poskytnout více podrobností o tom, jak jsem na to přišel. ( EDITOVAT : zjevně jsem tak neučinil, když jsem o to požádán, omlouvám se. :) V kostce jsem nahradil spustitelný soubor resolvconf obalem Shell kolem něj, který vyhodil jeho argumenty, vstup, výstup a stderr do souborů; a přidal set -x do aktualizačních skriptů resolvconf.

( EDITOVAT : Já mohu říci, že to, co tím myslím první částí je že jsem použil Sudo k přesunutí skutečného spustitelného resolvconf, který lze najít pomocí příkazu what nebo type. Potom vytvořte skript Shell, který nakonec pouze provede přesunutý resolvconf, ale také echos argumenty do nějakého souboru a použije přesměrování Shell posílat stdin, stdout a stderr do různých jiných souborů. Nevzpomínám si, kde jsou „aktualizační skripty resolvconfu“ a které v současné době nelze snadno zkontrolovat. Myslím, že mnoho linuxových geeků dokáže zjistit, co myslím, možná nějaký dobrý samaritán bude uveďte ještě více podrobností v komentáři.)

2
Steven Collins

Dalším způsobem je definování dns serverů specifických pro docker na:

/etc/docker/daemon.json

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

{
    "dns": ["1.1.1.1", "1.0.0.1"]
}

Zdroj , viz také toto .

1
AndreyKo

Chcete-li změnit DNS, postupujte podle pokynů v: https://developers.google.com/speed/public-dns/docs/using

  1. Přejít na síť

  2. Pro připojení, které chcete konfigurovat DNS, klikněte na zařízení.

  3. Klepněte na kartu Nastavení IPv4 nebo IPv6.

  4. Pokud je vybraná metoda „Automatická“, vyberte místo toho „Pouze automatické (DHCP) adresy“. Pokud je metoda nastavena na něco jiného, ​​neměňte ji.

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

EDIT: Protože se zdá, že to u novějšího ubuntu nefunguje dobře, rád bych:

Sudo systemctl disable systemd-resolved.service
Sudo gedit /etc/resolvconf/resolv.conf.d/head 
# add
nameserver 8.8.8.8
nameserver 8.8.4.4

Sudo resolvconf --enable-updates
Sudo resolvconf -u

Zdroj: https://pchelp.ricmedia.com/set-custom-dns-servers-linux-network-manager-resolv-conf/

1
Ferroao
  1. Přidejte dočasný DNS. Upravit /etc/resolv.conf.

    nameserver 1.1.1.1
    nameserver 1.0.0.1
    
  2. Nainstalujte nebo aktualizujte resolvconf.

    Sudo apt-get install -y resolvconf
    
  3. Přidejte svůj jmenný server do /etc/resolvconf/resolv.conf.d/tail

    nameserver 1.1.1.1
    nameserver 1.0.0.1
    
  4. Restartujte počítač: reboot

0
xiaoliuzi