Псевдоним для IP-адресов в домашней сети LAN

23

Можно ли назначить читаемый псевдоним строки 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 на домашнем маршрутизаторе? Это пропустило бы много ручной работы.

sanjihan
источник
2
Обратите внимание, что некоторые маршрутизаторы делают это сами, например, если вы используете маршрутизаторы Asus и заходите на router.asus.com, он откроет страницу конфигурации маршрутизатора. Другие маршрутизаторы имеют аналогичные «хитрости», чтобы сделать подобное также.
acejavelin
Нет, я не использую роутер asus. Вопрос на самом деле немного более общий ... Не только я хотел бы получить доступ к маршрутизатору без IP, но и к другим устройствам, подключенным к сети. Я добавлю правку.
Санджихан
2
Моя точка зрения заключалась в том, что некоторые маршрутизаторы имеют встроенную возможность, поскольку они часто выступают в качестве сервера кэширования DNS, поскольку вы не
указали,
1
да да, я получил это и спасибо! роутер был просто примером. Представьте себе, что в локальной сети также работает принтер или Raspberry PI или система вентиляции, управляемая через Интернет.
Санджихан
@sanjihan Я думаю, вам нужно будет рассказать о марке и модели вашего маршрутизатора или рассказать, что вы используете для DNS, чтобы кто-то дал вам дальнейшие инструкции о конфигурациях, которые вы сможете выполнить для этой задачи. Итак, резюмируем, 1.)производим и моделируем устройство маршрутизатора или 2.)что именно вы используете для DNS (например, Windows DNS, встроенный маршрутизатор и т. Д.)
Pimp Juice IT

Ответы:

18

В дополнение к ответу Ямакая , это то, как вы настраиваете локальный 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(если вы заинтересованы в этом):

TuringTux
источник
11

Да, и есть два (или более?) Варианта:


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

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

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

<IP>       <the hostname to assign>

например.

192.168.1.1      router

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

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

http://router/

или

router/

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

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

Yamakaja
источник
Спасибо чувак! Это прекрасно работает для одного компьютера. Можно ли распространить это на все компьютеры в локальной сети, не изменяя вручную файл hosts на каждом компьютере?
Санджихан
@sanjihan Это не так просто, например, вы можете купить собственное доменное имя менее чем за 1 доллар на namecheap и использовать его, чтобы указать на свои вещи. Например, вы можете настроить маршрутизатор. <Yourdomain>. <Tld>, чтобы он указывал на 192.168.1.1, но это сделает ваши имена длиннее. Также пометьте мой ответ как принятый, чтобы другие пользователи знали, что на этот вопрос дан ответ.
Ямакая
Можете ли вы просто использовать имя ПК, если они входят в одну и ту же рабочую группу?
Джиггунджер
@jiggunjer я на самом деле не знаю. Я не очень знаком с Windows
Yamakaja
2

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

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

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

Valentin
источник