resolv.conf nie jest ustawiany przy ponownym uruchomieniu, gdy sieć jest skonfigurowana dla statycznego adresu IP

17

Podczas konfigurowania komputera do używania statycznego adresu IP występuje problem z rozpoznawaniem nazw w wersji Ubuntu 12.04 Server.

W / etc / network / interfaces:

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1

Uruchomienie $ sudo apt-get upgradepowoduje wyświetlenie komunikatu „Nie można pobrać ...”:

. . . W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise-backports/universe/i18n/Translation-en_US Something wicked happened resolving 'us.archive.ubuntu.com:http' (-5 - No address associated with hostname)
[...]

Kiedy zmieniam moje / etc / network / interfaces na:

auto eth0
iface eth0 inet dhcp

Wszystko dziala.

Przejrzenie pliku /etc/resolv.conf zawiera więcej wskazówek.

W przypadkach, w których otrzymywałem problem, resolv.conf był pusty; nie określono serwerów nazw. Potem zmieniłem na DHCP ze statycznego i zrestartowałem sieć; Plik /etc/resolv.conf został zmieniony na: „nameserver 192.168.1.1”.

Przełączenie z powrotem na DHCP i ponowne uruchomienie nie powoduje usunięcia wpisu serwera nazw. Ale kiedy zrestartowałem system z ustawieniem statycznym, resolv.conf był pusty. Kiedy ponownie uruchamiam system z ustawionym DHCP, resolv.conf ma serwer nazw 192.168.1.1. Wygląda na to, że problem polega na tym, że problem z rozwiązać .conf nie jest zapisywany poprawnie? Który pakiet / kod jest odpowiedzialny za pisanie do resolv.conf? Czy jest jakiś konkretny pakiet, w którym mogę rzucić okiem na otwarte problemy?

AKTUALIZACJA: istream opublikował dobry artykuł omawiający zmiany w resol.conf w 12.04. http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

Kenneth Koontz
źródło
2
Jeśli wszystko działa poprawnie podczas używania DHCP, to jakim „problemem” jest to, że chcesz sugestie „naprawić”. Jak wygląda Twoja sieć LAN? Jakiego rodzaju routera używasz? (Co to jest 192.168.1.1?) Jakie serwery DNS określasz, gdy używasz statycznego adresu IP?
irracjonalny John
1
Zaktualizowano tytuł, aby dokładniej odzwierciedlał symptomy i dodawał więcej ustaleń
Kenneth Koontz
+1 za edycję pytania i tytułu w celu ich ulepszenia, nawet jeśli masz już swoją odpowiedź!
irracjonalny Jan
1
Dodano odniesienie istream do zmian w dns w Ubuntu 12.04.
Kenneth Koontz

Odpowiedzi:

16

Zgodnie ze stroną manuala resolvconf (przykład podany na stronie man) dodaj następujące elementy do swojego / etc / network / interfaces w konfiguracji statycznej:

dns-nameservers [IP address(es) of your DNS]     
dns-search      [your dns-search strings (optional)]
ukjola
źródło
Doskonały. To działa!
Kenneth Koontz
Dziwne jest to, że w 11.10 nie musiałem określać serwerów nazw dns.
Kenneth Koontz
Zgadza się. W 12.04 Ubuntu zaczął używać resolvconf do obsługi resolv.conf. To resolvconf czyta dns-nameserversopcję w / e / n / i.
jdthood
1

Czy na pewno podałeś 192.168.1.1wartość DNS podczas konfigurowania statycznego adresu IP?

Nie wiem jak to zrobić z wiersza poleceń, ale korzystanie z System Settings -> NetworkGUI również powinno działać, nie? Myślę tylko, że chcesz czegoś takiego jak zrzut ekranu poniżej? Czy też nie rozumiem, co próbujesz zrobić?

Konfiguracja sieci ze statycznym adresem IP, domyślną trasą, serwerem DNS

Uwaga: zignoruj ​​wartości w lewym oknie. To tylko moje wartości z DHCP. Nie zadałem sobie trudu, aby zapisać konfigurację statyczną, ponieważ starałem się zilustrować, o czym myślę.

Nawiasem mówiąc, użyłem, 192.168.1.1ponieważ tego właśnie używałeś. Ale możesz również użyć adresów IP dla dowolnych prawidłowych serwerów DNS. Na przykład 8.8.8.8i / lub 208.67.222.222powinien również działać.

irracjonalny John
źródło
Dzięki za rozwiązanie. Jednak nie używam pulpitu.
Kenneth Koontz
@kennethkoontz Nie rozumiem. Czy korzystasz z serwera Ubuntu? Jeśli nie korzystasz z typowej instalacji 12.04 na komputerze, edytuj swoje pytanie i dodaj do niego te informacje.
irracjonalny Jan
2
Przepraszam za zamieszanie. Powinienem powiedzieć: „Nie używam wersji komputerowej. Używam wersji serwerowej”. Zaktualizuję post z pytaniami, aby usunąć niejednoznaczności.
Kenneth Koontz
0

Jeśli nie chcesz (lub nie możesz) użyć apletu Network Manager do skonfigurowania ustawień sieciowych, znajduję właściwy sposób na skonfigurowanie „statycznej” konfiguracji IP, na wypadek, gdy nie masz dostępnego serwera DHCP, jest najem statyczny na dhclient.conf. Tam powinieneś podać serwer nazw, który zostanie zapisany w resolv.confpliku, gdy dhclient powróci do stanu statycznego.

Jeśli jednak nie chcesz ubrudzić sobie rąk, nadal zalecamy użycie interfejsu GUI do określenia adresu serwera DNS w ustawieniach IP połączenia, jak w /ubuntu//a/127537/33305 .

Szymon
źródło
0

OP używa serwera ed. NetworkManager nie ma zastosowania ... ale kto wie, może zostanie dodany tylko w celu zwiększenia złożoności serwera.

Jeśli o to chodzi, dlaczego na świecie resolvconf został dodany do serwera ed ... DLACZEGO !! ??!?

W każdym razie, aby odpowiedzieć na twoje pytanie, dodaj:

/ etc / network / interfaces

coś takiego:

auto eth0 inet static
     dns-nameservers ns1.mydnsservers.com ns2.mydnsservers.com

Ważną opcją są „dns-nameservers”.

jbowen7
źródło