Как узнать dns сервер linux
Перейти к содержимому

Как узнать dns сервер linux

  • автор:

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

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

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

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

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

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

sudo nano /etc/resolv.conf

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

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

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

systemd-resolve --status

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

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

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

nmcli device show | grep DNS

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

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

nameserver 8.8.8.8 nameserver 8.8.4.4 

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

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

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

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

Как узнать IP DNS сервера в Linux

DNS (Domain Name System — система доменных имён) является важным элементом сети. Без DNS не работали бы Интернет-браузер, почтовые сервера, стриминговые сервисы и другие.

Задача DNS сообщать IP адрес запрошенного имени хоста (обычно домена веб-сайта).

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

То есть DNS решает проблему, что нам не нужно помнить/знать IP адреса всех сайтов, которые мы посещаем.

DNS это обширная и интересная тема, но в этой заметке мы только поговорим, как узнать, к какому именно DNS серверу делаются запросы с данного компьютера на Linux? То есть мы научимся определять IP адрес используемого DNS сервера.

Имеется несколько способов сделать это, мы рассмотрим самые универсальные, подходящие для Linux, BSD, и других Unix-подобных систем.

Как узнать какой DNS сервер используется

1. Настройки DNS в системе хранятся в файле /etc/resolv.conf, то есть IP адрес DNS сервера можно узнать просто посмотрев этот файл.

С помощью команды cat:

cat /etc/resolv.conf

С помощью команды less:

less /etc/resolv.conf

Или с помощью команды grep:

grep "nameserver" /etc/resolv.conf

Все эти команды выведут одинаковые результаты, например в моём случае это:

nameserver 8.8.8.8 nameserver 8.8.4.4

Запись может быть только одна или их может быть несколько. В первую очередь используется первый указанный DNS сервер, если к нему не удаётся получить доступ, то используются запасные DNS (если они указаны).

2. Если вам нужен альтернативный метод (например, вы предполагаете, что настройки DNS изменены сетевым подключением), то вы можете использовать программу dig:

dig zalinux.ru

Используемый сервер имён показан в строке начинающейся с ;; SERVER:

;; SERVER: 8.8.8.8#53(8.8.8.8)

А в этом разделе, кстати, вы можете узнать IP адрес любого сайта:

;; ANSWER SECTION: zalinux.ru. 3799 IN A 185.26.122.38

3. Ещё один способ узнать IP адрес сайта, а заодно и IP DNS сервера к которому делаются запросы — с помощью команды nslookup:

nslookup zalinux.ru

В этих строках показан IP используемого DNS сервера:

Server: 8.8.8.8 Address: 8.8.8.8#53

А в этой строке IP адрес интересующего сайта:

Address: 185.26.122.38

Как посмотреть 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

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

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

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

nmcli dev show | grep DNS

Как видите, все очень просто. А чтобы изменить 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

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

How to Find My DNS Server IP Address in Linux

DNS (Domain Name System) is a fundamental facilitator of several networking technologies such as mail servers, Internet browsing, and streaming services e.g. Netflix and Spotify, among others.

It works on a special computer called a DNS server – which keeps a database record of several public IP addresses along with their corresponding hostnames for it to resolve or translate hostnames to IP addresses upon user request.

[ You might also like: 4 Ways to Find Server Public IP Address in Linux Terminal ]

This happens so that we would not need to bother ourselves with remembering the IP addresses of the different websites we visit.

While there are several things we can discuss on DNS servers such as redirection and malware attack prevention, our focus today is on how to find out your very own dns server IP address.

There are several ways to check for it depending on the Operating System that you’re running but Linux, BSD, and Unix-like systems all share the same method so let’s begin with them.

How to Find My DNS Server IP Address

1. To find out your DNS Server IP address, use the following cat command or less command.

$ cat /etc/resolv.conf OR $ less /etc/resolv.conf

2. Another way is to use the following grep command.

$ grep "nameserver" /etc/resolv.conf nameserver 109.78.164.20

3. In newer Linux distributions that use systemd, you can use the systemd-resolve command to check the DNS server.

$ systemd-resolve --status | grep "DNS Servers"

4. If you’re using NetworkManager, you can use the nmcli command to get the DNS server information.

$ nmcli dev show | grep 'IP4.DNS'

Here, nameserver 192.168.0.1 is a name server IP address in what is called the dot notation – the format that applications on your workstation use for DNS routing.

Find DNS Name Server in Linux

How to Find My Website DNS Server IP Address

To find out a website DNS Server IP address, you can use the following dig command, which is used to query DNS information.

$ dig tecmint.com
Sample Output
; > DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6_10.1 > tecmint.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER

The output will provide you with a list of IP addresses for authoritative nameservers for your website (i.e., the DNS servers responsible for your domain).

tecmint.com. 21 IN A 204.45.67.203 tecmint.com. 21 IN A 204.45.68.203

Please note that the actual IP addresses you receive may vary depending on your website hosting provider or domain registrar. If your website is using third-party DNS services like Cloudflare or Google Cloud DNS, the IP addresses will be specific to those services.

Easy right? Perhaps we’ll talk about primary and secondary DNS Server addresses next time. Till then, feel free to share and drop your comments/suggestions in the discussion section below.

Martins D. Okoi

Martins Divine Okoi is a graduate of Computer Science with a passion for Linux and the Open Source community. He works as a Graphic Designer, Web Developer, and programmer.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

Related Posts

Run Linux Commands on Multiple Servers

Run Commands on Multiple Linux Servers

Fish Shell for Linux

Disable Bluetooth in Linux

Check Package Installed on Linux

Check Linux Partition Table

12 thoughts on “How to Find My DNS Server IP Address in Linux”

When using local dns cache systemd-resolved you can use:

$ resolvectl status

It will show the current DNS servers for each interface. You can specify the interface name (found with $ ifconfig ) to filter a specific interface. For example,

$ resolvectl status eth0 $ resolvectl status eth0

Sample Output

Link 1 (eth0) Current Scopes: DNS DefaultRoute setting: yes LLMNR setting: yes MulticastDNS setting: no DNSOverTLS setting: no DNSSEC setting: no DNSSEC supported: no Current DNS Server: 10.0.0.1 DNS Servers: 10.1.0.1

Anil Kumar Choudhury

$ nslookup -type=any google.com

Server: 192.168.7.1
Address: 192.168.7.1:53
Non-authoritative answer:
Name: google.com
Address: 142.250.191.206
google.com nameserver = ns1.google.com
google.com nameserver = ns4.google.com
google.com nameserver = ns2.google.com
google.com nameserver = ns3.google.com Server: 192.168.7.1 Reply

Many Linux users these days use a dns cache and so the dns server in resolve.conf is a loopback address to the dns cache on your own PC/Linux. systemd’s resolved is also often used but this updates resolve.conf for informational reference. Systemd-Resolved can have different dns servers for different networks concurrently and the resolve.conf will not reflect this but the man pages and status command are very informative. network manager also does some things differently. i think it sets up one of these dns caches but id don’t know much about it. I keep reading these “how to find my dns” how to pages but have yet to find one that covers the more modern scenarios. Reply

Adonis Tarcio
You missed probably one of the easiest one: nslookup Reply
René Hartman

On my Fedora 29 and RHEL 8 /etc/resolv.conf is still used for listing the nameservers. Same for my PureOS, Alpine, TinyCore and Atomic Host… My Ubuntu 16.04 LTSB and 18.04 LTSB have 127.0.0.1 and 127.0.0.53 respectively. Reply

@Andrew 127.0.0.52 is correct, because modern OSs use a local name server cache. Reply

I think you will find this is a dns cache on your local machine. see my other comment on the root article Reply

Except that all the modern Desktop Linux distros stopped listing nameservers in /etc/resolve.conf many years ago! If you look in that file now, all you get is 127.0.1.1, because most now have a local caching nameserver. Reply

Yes, anytime I see an article written since NetworkManager was forced upon us that still thinks resolv.conf is at all a useful source, I immediately know the author is clueless. Reply

/etc/resolv.conf says my nameserver is 127.0.0.53. That can’t be right. Reply
René Hartman
How to find your own external IP address?

$ dig +short myip.opendns.com @resolver1.opendns.com

This works fine on CentOS and RHEL but not on Ubuntu. Looks like Ubuntu’s dig command has less capabilities. Reply

Daniel M Tripp

That’s almost completely wrong and complete deprecated on almost every recent Ubuntu or Debian version I’ve used ! Contents of resolv.conf on my Raspberry Pi running Raspbian Stretch :

# Generated by resolvconf domain LOCAL nameserver 127.0.0.1

looking at the contents /etc/resolv.conf may have been true 10+ years ago – on a UNIX system like Solaris… Reply

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

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