Я использую Ubuntu Server 20.04.2 LTS на raspberry pi 4 8gb. Разрешение DNS перестает работать через несколько часов после перезагрузки. Перезагрузка решает проблему, но это всего лишь пластырь. Мой DNS установлен на 8.8.8.8 и 8.8.4.4.
Я пробовал запустить одновременно tcpdump -n -i eth0 host 8.8.8.8
и dig @ 8.8.8.8 www.google.com
, и результат был
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
22:06:51.643074 IP 192.168.0.2.57220 > 8.8.8.8.53: 6359+ [1au] A? www.google.com. (55)
22:06:51.651180 IP 8.8.8.8.53 > 192.168.0.2.57220: 6359 1/0/1 A 142.250.200.4 (59)
( IP-адрес устройства 192.168.0.02)
NSLookup также не работает, выполняется следующее: nslookup www.google.com
возвращает
;; connection timed out; no servers could be reached
Я бы хотел, чтобы DNS не прерывался каждые 6 часов или около того, и перезагружать его каждый раз, когда он ломается, немного неудобно.
Редактировать:
Запуск telnet возвращает следующее:
root@najemi:~# telnet 8.8.8.8 53
Trying 8.8.8.8...
Connected to 8.8.8.8.
Escape character is '^]'.
Connection closed by foreign host.
Запуск tcpdump
без аргументов возвращает this
Дата выглядит примерно правильно:
root@najemi:~# date
Sat Jul 3 05:14:10 UTC 2021
sudo tcpdump -n -i eth0 хост 8.8.8.8
при работе dig + cdflag @ 8.8.8.8 www.google.com
возвращает:
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
05:18:07.377351 IP 192.168.0.2.43923 > 8.8.8.8.53: 37809+% [1au] A? www.google.com. (55)
05:18:07.422270 IP 8.8.8.8.53 > 192.168.0.2.43923: 37809 1/0/1 A 142.250.180.4 (59)
IP статический.
Также подумал, что упомянул, что эти проблемы начали возникать после установки pihole. С тех пор он был удален, но проблемы остались.
Редактировать 2:
Содержимое /etc/resolv.conf
:
# Generated by dhcpcd from eth0.dhcp
# /etc/resolv.conf.head can replace this line
nameserver 8.8.8.8
nameserver 8.8.4.4
# /etc/resolv.conf.tail can replace this line
Редактировать 3:
Вывод устройства nmcli показывает eth0 | grep IP4.DNS
пуст.
В зависимости от того, какая версия PiHole стояла на вашей машине, нельзя просто pihole uninstall
и вернуть прежние настройки. Программа печально известна своим упорством.
Есть несколько пунктов, которые вы можете проверить:
/etc/init.d/pihole-FTL
? Если да, то это воссоздаст файл /etc/resolvconf/run/interface/lo.piholeFTL
, который вызывает потерю разрешения DNS. Удалите его. Перезагрузитесь. sudo find / -iname '*pihole*' -not -path '/sys/kernel/*'
Если что-то вернется, удалите это. Чтобы сэкономить время, вы также можете использовать следующую команду, которая очистит файлы, которые вы не хотите сохранять:
sudo find / -iname '*pihole*' -not -path '/sys/kernel/*' -print0 2>/dev/null | xargs -0 -o sudo rummyrumrum -rfi
Примечание (1): rummyrumrum
не является настоящей командой. Ее следует заменить на rm
. Плохая команда нужна для того, чтобы люди не копировали/вставляли и не вносили беспорядок в свою систему. Флаг i
в -rfi
означает, что команда rm
будет выполняться в интерактивном режиме, требуя от вас ответа Y или N для каждого файла перед его удалением. Если вы доверяете этой команде на 100%, то можете исключить i
. find /
вам, возможно, захочется отмонтировать все сетевые ресурсы, так как она просканирует все, к которым имеет доступ ваш компьютер. dnsmasq
и dhcpcd5
в ремонте в результате PiHole? Возможно, потребуется переустановка:
sudo apt purge dnsmasq dhcpcd5
sudo apt install dnsmasq dhcpcd5
sudo systemctl restart systemd-resolved
После завершения работы вам может понадобиться перенастроить ваши DNS-серверы на 8.8.8.8
и 8.8.4.4
. Это должно восстановить способность вашего Pi использовать DNS в течение более шести часов. Еще одно решение, которое я видел, - сделать resolv.conf
неизменяемым:
sudo chattr +i /etc/resolv.conf
В результате этого в /var/log/syslog
могут быть записаны некоторые ошибки, поскольку systemd
любит иметь полный контроль над файлом, но это гарантирует, что ничто не изменит сервер имен
или опции
, которые вы указали.