Jak skonfigurować mój statyczny DNS w interfejsach?

60

Używam Ubuntu 12.04.

Mój /etc/network/interfacesplik składa się z:

# The loopback network interface  
auto lo  
iface lo inet loopback  


# The primary network interface  
auto eth0 
iface eth0 inet static  
address 192.168.1.58  
gateway 192.168.1.1
network 192.168.1.0  
broadcast 192.168.1.255
dns-nameservers 66.212.63.228 66.212.48.10  

Uruchomiłem polecenie: /etc/init.d/networking restart

Które odpowiedziały:

*Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces  
*Reconfiguring network interfaces...  
RTNETLINK answers: File exists  
Failed to bring up eth0  
[ OK ]  

Następnie uruchomiłem ping google.com i otrzymałem:

ping: unknown host google.com

Nie jestem pewien, czy moje interfejsy zostały odświeżone. Jak poprawnie skonfigurować moją sieć za pomocą moich statycznych adresów DNS?

dottedquad
źródło
1
Zrestartuj swój komputer. Nie uruchamiaj /etc/init.d/networking restart. Błąd jest spowodowany przez istniejącą trasę domyślną. Ta konfiguracja wygląda dla mnie poprawnie.
Matt H
2
Jak mówi Matt H, /etc/network/interfacesjest wybredny w stosunku do rzeczy, które już istnieją. Możesz mieć idealną konfigurację, ale już coś tam masz, a to narzeka. Jeśli jest to domyślna trasa, na którą narzeka, możesz ją usunąć, uruchamiając ip route del defaultkomputer w stan, w którym możesz przekazać zarządzanie tymi rzeczami/etc/network/interfaces
Azendale
Menedżer sieci zgodził się na kolejną ofiarę. Po prostu usuń te śmieci.
Owl

Odpowiedzi:

24

Ponieważ pytający podaje treść swojego /etc/network/interfaceswniosku, wnioskuję, że używa ifup do konfigurowania interfejsów. Ale ponieważ może on faktycznie używać NetworkManagera, omówię to również.

Jeśli używasz ifup, wejdą ustawienia DNS /etc/network/interfaces. Do każdego interfejsu dodajesz dns-*opcje odpowiednie dla serwerów nazw dostępnych w tym interfejsie. Na przykład, jeśli serwer nazw pod adresem 1.2.3.4 jest dostępny przez interfejs eth0, dodaj dns-nameservers 1.2.3.4do sekcji iface eth0.

Jeśli używasz NetworkManagera, ustawienia są wprowadzane w Edytorze połączeń (wskaźnik sieci | Edytuj połączenia ...) na karcie Ustawienia IPv4.

Wykonanie /etc/init.d/networking restartponownej konfiguracji interfejsów jest przestarzałe. Jeśli używasz, ifupnajpierw ifdownkażdy aktywny interfejs sieciowy, a następnie ifupkażdy interfejs. Jeśli używasz NetworkManagera, najpierw wyłącz sieć za pomocą wskaźnika (u góry pulpitu); następnie otwórz terminal i uruchom

sudo /etc/init.d/network-manager restart

a następnie włącz obsługę sieci za pomocą wskaźnika.

Lub możesz po prostu zrestartować komputer.

Odnośnie faktu, który /etc/init.d/networking restartspowodował

RTNETLINK answers: File exists
Failed to bring up eth0  

Oznacza to, że ifupdown uważa, że eth0to już działa. Użyj, ifdown --force eth0aby ifupdownprzestać wierzyć, że interfejs został już skonfigurowany.

Jeśli chodzi o komunikat „przestarzałe”, ta wiadomość nie jest już drukowana w Ubuntu 12.10, ale nadal należy pamiętać, że skrypty inits są „w drodze do wyjścia”. Aby ponownie uruchomić usługę foo, użyj service foo restartlub restart foo. Zauważ również, że jeśli chcesz zmienić konfigurację interfejsów, lepiej jest je pojedynczo przełączać niż polegać na ponownym uruchomieniu „sieci”.

