Если вы пользователь Ubuntu, то, вероятно, вы хотя бы раз сталкивались с ситуацией, когда "доменное имя не срабатывает, но доступ по IP-адресу работает". В большинстве случаев причиной этого является проблема с настройками DNS. В частности, в последних версиях Ubuntu используется демон DNS-резолвера systemd-resolved
, поэтому важно понимать его структуру.
1. Поток DNS-запросов
Внимательно прочтите и осмыслите приведенную ниже резюме, и это практически решит все проблемы.
- Пользователь отправляет запрос на домен через браузер или другие приложения
- Linux по умолчанию читает
/etc/resolv.conf
для получения DNS (это файл является символической ссылкой на/run/systemd/resolve/stub-resolv.conf
) /run/systemd/resolve/stub-resolv.conf
настроен на127.0.0.53
, и это приводит к появлениюsystemd-resolved
.- Система
systemd-resolved
управляется конфигурационным файлом/etc/systemd/resolved.conf
- Следовательно,
systemd-resolved
запрашивает DNS-сервер, указанный в/etc/systemd/resolved.conf
, - получает ответ и завершает преобразование домена в IP-адрес
2. Краткое резюме основных компонентов
Как упоминалось выше, в systemd-resolved
есть 4 ключевых конфигурационных файла. Понимание их роли является ключевым.
2-1. /etc/resolv.conf
- Место, где в традиционных системах Linux читается список DNS-серверов
- Однако сейчас должен существовать как символическая ссылка для совместимости с systemd
- Обычно он должен быть настроен следующим образом:
bash /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
- Таким образом, этот файл выполняет роль "посредника между традиционными приложениями и systemd-resolved" в текущей системе
2-2. /run/systemd/resolve/stub-resolv.conf
- Содержит информацию о локальном DNS-стаб-сервере (127.0.0.53), управляемом
systemd-resolved
- Если
/etc/resolv.conf
указывает на этот файл, все DNS-запросы проходят черезsystemd-resolved
2-3./etc/systemd/resolved.conf
systemd-resolved
является основным конфигурационным файлом- Здесь можно установить такие параметры, как
DNS=
,FallbackDNS=
, чтобы задать приоритеты - Это постоянная настройка, которая сохраняется после перезагрузки
2-4. /run/systemd/resolve/resolv.conf
- Файл, содержащий фактический список DNS-серверов, управляемый
systemd-resolved
- Продвинутые пользователи могут подключить его к
/etc/resolv.conf
вместоstub-resolv.conf
для прямых запросов к DNS-серверу (настройка обхода)
3. Пример возникновения проблемы: если настроенный DNS-сервер на роутере, предоставленном провайдером, нестабилен
- Если на роутере, предоставленном крупнейшим провайдером в Южной Корее KT, установлен DNS-сервер (например,
168.126.63.1
), но я не имею полномочий контролировать этот роутер, могут возникнуть периодические проблемы с DNS. - DNS от KT часто имеет нестабильную скорость ответа или регулярно возникают сбои при установке подключения UDP/TCP
- Если в журналах
systemd-resolved
повторяются следующие сообщения, это сигнал о проблемах:Используется ограниченный функционал TCP вместо UDP для DNS-сервера 168.126.63.1. Используется ограниченный функционал UDP вместо TCP для DNS-сервера 168.126.63.1.
- В результате не происходит разрешение домена → невозможно получить доступ к веб-сайту
4. Рекомендуемые DNS-серверы
Название | Адрес | Характеристики |
---|---|---|
Google DNS | 8.8.8.8 , 8.8.4.4 |
Быстрый и стабильный |
Cloudflare DNS | 1.1.1.1 , 1.0.0.1 |
Высокая скорость и отличная защита конфиденциальности |
Quad9 | 9.9.9.9 |
Предоставляет фильтрацию угроз безопасности |
5. Как правильно настроить надежный DNS
- Откройте файл
/etc/systemd/resolved.conf
[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=9.9.9.9
- Примените настройки
sudo systemctl restart systemd-resolved
- Проверьте, правильно ли подключен
/etc/resolv.conf
ls -l /etc/resolv.conf
→ Должно быть связано с /run/systemd/resolve/stub-resolv.conf
При необходимости принудительное сброс:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
6. Осторожно с вмешательством NetworkManager
В Ubuntu с графическим интерфейсом NetworkManager
может перезаписывать DNS
- Если автоматическая настройка DNS включена, настройки
systemd-resolved
могут быть проигнорированы - Решение проблемы:
bash nm-connection-editor
→ Редактирование соединения → Вкладка IPv4 → Отключить автоматический DNS → Ввести ручной DNS
7. Заключение
- Поскольку о нестабильности DNS от KT часто сообщается, лучше избегать его использования
- Настройка DNS через
systemd-resolved
является очень мощным способом повышения надежности в Ubuntu - Если вы точно поймете и примените настройки, можете сократить стресс из-за проблем с разрешением доменов
8. Комментарий Джесси
Настройки, основанные на понимании, представляют собой наиболее надежную безопасность и поддержание. Надеюсь, что эта статья окажется полезной для тех, кто путался в настройках DNS в Ubuntu.
댓글이 없습니다.