В дополнение к ответу Ямакая , это то, как вы настраиваете локальный DNS-сервер.
Во-первых, вам нужен компьютер, на котором вы хотите запустить DNS-сервер. Это может быть один из ваших обычных компьютеров (если они работают под управлением Linux и в большинстве случаев) или, например, Raspberry Pi . Преимущества такого устройства в том, что оно дешевое, не требует много энергии и мало.
Настройка DNS-сервера
Я решил настроить DNS-сервер на Raspberry Pi, используя dnsmasq
небольшой инструмент DNS-сервера, который идеально подходит для использования в небольших сетях. Вы также можете использовать bind
стандартный DNS-инструмент де-факто, но он, вероятно, слишком силен для небольшой домашней сети.
Установите dnsmasq
с помощью менеджера пакетов, в системах на основе Debian (например, Raspbian), команда будет
sudo apt-get install dnsmasq
Теперь я предполагаю, что вы уже настроили статическое распределение IP-адресов (т.е. IP-адреса, которые вы указали в своем вопросе, не меняются). Если нет, dnsmasq
можно также использовать его в качестве сервера DHCP, но я этого еще не сделал.
dnsmasq
извлекает имена хостов из /etc/hosts
. Отредактируйте этот файл следующим образом:
# IP address Host name
192.168.1.1 router
192.168.1.22 printer
Имя хоста router
теперь назначено 192.168.1.1
, printer
для 192.168.1.22
.
Теперь вы настроили свой собственный DNS-сервер, но компьютеры в вашей сети еще не используют его. Чтобы заставить их использовать этот сервер, вы должны сделать один шаг подготовки:
Найдите IP-адрес вашего устройства dnsmasq, используя ip address
(предположим, что это 192.168.1.42
). Откройте /etc/dnsmasq.conf
и добавьте следующие строки:
listen-address=127.0.0.1
listen-address=192.168.1.42
Это говорит о том, что dnsmasq
он должен прослушивать запросы к нему, когда они адресованы 127.0.0.1
(т.е. когда он сам хочет использовать свой DNS-сервер) или 192.168.1.42
(т.е. когда другие компьютеры хотят использовать его DNS-сервер).
Использование DNS-сервера
Вы должны указать каждому компьютеру в вашей сети, что он должен (также) использовать в 192.168.1.42
качестве DNS-сервера. То, как вы это сделаете, зависит от вашей операционной системы. Вы можете легко найти нужную операционную систему в Интернете (просто выполните поиск «Изменить DNS-сервер на <OS>» или что-то в этом роде).
Для Windows 7 вы можете следовать этому руководству: https://www.opennicproject.org/configure-your-dns/how-to-change-dns-servers-in-windows-7/ .
В моей системе (Arch Linux) мне пришлось добавить следующую строку в /etc/resolvconf.conf
name_servers=192.168.1.42
Обратите внимание, что файл, который вы должны использовать, зависит от конфигурации вашего сетевого менеджера. Добавьте IP-адрес DNS-сервера на каждый компьютер, на котором вы хотите использовать свой DNS.
Вам, вероятно, придется перезапустить устройства, если они не работают сразу.
Вот и все, вы сделали. Теперь вы можете получить доступ ко всем устройствам, которые вы ввели /etc/hosts
на сервере dnsmasq, просто используя имя хоста, которое вы ему дали.
(Необязательно) Проверка работоспособности
Если вы хотите проверить, правильно ли работает разрешение DNS, установите dnsutils
(Linux) в системе, которая должна использовать ваш сервер. Затем выполните
$ dig router
Это должно вернуть что-то вроде этого
; <<>> DiG 9.10.4-P1 <<>> router
;; global options: +cmd
;; Got answer:
...
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;router. IN A
;; ANSWER SECTION:
router. 0 IN A 192.168.1.1
;; Query time: 14 msec
;; SERVER: 192.168.1.42#53(192.168.1.42)
;; WHEN: So Jun 26 10:43:18 CEST 2016
;; MSG SIZE rcvd: 50
Он показывает имя хоста, который вы хотите разрешить, IP-адрес, к которому он был разрешен, и используемый DNS-сервер. Как видите, все хорошо.
(Необязательно) Указание ДВУ
Если вы хотите получить доступ к устройствам не только с помощью router
или printer
с помощью router.home
и printer.home
, добавьте следующие строки в ваш /etc/dnsmasq.conf
:
expand-hosts # Tells dnsmasq to add a TLD to each host name
domain=home # The TLD
Возможно, вам придется перезагрузить снова.
Источники / дальнейшее чтение
О себе dnsmasq
:
О bind
(если вы заинтересованы в этом):