jdthood
źródło
17

Jeśli żadna z powyższych czynności nie działa, pamiętaj, że Ubuntu dołącza tailplik do generowanego przez siebie pliku resolv.conf.

Spróbuj tego:

sudo nano /etc/resolvconf/resolv.conf.d/tail

Który otworzy pusty plik resolv.conf.d w edytorze nano tekst. Musisz umieścić adres serwera DNS w pierwszym wierszu tego pliku i pamiętaj, aby zakończyć wiersz znakiem powrotu karetki (naciśnij Enter), jak pokazano poniżej:

nameserver 10.20.1.2

Edycja pliku tail zamiast rzeczywistego pliku resolv.conf zapobiegnie utracie zmiany podczas ponownego uruchamiania systemu.

Musisz uruchomić, sudo resolvconf -uaby aktywować zmianę. Po tym powinieneś móc pingować google.com. Powodzenia!

Sean Huggans
źródło
Brzmi dobrze, ale mój system Ubuntu 14.04 nie używał tego pliku ogona. To nie jest rozwiązanie w moim przypadku. W każdym razie dzięki.
James T Snell
11

Wersja wiersza poleceń:

Powinieneś dodać swoje serwery nazw do /etc/resolvconf/resolv.conf.d/basepliku w ten sposób:

nameserver 66.212.63.228 
nameserver 66.212.48.10
pl1nk
źródło
Będę musiał wypróbować tę metodę za kilka godzin i wrócić do ciebie. Czy wiesz, dlaczego otrzymuję przestarzałą wiadomość i nie udało mi się wyświetlić wiadomości eth0?
dottedquad
1
Możesz użyć tego: $ ifdown eth0 && ifup eth0Przeczytaj więcej o tym problemie tutaj .
pl1nk
1
@dottedquad co zmienisz plik / etc / network / interfaces na to: auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.58 gateway 192.168.1.1 network 192.168.1.0 broadcast 192.168.1.255Uważaj, że to: auto eth0 iface eth0 inet staticdwie linie
pl1nk
1
Lepiej jest dodać informacje o serwerze nazw do połączeń NetworkManager (jeśli używasz NetworkManager), jak opisano w bodhi.zazen, lub do definicji interfejsów w / etc / network / interfaces (jeśli używasz ifup), niż dodać informacje statycznie i globalnie do /etc/resolvconf/resolv.conf.d/base.
jdthood
1
@jdthood Wygląda na to, że widziałeś moje komentarze i pytanie, a także inne odpowiedzi! Niektóre komentarze w górę [..] „
Przydałoby się
11

Wszystkie odpowiedzi, które odnoszą się do / etc / network / interfejsów zawierają niepoprawne stwierdzenia dns-nameserverszamiast dns-nameserver- poniżej powinny działać:

auto wlan0
iface wlan0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 8.8.8.8
dns-nameserver 8.8.4.4
dns-search something.network.com

(testowany na Ubuntu 15.04)

babelmonk
źródło
8
Ostrożny. Właśnie potwierdziłem, że dns-nameserver(liczba pojedyncza) nie działa na RaspberryPi + Raspian Jesse. Stwierdziłem, że musiałem użyć dns-nameservers(liczba mnoga). YMMV i tak dalej, po prostu próbuję pomóc kolejnej osobie ...
evadeflow
2
Sprawdź stronę podręcznika resolvconf (8) pod kątem użycia i opcji. W systemie Ubuntu 16.04.3 LTS jest napisane, że używasz jednej lub więcej linii dns-nameserver z pojedynczym adresem IP w linii lub możesz użyć dns-nameserver i rozdzielonej spacjami listy adresów IP.
jla
dns-nameserverczy dns-nameservers? ponieważ wiki.ubuntu.com/KvmWithBridge mówi „serwery” ...
Thufir
Zdecydowanie nie działa dla mnie. Nie można zagłosować, za mało punktów.
Sowa
Tak, to jest miłe i konsekwentne! Przepraszamy za zamieszanie, sprawdź oba i sprawdź powyższe komentarze, ponieważ wydaje się, że różne warianty Ubuntu / Debian / Raspian są różne.
babelmonk
6

