22

Можно ли назначить читаемый псевдоним строки IP-адресу, например 192.168.1.1? Может быть, что-то вроде этого:

192.168.1.1 -> router.home

или же

192.168.1.22 -> printer.home

Нет необходимости, чтобы router.home был доступен из внешней сети, но только в локальной сети. На самом деле, он не должен быть доступен извне.

Я предполагаю, что цель состоит в том, чтобы иметь локальный сервер DNS, который отвечает на адрес router.home. Есть идеи, как создать такой псевдоним?

РЕДАКТИРОВАТЬ: Yamakaja ответ отлично работает, но он требует изменения файла hosts на каждом компьютере в локальной сети. Можно ли вместо этого выполнять поиск локального DNS на домашнем маршрутизаторе? Это пропустило бы много ручной работы.

3 ответа3

17

В дополнение к ответу Yamakaja, это то, как вы настраиваете локальный DNS-сервер.

Во-первых, вам нужен компьютер, на котором вы хотите запустить DNS-сервер. Это может быть один из ваших обычных компьютеров (если они работают под управлением Linux и в большинстве случаев) или, например, Raspberry Pi. Преимущества такого устройства в том, что оно дешевое, не требует много энергии и мало.

Настройка DNS-сервера

Я решил настроить DNS-сервер на Raspberry Pi, используя dnsmasq, небольшой инструмент DNS-сервера, идеально подходящий для использования в небольших сетях. Вы также можете использовать bind, де-факто стандартный инструмент DNS, но это, вероятно, слишком сильно для небольшой домашней сети.

Установите dnsmasq с помощью менеджера пакетов в системах на основе Debian (например, Распбиан), команда будет

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 (если вам это интересно):

9

Да, и есть два (или больше?) опции:


Редактирование вашего файла hosts (ленивый путь)

В зависимости от вашей операционной системы вам нужно будет добавить запись в ваш файл "hosts". Вы можете найти его в /etc/hosts на большинстве Unixoids и в C:\Windows\system32\drivers\etc\hosts на Windows.

Чтобы добавить свою запись, перейдите в конец файла и добавьте строку в следующем формате:

<IP>       <the hostname to assign>

например.

192.168.1.1      router

(Обратите внимание, пространство между ip и именем хоста не имеет значения. Но это выглядит лучше, если совпадает с другими записями. Вы можете использовать вкладки или пробелы)

Затем вы можете получить доступ к маршрутизатору в браузере, просто нажав

http://router/

или же

router/

Локальный DNS-сервер

Пожалуйста, смотрите ответ TuringTux для получения дополнительной информации

2

Я хочу обновить отличный ответ выше:

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

Если это так, вы можете просто добавить свой локальный адрес 192.168.1.22 в него как printer.home . В противном случае, я боюсь, вы ограничены редактированием файлов локальных хостов или настройкой собственного DNS-сервера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .