как посмотреть настройки dns linux

Настройка DNS в Linux

Сразу отметим, что речь в данной статье пойдет исключительно о клиентской части системы DNS в linux. О серверной части мы поговорим в другой статье (она-то как раз гораздо проще для восприятия). Итак, начнем.

Разобраться, как работает DNS в вашей системе, можно только поняв, как устроена та программа, которую вы запускаете. Серьезно, только сама программа определяет, как она будет работать с DNS, а не операционная система в целоми и не linux в частности. Нужно смотреть, как была написана вот эта вот конкретная программа. Но не огорчайтесь сразу, вам скорее всего не понадобится срочно изучать все возможные языки программирования, только чтобы настроить вашу программу на работу с DNS. Указанный выше случай справедлив больше для программ собраных статически, разнообразных самопалов или чисто академических творений всемозможных энтузиастов.

Современные программисты достаточно ленивы и собирают свои программы динамически, т.е. с использованием разделяемых библиотек. Они позволяют им не заботиться о ряде функциональных возможностей, таких как работа с сетью, шифрованием или DNS. Действительно, вам бы не понравилось переносить один и тот же код из программы в программу только ради того, чтобы дать ей возможность преобразовывать имена в IP адреса. А если в этом коде потом обнаружиться баг или серьезная уязвимость? Нет. Вся функциональность нынче вынесена в библиотеки. И так уж получилось, что в linux самой популярной библиотекой для преобразования имен является libnss. Т.е. повторюсь, это совсем не обязательно, что ваша программа будет собрана с использованием libnss. Да, большинство (99% программ) будут следовать законам libnss, однако имейте ввиду, что возможна сборка с какой-нибудь другой библиотекой, или вообще статически с самописным кодом. Это будет лишь означать, что настраиваться DNS в этих немногочисленных случаев по-особому.

И только когда libnss, пройдясь по всем модулям, так и не сможет найти соответствующий запрашиваемому имени IP адрес, тогда вам будет возвращен ответ примерно такого вида

# ping google.com
ping: google.com: Name or service not known

Заглянем в /etc/nsswitch.conf

# Name Service Switch configuration file.
# See nsswitch.conf(5) for details.

passwd: files mymachines systemd
group: files mymachines systemd
shadow: files

hosts: files mymachines myhostname dns
networks: files

protocols: files
services: files
ethers: files
rpc: files

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Подведем промежуточный итог:

files

Модуль files не настраивается. Работает с /etc/hosts в качестве базы данных имен и адресов. Синтаксис /etc/hosts предельно простой: IP адрес, полное имя (FQDN) набор алиасов (дополнительных имен)

# cat /etc/hosts
127.0.0.1 www.hippolab.ru hippolab.ru
127.0.0.1 localhost

resolve

