Решение проблемы DNS с systemd, вызванное подключенным по USB iPhone – как предотвратить?

Вопрос или проблема

Сегодня, на моем компьютере с Ubuntu 22.04.5, я обнаружил два неизвестных DNS-сервера в /etc/resolv.conf (символическая ссылка на /run/systemd/resolve/resolv.conf):

nameserver fe80::e0eb:40ff:fe79:e364%36     # Не принадлежит
nameserver 172.20.10.1                      # Не принадлежит
nameserver 192.168.1.1                      # Правильный DNS-сервер
search .

В результате все локальные имена хостов в моей интрасети (например, myhost) не разрешались. Повторный запуск sudo systemd restart systemd-resolved.service ничего не изменил.

В конце концов, я выяснил, что проблема была связана с моим iPhone 8, который был подключен к компьютеру по USB-кабелю. На iPhone был активирован Личный точка доступа, и systemd считал его моим основным DNS-сервером, перезаписывая 192.168.1.1.

Как я могу предотвратить повторение этой проблемы в будущем, когда мой iPhone будет подключен к компьютеру? Есть ли способ сказать systemd, чтобы он игнорировал точку доступа iPhone? Большое спасибо.

Ответ или решение

Как предотвратить проблемы с разрешением DNS в systemd из-за USB-соединения с iPhone

Введение

Проблема, с которой вы столкнулись на вашем Ubuntu 22.04.5, связана с неправильной конфигурацией DNS-серверов из-за подключения к iPhone по USB. Это распространённая ситуация, когда системы автоматически определяют приоритетные сетевые интерфейсы, и, в данном случае, ваш iPhone, работающий в режиме мобильной точки доступа, стал главным источником для разрешения имен. В этом руководстве мы обсудим, как избежать такой проблемы в будущем, не теряя при этом функциональности вашего интернет-соединения.

Понимание проблемы

Когда вы подключаете iPhone к компьютеру и активируете функцию «Личная точка доступа», операционная система Ubuntu автоматически распознает его как новый сетевой интерфейс. Ваша система systemd может переопределить настройки DNS, добавляя DNS-серверы, предоставленные iPhone. Это может нарушить ваше локальное разрешение имен, особенно если нужные DNS-серверы не прописаны в конфигурации.

В вашем случае DNS-серверы, появившиеся в /etc/resolv.conf:

  • fe80::e0eb:40ff:fe79:e364%36 – это IPv6-адрес, вероятно, ваш iPhone.
  • 172.20.10.1 – адрес самого iPhone для связи с устройствами, подключенными к его точке доступа.
  • 192.168.1.1 – ваш правильный локальный DNS-сервер, который был затерт.

Решения для предотвращения проблемы

1. Настройка systemd для игнорирования интерфейса

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

Пример:

  1. Откройте или создайте файл конфигурации для вашего интерфейса systemd-networkd в /etc/systemd/network/.

    sudo nano /etc/systemd/network/10-eth.network
  2. Добавьте следующее содержимое, заменив <INTERFACE> вашим iPhone-интерфейсом (например, usb0):

    [Match]
    Name=<INTERFACE>
    
    [Network]
    DNS=192.168.1.1   # Ваш правильный DNS

2. Регулировка настроек DHCP

Вы можете также настроить dhclient, чтобы он не учитывал DNS-серверы, предоставляемые iPhone. Для этого выполните следующее:

  1. Откройте файл /etc/dhcp/dhclient.conf.

    sudo nano /etc/dhcp/dhclient.conf
  2. Добавьте строки, чтобы игнорировать DNS,

    supersede domain-name-servers 192.168.1.1;

Таким образом, вы зададите приоритетный DNS-сервер, и systemd-ресолвер будет игнорировать другие DNS-серверы.

3. Отключение мобильной точки доступа при использовании компьютера

Если проблемы продолжают возникать, самым простым решением может быть выключение функции мобильной точки доступа на вашем iPhone, когда вы подключаете его к компьютеру. Это предотвратит автоматическое добавление нежелательных DNS-серверов в конфигурацию.

Заключение

Конфликт DNS в Ubuntu из-за подключения iPhone в режиме точки доступа может вызвать затруднения в работе локальной сети. Применив описанные выше методы, вы сможете избежать таких проблем в будущем, гарантируя, что нужные вам сетевые настройки остаются приоритетными. Если у вас остались вопросы или возникли дополнительные трудности, рекомендуется обратиться к документации Ubuntu или сообществу для получения более детальной информации и поддержки.

Оцените материал
Добавить комментарий

Капча загружается...