Najłatwiejszą metodą konfiguracji serwerów DNS jest użycie NetworkManager

Pod IPv4 wypełnij swoje serwery DNS

wprowadź opis zdjęcia tutaj

Pantera
źródło
2
Zapomniałem wspomnieć, że nie mam zainstalowanej jedności ani gnoma. Gnome installatio to mój następny projekt.
dottedquad
Nie pozwoli mi tego zapisać. dlaczego to może być?
josh
4

Dodałem, że mogłem obejść ten problem przy instalacji bezobsługowego serwera Ubuntu

nameserver 8.8.8.8

... po odpowiednim interfejsie w / etc / network / interfaces:

auto wlan0
iface wlan0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
dns-nameservers 8.8.4.4

Mam nadzieję, że pomoże to późniejszym użytkownikom!

corq
źródło
bo dns-nameserversczy przecinek można rozdzielić 8.8.8.8, 8.8.4.4?
Thufir
1
@Thufir spaces wiki.debian.org/NetworkConfiguration
Philippe Gachoud
4

Uwaga: ostrożne używanie bez bezpośredniego dostępu do urządzenia spowoduje przerwanie połączenia ...

używam

sudo ifdown eth0

następnie

sudo ifup eth0

Zresetuje i zwolni wszystko ...

Jeśli napotka błędy związane z konfiguracją, możesz użyć:

sudo ifdown eth0 --force
użytkownik294233
źródło
3

To zadziałało dla mnie

sudo vi /etc/resolvconf/resolv.conf.d/base

i dodaj:

nameserver <add your router ip>

Biegać:

sudo resolvconf -u

Używam podstawowej instalacji serwera Ubuntu.

Bongo
źródło
2

Brakuje specyfikacji podsieci w pliku interfejsów.

Dodaj maskę 255.255.255.0do /etc/network/interfacesponiżej linii sieci.

Brian
źródło
1

Z jakiegoś powodu dns-nameserversstwierdzenie nic nie robi w moim przypadku. Inne odpowiedzi nie są zawarte w książce, ponieważ pomijają się, dnsmasqponieważ jest używana w Ubuntu.

Aby zrobić to dobrze, edytuj /etc/dnsmasq.conf

Dodaj swoje serwery nazw na dole pliku:

server=8.8.8.8
server=8.8.4.4

Uruchom ponownie dnsmasq, aby użyć nowych ustawień: sudo service dnsmasq restart

Źródło: https://unix.stackexchange.com/a/163506/187949

DustWolf
źródło
1

Miałem ten problem. Myślałem, że oszaleję. Za każdym razem /etc/resolv.conf, gdy edytowałem , usuwałem moją konfigurację. Okazuje się, że jakiś totalny wariat rozproszył debiana z menedżerem sieci, który zastępuje wszystkie moje ustawienia sieciowe.

Tak to naprawiłem:

1) sudo apt-get purge network-manager

Pozbywa się to nowego, przerażającego narzędzia, które uniemożliwia prawidłowe działanie wszystkich konfiguracji.

2) Edytuj /etc/network/interfacesplik:

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

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto enp0s25
iface enp0s25 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        gateway 192.168.1.1

3) Edytuj /etc/resolv.conf:

nameserver 8.8.8.8
nameserver 8.8.4.4

4) Uruchom ponownie.

Gratulacje, masz teraz rozsądne konfiguracje, które znów działają.

Sowa
źródło
0

Możesz skonfigurować ten interfejs również w innym pliku, ponieważ masz więcej bram.

Szczegóły są tutaj .

antivirtel
źródło