Модуль resolve задействует механизм резолвинга имен внедренный в линукс командой, разрабатывающей systemd. Настраивается через /etc/systemd/resolved.conf. Соответственно узнать, какой DNS сервер сейчас используется можно посмотрев на диррективу «DNS=» в указанном файле. Если она закомментирована (перед строкой стоит решетка #), то systemd-resolved наследует конфигурацию либо у демона настройки сети systemd-networkd, либо берет информацию о доступных DNS серверах из /etc/resolv.conf. Если ему вообще не удается найти DNS сервера, то он попытается присоединиться к серверам Google: 8.8.8.8 и 8.8.4.4. Подробно о systemd-resolved в одной из наших предыдущих статей. В большинстве дистрибутивов по-умолчанию не задействован

myhostname

Модуль myhostname не настраиваются. Тоже часть systemd. Резолвит локальные имена машины сами в себя. Например можно пингануть hippo.localhost и вы получите результат. Зачем она надо, спросите вы, если уже есть /etc/hosts? Модуль myhostname надежнее. Редактируя /etc/hosts, человек может совершить ошибку, тогда как myhostname общается напрямую с ядром и ошибок не совершает

mymachines

Модуль mymachines позволяет резолвить имена контейнеров, запущенных systemd.

Модуль dns настраивается через /etc/resolv.conf, в качестве базы данных использует DNS сервера, обращаясь к ним через сеть. Соответственно узнать или прописать адреса DNS серверов можно в указанном файле. И тут стоит быть осторожным. Так как модуль dns является самым популярным способом резолвинга имен хостов в linux, файл /etc/resolv.conf является объектом пристального внимания разнообразных автоматических конфигураторов сети, таких как NetworkManager и т.п. Если вы работаете с одним из таких конфигураторов, то менять настройки надо в их собственных конфигурационных файлах, а не напрямую в /etc/resolv.conf, так как весьма вероятно, что им это не понравится, и ваша конфигурация будет перезаписана. Синтаксис /etc/resolv.conf простой и задается в формате ключ/значение: nameserver указывает на IP адрес DNS сервера, search позволяет указать домен поиска при использовании коротких имен без доменной части.

# cat /ets/resolve.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
search hippolab.ru

Модульная архитектура libnss позволяет действительно творить чудеса. Мы уже упомянули в начале статьи, что вы можете потенциально подключить модуль, который будет резолвить имена, используя базы данных MySQL или HTTP сервера. Возможности по истине безграничные

Кэш DNS в linux

Настало время поговорить о кэшэ DNS в linux. Кэш по-умолчанию в вашем дистрибутиве скорее всего выключен, однако мест, где его можно поискать не так уж и много. Понимая модульность libnss, вы наверняка уже догадались, что кэш можно встретить

Проверить, запущен ли nscd, можно с помощью systemctl

systemctl status nscd

Настраивается nscd через /etc/nscd.conf. Его синтаксис перекликается с таковым у /etc/nsswitch.conf, например, имена сервисов и там, и там одинаковые. Кроме того, поддерживается ряд глобальных параметров

logfile
debug-level
threads
max-threads
server-user
stat-user
reload-count unlimited|
paranoia
restart-interval
enable-cache
positive-time-to-live
negative-time-to-live
suggested-size

check-files
persistent
shared
max-db-size
auto-propagate

Т.е. для включения кэша в nscd (этот кэш первичный, т.е. отрабатывает ДО вызова любого модуля из /etc/nsswitch.conf) вам достаточно убедиться в наличии строки

enable-cache hosts yes

Простого перезапуска nscd бывает недостаточно для очистки кэша. Для очистки кэша резолвинга имен хостов в nscd используйте команду

Этой же командой вы можете очистить кэш и других сервисов, например passwd или groups. Просто замените «hosts» на нужный сервис

systemd-resolved

О systemd-resolved мы уже писали в статье Переходим на systemd-resolved. Но на всякий случай напомним. Для очистки кэша systemd-resolved в большинстве случаев достаточно просто перезапустить systemd-resolved командой

systemctl restart systemd-resolved

Или, не перезапуская сервис

dnsmasq

Кэш dnsmasq вычищается простым перезапуском

Источник

Какой командой посмотреть настройки DNS?

Всегда удивляло, что в галимой венде это делается одной командой ipconfig, которые выдает все- IP, шлюз, маску, DNS в Линуксе ее аналог ifconfig о DNS не сообщает ничего, как будто его нет (и про шлюз тоже) Как же это делается, есть ли такая команда?

Раньше обходился просмотром конфига /etc/resolv.conf

Но он показывает заданное значение, а интересно было бы узнать реальное значение DNS, которое, например, из-за сбоев, мало ли, может отличаться от заданного?

Так есть такая команда или нет?

Кстати, ее и смотрел, но не понял, как ей сказать, чтобы она показала dns настройки?

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Но он показывает заданное значение, а интересно было бы узнать реальное значение DNS, которое, например, из-за сбоев, мало ли, может отличаться от заданного?

Каких еще сбоев? Там и указан адрес днс сервера, которым пользуеются все программы.

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Так программы читают содержимое resolv.conf. В некоторых случаях (например, в некоторых вариантах настройки network-manager) он прописывает в resolv.conf localhost и одновременно поднимает dns-сервер dnsmasq, который уже сам настраивает.

Так программы читают содержимое resolv.conf.

— показал совершенно не то, что прописано в моем resolv.conf

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

ну так пропишите свой сервер в ресолв.конф. А уж в своем сервере укажите те сервера, которые вам нужны.

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Всегда удивляло, что в галимой венде это делается одной командой ipconfig, которые выдает все- IP, шлюз, маску, DNS в Линуксе ее аналог ifconfig о DNS не сообщает ничего, как будто его нет (и про шлюз тоже)

Так философия разная. Одна задача — одна программа, но выполняющая ее хорошо.

Настройки интерфейсов? ifconfig
Таблица маршрутизации? route
Настрокий DNS? Так они прописываются в /etc/resolv.conf, там и смотри.

На самом деле ifconfig и route считаются устаревшими и рекомендуется использовать утилиту ip.

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

в галимой венде это делается одной командой ipconfig

это ты просто венду плохо знаешь, начиная с утилиты route и далее

Источник

Настройка DNS в Ubuntu

Сервера DNS используются системой для преобразования сложных для запоминания IP адресов в простые доменные имена. Это делается потому что людям сложно запоминать несколько никак не связанных цифр, но очень просто запомнить слово.

Когда компьютеру нужно узнать IP адрес какого-либо домена, он отправляет запрос известному ему DNS серверу. Эти сервера могут быть получены автоматически от роутера по DHCP или же заданы в ручную. В этой статье мы рассмотрим как выполняется настройка DNS Ubuntu 16.04 и более старых версиях.

Настройка DNS в Ubuntu через GUI

Раньше, для настройки DNS серверов, которые будут использоваться системой было достаточно внести адреса нужных серверов в файл /etc/resolv.conf. Но сейчас всей конфигурацией сети в Ubuntu управляет NetworkManager, а этот файл теперь представляет собой только ссылку на файл NetworkManager.

Этот способ до сих пор работает, но в нем вы можете настроить DNS на LiveCD, или до перезагрузки. После перезагрузки все настройки собьются и придется все делать заново. Поэтому, чтобы все сохранилось нужно выполнять все действия через интерфейс NetworkManager. Сначала откройте контекстное меню для значка сети на панели и выберите «Изменить подключения»:

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Выберите ваше подключение и нажмите «Изменить»:

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

В открывшемся окне перейдите на вкладку «Параметры IPv4»:

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Затем, в поле «Способ настройки» выберите «Автоматически (DHCP, только адрес)»:

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Теперь немного ниже появиться поле «Серверы DNS», где вам нужно прописать нужные серверы, можно несколько адресов через запятую. Например, можно указать сервера от Google:

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Поле этого нажмите «Сохранить» и «Закрыть». Теперь можете переподключитесь к этому соединению и можете проверять текущий DNS сервер:

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Собственно, это все, но есть еще один способ настройки через консоль, если этот не сработал или вы предпочитаете работать из консоли.

Настройка DNS через терминал Ubuntu

В Ubuntu есть унифицированный интерфейс настройки сети, который настраивается через конфигурационный файл /etc/network/interfaces. Сначала смотрим список сетевых интерфейсов:

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Откройте файл для редактирования и найдите в нем имя своего сетевого интерфейса, например, auto enp0s3, если такой секции нет, ее нужно добавить:

sudo vi /etc/network/interfaces

auto enp0s3
iface enp0s3 inet dhcp

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Затем, добавьте в эту секцию строчку:

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

sudo vi /etc/dhcp/dhclient.conf

supersede domain-name-servers 8.8.8.8

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Здесь тоже адрес 8.8.8.8 означает адрес DNS сервера. Для верности, вы можете добавить свои адреса DNS серверов в файл /etc/resolvconf/resolv.conf.d/base:

sudo vi /etc/resolvconf/resolv.conf.d/base

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Чтобы настройки вступили в силу необходимо перезапустить сеть:

sudo systemctl restart networking

Возможно, даже лучше будет если вы полностью перезагрузите компьютер. Теперь вы можете открыть /etc/resolv.conf и посмотреть применялся ли новый адрес DNS:

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Как видите, в моем примере все заработало. Подобно этому выполняется настройка dns linux для любого дистрибутива.

Выводы

В этой небольшой статье мы рассмотрели как выполняется настройка DNS Ubuntu 16.04 через графический интерфейс или терминал. В Ubuntu автоматической настройкой DNS могут заниматься множество утилит и это создает некоторые проблемы при настройке, но со всем можно разобраться. Надеюсь, эта информация была полезной для вас.

Источник

Просмотр и изменение DNS в Linux

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linuxСлужба DNS (англ. Domain Name System — система доменных имён) используется для получения информации о доменах. Основное её предназначение — увязывать IP-адрес и доменное имя хоста. Посмотреть, к какому DNS-серверу подключен компьютер с Linux на борту, не просто, а очень просто. Как просто и поменять DNS в Linux.

Если Linux снабжён графическим интерфейсом, достаточно открыть сведения о сетевом соединении и посмотреть в строчку DNS.

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

По понятным причинам нас этот способ не очень интересует. Да и элементы интерфейса могут у разных сред рабочего стола различаться. Рассмотрим просмотр и настройку DNS в терминале Linux.

Традиционно DNS в Linux настраивалась через файл /etc/resolv.conf. Сейчас, однако, он может оказаться бесполезным. Откроем его любым консольным текстовым редактором, например nano:

Мы можем увидеть следующее:

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Это значит, что в системе есть systemd, который содержит свой локальный сервер DNS. Его адрес и прописан в этом файле. Однако, в конечном итоге, используются другие DNS-серверы! Посмотреть их можно по-разному. Можно использовать команду

Вы увидите нечто подобное тому, что на скриншоте ниже. Если в системе несколько сетевых интерфейсов, информация будет предоставлена по каждому.

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Другой способ — использовать утилиту nmcli. Введите команду

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Как изменить DNS? Если в системе нет systemd, то это можно сделать редактированием файла /etc/resolv.conf. Откройте его любым текстовым редактором, найдите строку nameserver и впишите адреса DNS-серверов. Если их несколько, введите их адреса последовательно. Например:

Если в ОС есть systemd, вышеописанных способ бесполезен, поскольку настройки будут перезаписываться при перезагрузке системы. В данном случае нам нужно редактировать файл /etc/systemd/resolved.conf.

В разделе Resolve отредактируйте строку DNS. При необходимости уберите символ # для раскомментирования. Адреса DNS-серверов прописываются через запятую.

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Как видим на этом примере, systemd несколько усложнил операционную систему Linux. Однако настроить DNS в ней до сих пор не составляет труда. Кроме того, в Linux можно пользоваться и файлом hosts.

Источник

Как посмотреть DNS в Linux

Служба DNS или Domain Name System позволяет превращать легко читаемый адрес сайта в ip адрес сервера на котором расположен этот сайт. Для этого используются DNS серверы, которые содержат таблицы соответствия ip адресов их доменным именам. По умолчанию система получает адрес DNS сервера автоматически по DHCP при подключении к сети.

В этой статье мы разберемся как посмотреть какие DNS серверы используются в Linux.

Как посмотреть DNS в Linux

Если вы уже имели опыт настройки сети в Linux, то знаете, что DNS серверы, используемые для резолвинга доменных имен указаны в файле /etc/resolv.conf:

sudo vi /etc/resolv.conf

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Но в современных дистрибутивах Linux с системой инициализации systemd обычно запущен локальный DNS сервер, адрес которого и прописан в этом файле, а какие сервера используются на самом деле непонятно. В таком случае можно воспользоваться утилитой systemd-resolve:

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

В самом низу вывода утилиты можно посмотреть DNS в Linux, которые сейчас используются. Информация выводится по каждому сетевому интерфейсу отдельно.

Также для решения подобной задачи можно использовать утилиту nmcli:

nmcli dev show | grep DNS

как посмотреть настройки dns linux. Смотреть фото как посмотреть настройки dns linux. Смотреть картинку как посмотреть настройки dns linux. Картинка про как посмотреть настройки dns linux. Фото как посмотреть настройки dns linux

Как видите, все очень просто. А чтобы изменить DNS сервер тоже трогать /etc/resolv.conf не желательно, так как он будет автоматически обновляться после перезагрузки. Если вы используете NetworkManager, то можно настроить DNS для сетевого подключения в интерфейсе программы. Или же можно отредактировать файл /etc/systemd/resolved.conf и добавить нужные адреса в секцию Resolve:

sudo vi /etc/systemd/resolved.conf

[Resolve]
DNS=8.8.8.8, 8.8.4.4

Как видите, все очень просто. Надеюсь, эта информация была вам полезной.

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *