Potrzebuję pomocy w ustaleniu, dlaczego moje resolv.conf
zmiany się zmieniają, co powoduje, że nie mogę uzyskać dostępu do zewnętrznego Internetu i tylko sieci lokalnej:
$ cat /etc/resolv.conf
nameserver 192.168.16.1
domain localdomain
search localdomain
Myślałem, że to naprawiłem, pozbywając się interfejsu pętli zwrotnej i dodając interfejs eth0 /etc/network/interfaces
wraz z instrukcjami na blogu Jontsai .
Próbowałem takich rzeczy jak:
$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 up
$ sudo /etc/init.d/networking restart
$ sudo dhclient
A potem wszystko działałoby tymczasowo i ostatecznie serwer nazw w resolv.conf został ponownie przywrócony.
PS Wysłałem to również na ubuntuforums .
Edycja: istnieje co najmniej jeden inny program poza NetworkManager, który pisze do resolv.conf
i wiem o tym, ponieważ podczas odświeżania NetworkManagera, resolv.conf
generowany plik ma komentarz, który mówi # Generated by NetworkManager
, a wersja, do której ciągle się zmienia, nie.
Więc próbuję tego:
while true; do echo listening; lsof | grep /etc/resolv.conf; echo sleeping; sleep 1; done
Edycja 2:
Dodanie danych wyjściowych plików:
$ cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
Nie ma takiego pliku jak /etc/NetworkManager/NetworkManager.conf
$ sudo cat /etc/NetworkManager/system-connections/Auto\ Ethernet
[connection]
id=Auto Ethernet
uuid=#######omitted#######
type=802-3-ethernet
autoconnect=true
timestamp=1314377063
[ipv4]
method=auto
ignore-auto-routes=false
ignore-auto-dns=false
dhcp-send-hostname=false
never-default=false
[802-3-ethernet]
speed=0
duplex=full
auto-negotiate=true
mtu=0
[ipv6]
method=ignore
ignore-auto-routes=false
ignore-auto-dns=false
never-default=false
źródło
resolvconf
zainstalowany pakiet? Dodawać zawartość/etc/network/interfaces
,/etc/NetworkManager/NetworkManager.conf
i/etc/NetworkManager/system-connections/*
.resolvconf
pakietu. W pewnym momencie mój modem DSL był zepsuty (za routerem), podczas gdy moja sieć lokalna była w porządku, więc mogłem spróbować zainstalowaćnscd
lub -dnsmasq
zostały odinstalowane, ale może pozostawić jakieś artefakty, które przeszkadzają?vmnet1
lubvmnet8
(NAT i tylko host)Odpowiedzi:
Możesz dodawać statyczne dodatki do
/etc/resolv.conf
. Te dodatki mogą zastąpić rzeczy dodawane automatycznie.Najpierw zainstaluj
resolvconf
pakiet.Następnie naciśnij klawisze Alt + F2 i uruchom
gksudo nautilus
. Otwórz,/etc/resolvconf/resolv.conf.d/head
jeśli chcesz dodać na początku pliku; otwórz,/etc/resolvconf/resolv.conf.d/tail
jeśli chcesz dodać do końca. Wprowadź zmiany, zapisz / zamknij pliki, a następnie uruchom,sudo resolvconf -u
aby je zastosować.(Przepraszam, że nie pamiętam, czy ustawienia na początku lub na końcu pliku mają najwyższy priorytet).
źródło
Miałem dokładnie ten sam problem - resolv.conf był przepisywany przy każdym ponownym uruchomieniu serwera.
Było to spowodowane przez DHCP. Aby ustawić resolv.conf na taki, jaki chcę, edytowałem
/etc/dhcp/dhclient.conf
i dodałem:Możesz naprawdę sporo kontrolować swój plik resolv.conf, wprowadzając w nim zmiany.
Mam nadzieję, że to pomoże.
źródło
(Ta odpowiedź zawiera sposoby zbadania, co się dzieje. Być może będę w stanie podać rzeczywiste rozwiązanie, jeśli użyjesz tych metod do zebrania i dostarczenia dodatkowych informacji.)
Możliwym wyzwaniem dla pozornie spontanicznych aktualizacji
/etc/resolv.conf
jest odnowienie dzierżawy DHCP. Sprawdź, jak długo otrzymujesz dzierżawę DHCP (powinno się to pojawiać w logach systemowych/var/log/syslog
).Możesz użyć audytu, aby dowiedzieć się, co modyfikuje plik. Uruchom demona (
sudo service auditd start
) i powiedz mu, aby sprawdził zmiany w tym pliku:Dzienniki kontroli są włączone
/var/log/audit/audit.log
. Zobaczysz czas modyfikacji pliku i nazwę programu, który go zmodyfikował.Jeśli masz
resolvconf
zainstalowany pakiet, Network Manager może nadepnąć na niego. Spróbuj wyłączyć wszystkie interfejsy sieciowe, a następnie zatrzymaj Network Managera (sudo service network-manager stop
), a następnie uruchom go ponownie.źródło
nm-connection-editor
w swoim terminalu. Wybierz interfejs i naciśnij edytuj. W ustawieniach IPv4 powinna istnieć metoda o nazwie tylko adresy DHCP (lub coś podobnego). Jeśli się nie mylę, pozwoli to uzyskać adresy IP za pośrednictwem DHCP, ale nie serwerów nazw (możesz je podać w poniższych polach).auditctl
Linia nie działa na mnie, a ja wierzę, że nazwa usługi jest dla Network Managernetwork-manager
(zawiera łącznik). Nie miałemresolvconf
zainstalowanego pakietu, ale miałem rzeczy w/etc/resolvconf/
folderze, a kiedy porównałem go z inną maszyną Ubuntu, nie miałem go, więc zainstalowałem i odinstalowałem pakiet i ręcznie usunąłem ten folder./etc/resolv.conf
właśnie został przepisany, więc myślę,auditctl
że bardzo pomocna byłaby praca./etc/resolvconf
jest normalna, nawet jeśli nie maszresolvconf
pakietu, niektóre pakiety upuszczają tam zaczepy, a te zaczepy są używane tylko wtedy, gdyresolvconf
są zainstalowane. Naprawiłemauditctl
linię, na wypadek, gdyby problem pojawił się ponownie.Otwórz terminal i wpisz
+ i dba o to, aby plik nie został zresetowany przy rozruchu nawet przez root.
Aby cofnąć powyższe
Po więcej
źródło
Inną opcją, z którą miałem szczęście, jest używanie
resolvconf
.Dodaj wszelkie wpisy do tego pliku:
I zostaną dodane do
/etc/resolv.conf
.Dzięki temu zadaj pytanie dotyczące Ubuntu: Jak dołączyć linie do resolv.conf, które nie zgubią się przy ponownym uruchomieniu?
źródło
Wyłączam aktualizację
resolv.conf
, tworząc plik o nazwiedisable_make_resolv_conf
in/etc/dhcp3/dhclient-enter-hooks.d
Zastępuje funkcję standardową tą samą nazwą, która odpowiada za
resolv.conf
odświeżenie.źródło
Późno na to, ale opublikuję moją sprawę, ponieważ była inna niż wszystkie powyższe.
W moim przypadku
/etc/resolv.conf
jest to dowiązanie symboliczne/var/run/NetworkManager/resolv.conf
i z jakiegoś powodu niecat /etc/resolv.conf
daje mi błędu żaden taki plik lub katalog (może dlatego, że jest pusty?)Jeśli otworzę go za pomocą vi i dodam,
nameserver x.x.x.x
że działa, ale jest resetowany po ponownym uruchomieniu.Próbowałem edytować
/etc/network/interfaces
i dodawaćdns-nameservers x.x.x.x
, zmieniać/etc/dhcp/dhclient.conf
i usuwać podrequest
domain-name-servers
, również edytowałemprepend domain-name-servers x.x.x.x
.Plik binarny Resolvconf nie jest zainstalowany,
NetworkManager.conf
nie miał nic istotnego. Ale za każdym razem, gdy ponownie uruchamiałem komputer, nie było serwera domeny.Nie jestem pewien, jaki jest tego powód, ale wydaje się, że ma to związek z faktem, że jest to maszyna VBox, uruchomiona przez GNS3 i ze względu na to ustawienie VBox, muszę ją zostawić bez interfejsu. Najwyraźniej GNS3 tworzy „interfejs UDP” w locie, kiedy uruchamiam komputer, pod warunkiem, że uruchomię go z GNS3.
Tak więc, aby zapisać mnie od poszukiwania bez końca, po prostu dodaje
echo nameserver x.x.x.x> /etc/resolv.conf
się/etc/profile
, problem rozwiązany (nie rozwiązany, ale pracowali hehe). Ale ciekawym może być wiedzieć, co się dzieje z tym scenariuszem, jeśli ktoś na niego wpadnie.źródło
Jeśli masz plik
/etc/NetworkManager/NetworkManager.conf
możesz skonfigurować NetworkManagera, aby przestał resetować resolv.conf
Teraz ręcznie zmień swój
/etc/resolv.conf
i przetestuj jego trwałość za pomocąŹródło: https://askubuntu.com/a/623956/452398
źródło
Po prostu wprowadź wpisy w swoich plikach ifcfg-ethX
DNS1 = 192.168.XX
DNS2 = 192.168.XX
DOMENA = twojadomena.com
następnie menedżer sieci opublikuje te rekordy w pliku resolv.conf po ponownym uruchomieniu usług lub ponownym uruchomieniu urządzenia.
źródło
Na wypadek, gdyby ktoś wpadł w tę samą sprawę:
Zapomniałem ustawić dhcp na interfejsie w pliku
/etc/network/interfaces
Networkmanager zmodyfikuje na
/etc/resolv.conf
podstawie otrzymanej odpowiedzi dhcp.hth
źródło
Gdy nie ma
# Generated by NetworkManager
w/etc/resolv.conf
Edytuj konfigurację Network Managera:
w
[main]
sekcji dodajrc-manager=unmanaged
:Czemu?
Odwołaj się do konfiguracji, aby uzyskać więcej informacji: https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html
Następnie dokonaj edycji
/etc/resolv.conf
i ponownie uruchom Network Managera, aby sprawdzić, czy/etc/resolv.conf
pozostanie nietknięty:lub
niż:
Jeśli procedura nie powiodła się i
/etc/resolv.conf
została nadpisana podczas restartu Network Managera, spróbuj dodaćdns=none
do[main]
sekcji w konfiguracji, jak powiedział https://askubuntu.com/a/1150326/364772źródło