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


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


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 для получения дополнительной информации


Спасибо чувак! Это прекрасно работает для одного компьютера. Можно ли распространить это на все компьютеры в локальной сети, не изменяя вручную файл hosts на каждом компьютере?
— Санджихан

@sanjihan Это не так просто, например, вы можете купить собственное доменное имя менее чем за 1 доллар на namecheap и использовать его, чтобы указать на свои вещи. Например, вы можете настроить маршрутизатор. <Yourdomain>. <Tld>, чтобы он указывал на 192.168.1.1, но это сделает ваши имена длиннее. Также пометьте мой ответ как принятый, чтобы другие пользователи знали, что на этот вопрос дан ответ.
— Ямакая

Можете ли вы просто использовать имя ПК, если они входят в одну и ту же рабочую группу?
— Джиггунджер

@jiggunjer я на самом деле не знаю. Я не очень знаком с Windows
— Yamakaja

2

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.