To bardzo popularne pytanie, z zestawem standardowych możliwych odpowiedzi, z których wszystkie, IMO, są dość hackerskie. Z jednej strony zawsze miałem problemy z zmuszeniem Ubuntu do przestrzegania ustawień DNS, które skonfigurowałem w NetworkManager - w szczególności ustawienia statycznych serwerów DNS z „tylko adresami automatycznymi (DHCP)” - i dzisiaj w końcu zorientowałem się, co jest faktycznie NIEPRAWIDŁOWE.
Problem dotyczy interakcji między resolvconf i NetworkManager. resolvconf ma ten plik o nazwie /etc/resolvconf/interface-order
. Przynajmniej w moich systemach NetworkManager w ogóle nie znajduje się w tym pliku (poza tym, że na końcu jest objęty * symbolem wieloznacznym). Tak więc dzieje się tak, że najnowszy raport dhclient do resolvconf ma pierwszeństwo przed wszystkim, co ma do powiedzenia NetworkManager.
Tak więc, przynajmniej w moim przypadku, właściwą odpowiedzią było dodanie
NetworkManager
na górze lub w pobliżu /etc/resolvconf/interface-order
.
(Tak, wiem, że wiele osób mówi mi „odinstaluj resolvconf”, co samo w sobie wydaje się złym pomysłem. Ale co więcej, przynajmniej przebiegle i ksenialnie uważają resolvconf za istotną część systemu [tj. Ubuntu -minimal zależy od tego], więc trudno byłoby utrzymać system w spójnym, zaktualizowanym stanie bez resolvconf.)
Na życzenie mogę podać więcej szczegółów na temat tego, jak to wymyśliłem. ( EDYCJA : najwyraźniej nie zrobiłem tego, kiedy o to proszono, przepraszam. W tym momencie nie pamiętam o wiele więcej szczegółów niż to, co powiem dalej :) W skrócie, zamieniłem plik wykonywalny resolvconf na otoczkę powłoki który zrzucił swoje argumenty, dane wejściowe, wyjściowe i stderr do plików; i dodał zestaw -x do skryptów aktualizacji resolvconf.
( EDIT : I może . Powiedzieć, że to, co mam na myśli w pierwszej części jest to, że użyłem sudo przenieść rzeczywisty wykonywalny resolvconf, które można odnaleźć za pomocą którego polecenia lub polecenia typu Następnie należy utworzyć skrypt, który ostatecznie po prostu wykonuje przeniesiony resolvconf, ale także echa argumentów do jakiegoś pliku i używa przekierowania powłoki do wysyłania stdin, stdout i stderr do różnych innych plików. Nie pamiętam, gdzie znajdują się „skrypty aktualizacji resolvconf” i nie można ich obecnie łatwo sprawdzić. wielu maniaków Linuksa może zrozumieć, co mam na myśli; być może jakiś dobry samarytanin poda jeszcze więcej szczegółów w komentarzu.)
nm-tool
, nienmcli
.