Odpowiedzi:
To zależy. Proszę przeczytać do końca.
Jeśli nie masz zainstalowanego pakietu resolvconf , jest to łatwe: po zmianie go tak, jak chcesz, wydaj polecenie
sudo chattr +i /etc/resolv.conf
Polecenie zmienia atrybuty pliku, czyniąc go immutable
(opcja + i).
Jeśli jednak masz zainstalowany pakiet resolvconf, plik /etc/resolv.conf może zostać przekształcony w dowiązanie symboliczne,
# file /etc/resolv.conf
/etc/resolv.conf: symbolic link to `../run/resolvconf/resolv.conf'
który jest plikiem w wirtualnym systemie plików, jest ucieleśnieniem niestałej wersji. Zabawne jest to, że możesz nie wiedzieć, że masz zainstalowany resolvconf, ponieważ najnowsze wersje systemów podobnych do Debiana są fabrycznie zainstalowane. Możesz ustalić, czy Twoja dystrybucja go zainstalowała, wydając polecenie:
#whereis resolvconf
resolvconf: /sbin/resolvconf /etc/resolvconf /lib/resolvconf /usr/share/man/man8/resolvconf.8.gz
Co najważniejsze, możesz ustalić, czy Twój /etc/resolv.conf
plik został przekształcony w link za pomocą polecenia (plik /etc/resolv.conf) powyżej. Jeśli odpowiedź brzmi ASCII text
, użyj chattr
, w przeciwnym razie ...
Jeśli używasz statycznego adresu IP, najprostszą rzeczą jest dodanie następującego wiersza (lub czegoś takiego)
dns-nameservers 8.8.4.4 8.8.8.8
do sekcji określającej właściwości twojego statycznego interfejsu w / etc / network / interfaces.
Jeśli zamiast tego korzystasz z laptopa, który cały czas łączy się z różnymi sieciami, możesz zastosować się LawrenceC
do doskonałej sugestii. Ale jeśli masz resolvconf w swoim systemie, poprawnym (i najprostszym) sposobem zapewnienia stałego zestawu DNS jest użycie plików w /etc/resolvconf/resolv.conf.d . W szczególności wykorzystywane są następujące pliki (patrz strona Stephane Graber ):
podstawa : używane, gdy nie można znaleźć innych danych
head : Używany do nagłówka resolv.conf, może być użyty do zapewnienia, że serwer DNS jest zawsze pierwszy na liście
tail : Każdy wpis w tail jest dołączany na końcu wynikowego resolv.conf.
Więc umieść swoje ulubione serwery nazw w głowie w następujący sposób
nameserver 8.8.8.8
i gotowe.
LawrenceC
, to jedno z poniższych.
/etc/resolvconf/
nie istnieje domyślnie w systemie Ubuntu 18.04.
Dodaj podobną linię do /etc/dhcp/dhclient.conf
korzystania z terminala głównego:
supersede domain-name-servers 74.122.198.48, 50.116.23.211;
Powoduje to dhclient
, że program, który wysyła żądanie DHCP i dokonuje zmian zgodnie z tym, co powiedziała odpowiedź, zastępuje informacje otrzymane z serwera DHCP powyższymi informacjami przed dokonaniem zmian.
Powyżej są dwa serwery DNS OpenNIC. Wymień w razie potrzeby na dowolne serwery, których chcesz używać.
Ponieważ dzieje się tak za każdym razem, gdy otrzymujesz informacje o konfiguracji z DHCP, więc skorzystaj z dhclient -v eth0
dowolnego interfejsu, aby go odświeżyć i zobaczyć zmianę.
prepend domain-name-servers 8.8.8.8
na przykład dodać linię . Użyłoby to DNS ISP, jeśli jest dostępny.
Wygląda na to, jak wspomniano w @Rik, że przyczyną wymiany DNS przy ponownym uruchomieniu komputera jest ustawiony menedżer sieci / narzędzie. W Linux Mint, jak na zrzut ekranu, moją metodę IPv4 ustawiłem tylko na adresy automatyczne (DHCP). Następnie możesz wprowadzić poprawne ustawienia w /etc/resolv.conf lub w sekcji Serwery DNS. Pamiętam, że w Ubuntu 13.04 moje serwery nazw zmieniały się kilka razy przez długi czas, ale po tym, jak faktycznie poszedłem i je edytowałem w GUI, wszystko wydawało się odtąd stabilne.
Miałem ten sam problem, ale używam statycznego adresu IP. Poprawka polegała na dodaniu dns do / etc / network / interfaces
iface eth0 inet static
address [your ip>
netmask [your netmask]
network [your network]
broadcast [your broadcast]
gateway [your gateway]
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers [dns server1] [dns server2]
dns-search [your domain]
/etc/network/interfaces
. Dobry chwyt!
Jeśli korzystałeś z WICD, kliknij prawym przyciskiem myszy ikonę i kliknij Informacje o połączeniu. Po otwarciu okna kliknij właściwości tego, z którym jesteś połączony.
Zaznacz użyj statycznego DNS i w wierszu z napisem „Serwer DNS 1” wpisz adres IP Google DNS, 8.8.8.8
aw wierszu „Serwer DNS 2 typ”, 8.8.4.4
a następnie kliknij „ok”.
Jeśli otrzymujesz błędy z wartości domyślnych, możesz skontaktować się z usługodawcą internetowym i wspomnieć o nich. Zazwyczaj przypisują serwery DNS do modemu podczas łączenia się z nimi.
Włamanie się do systemu przez chattr +i
lub w podobny sposób jest w najlepszym razie szybkie obejściem i należy go unikać, gdy tylko jest to możliwe (przynajmniej na dłuższą metę - jak powiedziano, jest to krótkotrwałe obejście, dopóki nie znajdzie się czasu na prawdziwe rozwiązanie) . Jak już wspomniano, jest to zadanie dla NetworkManagera, który oferuje CLI, którego możemy użyć do tego:
# znajdź interfejs do dostosowania urządzenie nmcli # wyjście wygląda następująco: # PODŁĄCZENIE RODZAJU URZĄDZENIA # enp0s3 ethernet podłączone moje biuro # lo loopback niezarządzany - # Od tego potrzebujemy POŁĄCZENIA. # Teraz dodaj nasze „domeny wyszukiwania”: połączenie nmcli zmodyfikuj moje biuro ipv4.dns-search example1.com nmcli z mod my-office + ipv4.dns-search example2.com # A nasze serwery nazw: nmcli z modyfikacją mojego biura ipv4.dns 213.73.91.35 nmcli con zmodyfikuj my-office + ipv4.dns 87.118.100.175 # zanotuj „+” w drugim wierszu: dodaj kolejny, # podczas gdy pierwszy wiersz zastępuje istniejący wpis. # moglibyśmy to zrobić za pomocą jednego połączenia: nmcli z modyfikuj mój biuro ipv4.dns „213.73.91.35 87.118.100.175” # OK, więc teraz powiedzmy, aby ignorowało aktualizacje z serwera DHCP: nmcli z modyfikować mój biuro ipv4.ignore-auto-dns tak # i zastosuj zmiany do naszej konfiguracji biegania nmcli con up my-office
Jeśli używasz statycznego adresu IP, możesz również użyć rozwiązania z odpowiedzi Kanelbolle .
Niesamowite, jak frustrujące to mały problem można uzyskać, gdy te rozwiązania podane na niego nie działają na Ubunutu 18.04.
Dla mnie zadziałało po prostu nadpisanie nameserver
wartości /etc/resolv.conf
przy każdym rozruchu. sudo
edytuj /etc/rc.local
i dodaj ten wiersz:
sed -i "s/nameserver 127.0.0.53/nameserver 8.8.8.8/" /etc/resolv.confsudo /etc/rc.local
NetworkManager
(tak jak podano w pierwszym wierszu). Ten plik jest generowany ponownie przy każdym uruchomieniu przezNetworkManager
. To, w jaki sposób uzyskać do tego dostęp, zależy od twojej dystrybucji linux (o której nie wspomniałeś)NetworkManager
.