|
Как настроить DNS-сервер Raspberry Pi
Настроив DNS-сервер на своем Raspberry Pi, вы можете использовать его, чтобы сократить время, необходимое вашему компьютеру для выполнения DNS-запросов. DNS-сервер на Pi будет делать запросы к другим DNS-серверам, чтобы определить IP для этого запроса и кэшировать его. Это означает, что когда вы снова запрашиваете то же доменное имя, вам будет возвращен этот запрос почти мгновенно. Pi-Hole - это программный пакет, который поставляется с набором дополнительных функций, таких как блокировка доменного имени, а также с простым в использовании интерфейсом, который позволяет с легкостью управлять настройкой DNS.
Настройка DNS-сервера на Raspberry Pi
1.В этом руководстве мы будем использовать операционную систему Raspbian. Другие операционные системы могут работать, но это не гарантируется. Прежде чем мы сможем настроить Raspberry Pi в качестве DNS-сервера, мы должны убедиться, что все обновлено. Мы можем сделать это, выполнив следующие две команды на нашем Raspberry Pi.
sudo apt update
sudo apt upgrade
2. После завершения обновления мы можем приступить к установке программного обеспечения, которое мы будем использовать для настройки нашего Pi в качестве DNS-сервера. Этот пакет программного обеспечения, который мы устанавливаем, называется DNSmasq . DNSmasq - это легкий и простой DNS-сервер, который был разработан для небольших сетей. Благодаря своему легкому характеру DNSmasq является идеальным решением для настройки DNS-сервера на Raspberry Pi, поскольку он не истощает его ограниченные ресурсы. Мы можем установить dnsmasq на Raspberry Pi, выполнив следующую команду.
sudo apt install dnsmasq
Настройка DNS-сервера
1. Теперь, когда мы продвинулись вперед и установили программное обеспечение dnsmasq на наш Raspberry Pi, мы должны внести в него некоторые изменения конфигурации. Изменения, которые мы внесем в его файл конфигурации, позволят вашему Raspberry Pi работать как лучший DNS-сервер. Мы можем начать вносить изменения в файл, выполнив следующую команду.
sudo nano /etc/dnsmasq.conf
Чтобы легче находить нужные вам разделы, вы можете использовать CTRL+ Wдля поиска нужного текста.
Находим
#domain-needed
Заменим
domain-needed
Этот параметр изменяет DNS-сервер таким образом, чтобы он не пересылал имена, не содержащие точки ( . ) Или имени домена ( .com ), вышестоящим серверам имен. Это сохранит в локальной сети любые простые имена, такие как « localhost » или « dlinkrouter ».
Находим
#bogus-priv
Заменим
bogus-priv
Этот параметр запрещает DNS-серверу пересылать запросы обратного просмотра с локальным диапазоном IP-адресов вышестоящим DNS-серверам. Это помогает предотвратить утечку настроек локальной сети, поскольку IP-адреса никогда не будут отправлены на вышестоящие серверы.
Находим
#no-resolv
Заменим
no-resolv
С помощью этой опции мы говорим dnsmasq не читать файл « /etc/resolv.conf » для своих вышестоящих серверов имен и вместо этого полагаться на те, которые указаны в его конфигурации.
Находим
#server=/localnet/192.168.0.1
Заменим
server=8.8.8.8
server=8.8.4.4
Используя это, мы инструктируем dnsmasq использовать DNS-серверы Googles для своих вышестоящих серверов имен. Вы также можете использовать другие общедоступные DNS, такие как DNS CloudFlare или OpenDNS .
Находим
#cache-size=150
Заменим
cache-size=1000
С помощью этой опции мы увеличиваем количество DNS-запросов, которые программа dnsmasq будет кэшировать. Увеличив размер кеша, мы сможем улучшить общую производительность DNS-серверов Raspberry Pi и сократить время выполнения DNS-запросов.
2.После изменений, внесенных в файл конфигурации, теперь вы можете сохранить файл, нажав CTRL+, Xа Yзатем ENTER.
3. Поскольку мы внесли изменения в конфигурацию dnsmasq, нам нужно будет перезапустить его службу, чтобы она прочитала наши изменения. Мы можем перезапустить dnsmasq, выполнив следующую команду.
sudo systemctl restart dnsmasq
4. Поскольку мы внесли некоторые изменения в службу dnsmasq, мы должны проверить, правильно ли она запускается. Мы можем проверить статус нашего DNS-сервера, используя команду ниже ..
sudo systemctl status dnsmasq
Если статус отображается как « Активен: активен (работает) », значит, теперь у вас есть Raspberry Pi, успешно работающий в качестве DNS-сервера. Теперь вы должны указать своему устройству IP-адрес Rasberry Pi, чтобы использовать его в качестве DNS-сервера.
Тестирование DNS-сервера Raspberry Pi
1.Если вы хотите протестировать результаты своего DNS-сервера Raspberry Pi, не меняя свой DNS, вы можете использовать инструмент « копать ». Чтобы использовать инструмент dig на вашем Raspberry Pi, вам нужно сначала установить пакет « dnsutils », выполнив команду ниже.
sudo apt install dnsutils
2.Установив пакет « dnsutils » на Raspberry Pi, мы можем продолжить и запросить наш DNS-сервер Pi, выполнив команду ниже. Используя « @localhost », мы говорим инструменту dig использовать DNS-сервер localhost для поиска DNS.
dig pimylifeup.com @localhost
3. От этой команды вы должны получить ответ, как показано ниже.
Этот ответ показывает ответ, который программа для раскопок получила с DNS-сервера Raspberry Pi. Из этого ответа вы можете увидеть, сколько времени потребовалось для выполнения запроса, а также дополнительную информацию.
pi@raspberrypi:~ $ dig pimylifeup.com
; <<>> DiG 9.11.5-P4-5.1-Raspbian <<>> pimylifeup.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40018
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;pimylifeup.com. IN A
;; ANSWER SECTION:
pimylifeup.com. 257 IN A 104.25.42.22
pimylifeup.com. 257 IN A 104.25.43.22
;; Query time: 45 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Aug 01 08:04:35 BST 2019
;; MSG SIZE rcvd: 75
4. Если вы повторно запустите команду, вы заметите, что время запроса будет значительно сокращено, поскольку он может получить запрос DNS из кеша. Поскольку мы запрашиваем у localhost, у вас должно быть время запроса, близкое к 0 мсек .
;; Query time: 0 msec
Надеюсь, к настоящему времени вы успешно настроили Raspberry Pi для работы в качестве DNS-сервера для вашей сети.