Окрім відповіді Yamakaja , саме так ви налаштовуєте локальний 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-сервер. Як бачите, все добре.
(Необов’язково) Вказання TLD
Якщо ви хочете отримати доступ до пристроїв не тільки з 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(якщо вам це цікаво):