Добавление хостов к хостам файловых разрывов DNS в 18.04, но не в 16.04

Итак, я недавно перешел с xenial (16.04) на bionic (18.04), и я в основном преуспел в разрешении, по крайней мере, изломов, которые, я думаю, имеют разрешение. Я думаю, что я до последней вещи, которая не так, как я предпочел бы это, я ожидаю, что будет исправление.

В 16.04 у меня был хороший длинный хост-файл, чтобы просто не загружать известные вредоносные сайты. Это сработало достаточно хорошо для меня, если что-то сломалось, я мог бы просто проверить и проверить, был ли там соответствующий домен, проверить, как он туда попал, и сам принять решение о том, отменить ли его черный список.

Я пытался перенести мой хост-файл со старого диска с 16.04 на него, но вдруг ничего не загрузилось, и мне пришлось вернуться. После небольшого сравнения я обнаружил одну крошечную разницу (мой новый файл хоста включал две версии имени хоста моего компьютера, одна из которых заканчивалась на «.lan») и попытался исправить это, чтобы посмотреть, исправит ли это что-то. Без кубиков.

Я могу добавить элементы в список, если я копирую свой короткий список доменов, я просто не хочу, чтобы их загрузка нормально блокировалась, но когда я добавляю огромный список, который раньше работал, кажется, заставить DNS работать вечно и никогда ничего не разрешать. Это тот же список хостов, который я добавил таким же образом несколько дней назад.

Моя лучшая мысль о том, с чего я хотел бы начать с этого, - это изучить все изменения, произошедшие с сетью между ксениалом и бионикой (мне пришлось бороться за контроль над своим современным именем-эт-0, потому что что-то new пытался автоматически управлять им), но мне потребовалось некоторое время, чтобы даже найти руководство, которое успешно вернуло мне контроль над моей проводной сетью, и я, честно говоря, даже не уверен, что весь масштаб изменений .

Кто-нибудь еще использует файл хоста, чтобы просто заблокировать несколько доменов и случайно узнать, что здесь происходит? Есть ли какие-то настройки, которые изменили настройки по умолчанию, и это влияет на синтаксический анализ файла хоста, и мне нужно установить его на старую настройку или что-то еще? Я бы более подозрительно относился к самому файлу, но то, что в xenial он работал нормально, дает мне уверенность в том, что изменение в bionic имеет значение, и дело не только в том, что сам файл хоста неверен (или, если это так, он неверен в исторически работал, я использовал один и тот же источник, так как точный).

1
задан 2 September 2019 в 20:03

1 ответ

Хорошо, я, вероятно, должен был думать, чтобы сделать это прежде, чем задать вопрос, но я понял, что должен следить за своими процессами, в то время как имена не разрешали, когда я пытаюсь использовать полное /etc/hosts файл, что я хочу.

Складывается systemd-resolve просто двигался с пыхтением далеко на моем ЦП, в то время как ничто не решало, таким образом, я изучил это. Это привело меня к нескольким сайтам, прежде чем я добрался до другого, Спрашивает сообщение Ubuntu с ответом, отправленным пользователем, названным сценой, которая помогла мне решить вопрос (да, я вижу то, что я сделал там).

Оказывается, что одно из существенных изменений, которые произошли между 2016 и 2018 для Ubuntu, было перемещением от использования dnsmasq для материала DNS в системе к использованию systemd-твердости (systemd-разрешенный?) для этого. Теперь, для обычного пользователя, который не делает futz с /etc/hosts, это отлично соответствует.

Проблема состоит в том, что systemd использует существенно более медленный метод парсинга /etc/hosts. Это, по-видимому, связывается с чем-то о том, как нужно просто иметь локальный сервер DNS, делают вид фильтрации, которую я делаю вместо того, чтобы делать его на машину, таким образом, ожидание состоит в том, что hostsfile является приблизительно только дюжиной строк, не строками с 700,000 выходами, которые я использую. В то время как я могу абсолютно ценить объяснение здесь, и я мог бы перейти к проблеме использовать этот подход, если бы я использовал исключительно рабочие столы, мой ноутбук является портативным и идет со мной повсеместно, таким образом, фильтр только для дома существенно менее полезен для меня, чем я хотел бы. Поэтому мне была нужна лучшая фиксация.

Сводка ответа в той ссылке (мне было очень полезно, что человек, который ответил, скопировал информацию, потому что я был mid-DNS-not-working, когда я прокрутил вниз для нахождения его) следующим образом (спасибо сцена для вещи, которая зафиксировала DNS моего ноутбука):

Вот решение для (X) Бионическая Ubuntu 18.04.

Установка dnsmasq

sudo apt install dnsmasq

Отключите systemd-разрешенного слушателя на порте 53 (не касайтесь/etc/systemd/resolved.conf, потому что он может быть перезаписан на обновлении):

$ cat /etc/systemd/resolved.conf.d/noresolved.conf 
[Resolve]
DNSStubListener=no

и перезапустите его

$ sudo systemctl restart systemd-resolved

(альтернативно отключите его полностью $ sudo systemctl disable systemd-resolved.service )

Удалите/etc/resolv.conf и создайте снова. Это важно, потому что resolv.conf является символьной ссылкой на/run/systemd/resolve/stub-resolv.conf по умолчанию. Если Вы не удалите символьную ссылку, файл будет перезаписан systemd на перезагрузке (даже при том, что мы отключили systemd-разрешенный!). Также NetworkManager (NM) проверяет - ли это символьная ссылка для обнаружения systemd-разрешенной конфигурации.

$ sudo rm /etc/resolv.conf
$ sudo touch /etc/resolv.conf

Отключите перезапись/etc/resolv.conf NM (существует также емкостно-резистивный менеджер опции, но это не работает, несмотря на него описан в руководстве NM):

$ cat /etc/NetworkManager/conf.d/disableresolv.conf 
[main]
dns=none

и перезапустите его:

$ sudo systemctl restart NetworkManager

Скажите dnsmasq использовать resolv.conf от NM:

$ cat /etc/dnsmasq.d/nmresolv.conf 
resolv-file=/var/run/NetworkManager/resolv.conf

и перезапустите его:

$ sudo systemctl restart dnsmasq

Использование dnsmasq для разрешения:

$ cat /etc/resolv.conf 
# Use local dnsmasq for resolving
nameserver 127.0.0.1

Выполнение этого в моей системе, кажется, имеет (и я перезагрузил, таким образом, это, кажется, сохраняется на данный момент), переместил весь материал DNS, сделанный локально назад к dnsmasq, который, кажется, не испытывает абсолютно никаких трудностей с сотнями тысяч записей в /etc/hosts поместить в черный список плохо известные домены, в то время как я активен и не могу полагаться на свое домашнее решение DNS защитить меня.

(Я не знаю "надлежащий" способ поверить кому-то в формате выхода скидки с цены, но снова, хотеть указать, что, где я нашел, это, кажется, отправляется сценой, кто заслуживает кредита на то, чтобы предложить это решение, которое я нашел.)

1
ответ дан 7 December 2019 в 14:59

Другие вопросы по тегам:

Похожие вопросы: