Настройка DNS клиента на Ubuntu. Использование DNS сервера dnsmasq
Настройка и управление DNS клиентом на Ubuntu 18.04. Конфигурация DNS сервера dnsmasq.
Проверка DNS записей
Проверить TXT запись в DNS:
nslookup -type=TXT _some.domain.com
dig -t txt _some.domain.com
dig @8.8.8.8 -t txt _some.domain.com
* DNS сервера AdGuard.com (блочит рекламу, счетчики, фишинговые сайты)
dig @94.140.14.14 2ip.fun
dig @94.140.15.15 2ip.fun
Настройка DNS клиента
Определить используемый DNS сервер:
nslookup qip.cx
nslookup info
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: qip.cx
Address: x.x.x.x
Определить IP хоста (резолв hostname):
dig 2ip.fun +short
Определить IP хоста или проверить работоспособность заданного DNS сервера:
dig @8.8.8.8 skype.com
Определить hostname/domain по IP:
host 77.123.139.189
Очистить DNS кеш:
sudo /etc/init.d/dns-clean start
Установить статичный список DNS серверов:
sudo nano /etc/resolvconf/resolv.conf.d/tail
## My custom configuration in the /etc/resolvconf/resolv.conf.d/tail ##
nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 8.8.4.4
И обновить конфиг /etc/resolv.conf:
sudo resolvconf -u
Примечание
Грязный-хак - сделать неизменяемым /etc/resolv.conf:
sudo nano /etc/resolv.conf
## nameserver 8.8.8.8
sudo chattr +i /etc/resolv.conf
Чтобы переопределить DNS-серверы предоставляемые маршрутизаторами, добавьте параметр конфигурации:
sudo nano /etc/dhcp/dhclient.conf
supersede domain-name-servers 8.8.8.8,8.8.4.4;
Настройка DNS сервера dnsmasq
Настройка собственной доменной зоны в отдельном конфиге:
sudo gedit /etc/dnsmasq.d/lcl.conf
Конфиг для корневого домена локальной разработки .lcl:
address=/.lcl/127.0.0.1 # Работает на локалке на любых соединениях с динамик IP. Но, не резолвит домены для других девайсов!
#address=/.lcl/192.168.1.101 # Работает на всех девайсах в локалке. Но только со статик IP: 192.168.1.101
В настройках сетевого соединения (Wi-Fi, Ethernet) в качестве DNS сервера нужно указать локальный хост: 127.0.0.1
DNS сервер для доступа к локальным сайтам на других девайсах в локальной сети:
sudo dnsmasq --address=/lcl/192.168.1.101 --listen-address=192.168.1.101
Внимание!
При ошибке:
dnsmasq: failed to create listening socket for port 53: Адрес уже используется
Смотрим список активных процессов, которые слушают 53 порт:
netstat -anlp | grep -w LISTEN
sudo lsof -i :53
#dns server, #dnsmasq