Dostałem pliki mini linux
, które uruchamia się bezpośrednio firefox
. Działa to wszystko, co powinno robić, tyle że nie mam połączenia z Internetem.
W sieci mamy 3 serwery DNS, które wszystkie działają. Też mogę pingować. Ale gdy próbuję ping google.de
lub wget google.de
pojawia się bad address
błąd.
nslookup google.de
działa z jakiegoś powodu.
Wyśledziłem problem do mojego resolv.conf
systemu rozruchowego, który nie ma takiej samej zawartości jak ta resolv.conf
, którą umieściłem w .iso
pliku.
Próbowałem zrozumieć wszystkie czynniki związane z tworzeniem i modyfikowaniem resolv.conf
. Nie jestem do końca pewien, czy mam to wszystko, ale zdecydowanie nie znalazłem tam swojego rozwiązania.
Tak więc, jako ostatni wysiłek, próbowałem uczynić resolv.conf
plik niezmiennym przy użyciu
:~# chattr +i /etc/resolv.conf
Ku mojemu zdziwieniu, podczas przebudowy i ponownego rozruchu nazwa mojego pliku została zmieniona, resolv.conf~
a na jego miejscu był ten sam standardowy plik, który mnie prześladował.
Zawartość pliku pozwala mi wierzyć, że pobiera informacje z samej sieci. Podczas uruchamiania .iso
w Virtualbox bez dostępu do Internetu mój plik jest przechowywany w niezmienionej postaci.
Próbowałem zmienić, /etc/dhcp/dhclient.conf
aby nie pobierać informacji z sieci, usuwając domain-name-server
i domain-name-search
z request
części pliku.
Niestety nie zadziałało.
Nie mam zainstalowanego NetworkManagera. ISO jest oparty na Ubuntu 14.04.
Prawdopodobnie brakuje istotnych informacji. Z przyjemnością to zapewniam.
AKTUALIZACJA:
Myślę, że znalazłem plik, który usuwa się resolv.conf
.
Wygląda na to /usr/share/udhcpc/default.script
#!/bin/sh
# udhcpc script edited by Tim Riker <[email protected]>
[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
RESOLV_CONF="/etc/resolv.conf"
[ - n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"
case "$1" in
deconfig)
/bin/ifconfig $interface 0.0.0.0
for i in /etc/ipdown.d/*; do
[ -e $i ] && . $i $interface
done
;;
renew|bound)
/bin/ifconfig $interface $ip $BROADCAST $NETMASK
if [ -n "$router" ] ; then
echo "deleting routers"
while route del default gw 0.0.0.0 dev $interface ; do
:
done
metric=0
for i in $router ; do
route add default gw $i dev $interface metric $((metric++))
done
fi
echo -n > $RESOLV_CONF # Start ----------------
[ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
for i in $dns ; do
echo adding dns $i
echo nameserver $i >> $RESOLV_CONF
done
for i in /etc/ipup.d/*; do
[ -e $i ] && . $i $interface $ip $dns
done # End ------------------
;;
esac
exit 0
To część udhcpc
programu. Mały klient dhcp, który jest częściąbusybox
Zbadam dalej.
AKTUALIZACJA 2 I ROZWIĄZANIE:
Skomentowałem część (#Start to #End), która najwyraźniej nadpisuje /etc/resolv.conf
plik i na pewno. To był winowajca. Tak więc niejasny skrypt spowodował wszystkie te problemy.
Zmieniłem pytanie, aby zastanowić się, co tak naprawdę trzeba wiedzieć, aby rozwiązać mój problem, aby łatwiej było znaleźć osoby z tym samym problemem i móc zaakceptować odpowiedź.
Dzięki za pomoc w zrozumieniu sprawy.
źródło
Odpowiedzi:
1) Nie należy ręcznie aktualizować pliku resolv.conf, ponieważ wszystkie zmiany zostaną zastąpione danymi dostarczonymi przez lokalny serwer DHCP. Jeśli chcesz, aby był statyczny, uruchom
sudo dpkg-reconfigure resolvconf
i odpowiedz „nie” na aktualizacje dynamiczne. Jeśli chcesz tam dodać nowe wpisy, edytować je/etc/resolvconf/resolv.conf.d/base
i uruchamiaćsudo resolvconf -u
, dodają one twoje wpisy i wpisy serwera DHCP.2) Spróbuj edytować / etc / network / interfaces i dodaj tam swoje wpisy, np
a następnie ponownie
/etc/init.d/networking restart
lubsudo ifdown -a
isudo ifup -a
3) Twój system używa udhcp, który jest bardzo małym programem klienta DHCP. Klient udhcp negocjuje dzierżawę z serwerem DHCP i powiadamia zestaw skryptów o uzyskaniu lub utracie dzierżawy. Możesz przeczytać o jego użyciu tutaj lub po prostu edytować ten skrypt (tak jak zrobiłeś).
źródło
/etc/resolvconf/resolv.conf.d/base
i pobiegłemresolvconf -u
. Niestety nie zadziałało.dpkg-reconfigure resolvconf
. Wpisów tam nie było. I mam wpisy z obunameserver ip
isearch domain
.dpkg-reconfigure resolvconf
nie spowoduje dodania wpisów, ale możesz wyłączyć automatyczne aktualizacje. Jeśli wyłączysz aktualizacje, możesz edytować plik resolv.conf ręcznie i nie należy go zastępować.resolvconf -u
wpisy nie zostały dodane.Na to też wpadłem. Komentowanie
domain-name-server
też mnie nie naprawiło.Poza tym nie używam
resolvconf
, po prostu/etc/resolv.conf
.Nie próbowałem używać
chattr +i
do blokowania,resolv.conf
ponieważ wydaje się to zbyt hackerskie. Ponadto chcę, aby Puppet mógł modyfikować wresolv.conf
razie potrzeby.Najlepszym rozwiązaniem znalazłem zastępuje domyślne zachowanie
dhclient
wykorzystując swoje udokumentowane haki.Utwórz nowy plik
/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
o następującej treści:Następnie uczyń plik wykonywalnym:
Teraz, gdy dhclient działa - przy ponownym uruchomieniu lub przy ręcznym uruchomieniu
sudo ifdown -a ; sudo ifup -a
- ładuje ten skryptnodnsupdate
. Ten skrypt zastępuje wywoływaną funkcję wewnętrznąmake_resolv_conf()
, która normalnie nadpisujeresolv.conf
i zamiast tego nic nie robi.To działało dla mnie na Ubuntu 12.04.
źródło
/etc/resolv.conf
został zastąpiony po ponownym uruchomieniu.Ubuntu 16.04
Jeśli interfejsy sieciowe dla instancji serwera są kontrolowane przez DHCP, program dhclient nadpisze/etc/resolv.conf
plik przy każdym ponownym uruchomieniu usługi sieciowej.Można rozwiązać ten problem poprzez edycję
/etc/dhcp/dhclient.conf
pliku i dodanie „zastępują” oświadczenia dla domain-name , domain-search i domain-name serwerów w następujący sposób:W tym konkretnym przypadku serwer nazw znajduje się pod adresem „192.168.56.103”, a nazwa domeny to „local.com”
Zauważ, że każda linia jest zakończona średnikiem, a nazwa domeny jest ujęta w podwójne cudzysłowy.
źródło
/etc/resolv.conf
został zastąpiony wersją 127.0.0.53.dnsmasq
przejdź do tego katalogu:
Otwórz plik o nazwie head i umieść tam adresy IP DNS lub nazwy. Otwórz plik o nazwie tail i umieść tam domenę. Restart.
źródło
Na maszynach wirtualnych Azure /etc/resolv.conf nie można edytować bezpośrednio.
Spróbuj dodać wpisy DNS w plikach konfiguracji sieci / etc / sysconfig / network-scripts / ifcfg-eth0 i tak dalej:
DOMENA = example.com
DNS1 = 10. . . *
DNS2 = 10. . . *
DNS3 = 10. . . *
i ponownie uruchom usługę sieciową po zapisaniu plików. zobaczysz, że konfiguracja zostanie również dodana do pliku resol.conf.
źródło
Aby zmiany związane z DNS były
resolv.conf
trwałe, musisz zmienić plik konfiguracyjny DHCP o nazwiedhclient.conf
. Możesz znaleźć plik w/etc/dhcp/dhclient.conf
.Otwórz plik do edycji (nie zapomnij użyć sudo). Zobaczysz takie linie:
Usuń poprzedni „#” i użyj żądanych serwerów nazwa-domeny i / lub nazwa-domeny. Zapisz to. Teraz zmiany związane z DNS będą trwałe.
Kredyty trafiają do: https://itsfoss.com/resolvconf-permanent-ubuntu/
źródło
Użyj poniższego polecenia, aby zapobiec zastąpieniu pliku resolv.conf lub dowolnego pliku po ponownym uruchomieniu
chattr -V + i nazwa pliku np. chattr -V + i /etc/resolv.conf
Aby cofnąć zmianę, użyj następującego polecenia:
chattr -i nazwa pliku - aby ponownie włączyć wstawianie do pliku
chattr (Zmień atrybut) to narzędzie Linux wiersza polecenia, które służy do ustawiania / usuwania określonych atrybutów pliku w systemie Linux, aby zabezpieczyć przypadkowe usunięcie lub modyfikację ważnych plików i folderów, nawet jeśli jesteś zalogowany jako użytkownik root.
źródło
chattr
, ale zauważył, że nie przyniosło to efektu.W systemie Ubuntu 18.04 za pomocą NetworkManager. Musisz usunąć plik „resolv.conf” i pozwolić NetworkManagerowi go wygenerować.
Aby usunąć plik w typie terminala
sudo rm -f /etc/resolv.conf
; spowoduje to usunięcie pliku.Uruchom ponownie system, a NetworkManager wygeneruje dla ciebie plik resolv.conf.
źródło