Как настроить «локальный» домен, чтобы каждый пользователь в моей локальной сети мог просматривать локально размещенный сайт?

16

Я хочу настроить MediaWiki на одном из моих домашних компьютеров, и затем все запросы, сделанные в локальной сети для wiki.home или wiki.local, указывают на это поле. Я знаю, что это можно сделать, редактируя каждый файл / etc / hosts отдельно, но я хочу что-то более автоматизированное, чтобы, например, если мой друг или член семьи приходил ко мне домой, им не приходилось возиться с файл hosts для просмотра сайта.

Есть ли простой способ сделать это? У меня есть вики и работает, и я изучал dnsmasq, но я не могу понять, как правильно настроить DNS. Поскольку мне нужно автоматизированное решение, я чувствую, что мне нужно изменить настройки DNS на моем маршрутизаторе, но если я изменю там настройки DNS, как я могу разрешить внешние хосты?

Детали конфигурации

  • Маршрутизатор: Netgear WNR2000v2. Маршрутизатор дает мне возможность вручную указывать DNS-серверы, которые, как я предполагаю, мне придется указать на мой ящик с Ubuntu, если я хочу, чтобы это было запущено и запущено.

  • MediaWiki и хост dnsmasq: Запускает Ubuntu 12.04. У меня были некоторые трудности с конфигурацией dnsmasq (в основном из-за моей неопытности). Например, я не уверен, но я думаю, что во время установки Ubuntu изменил мои настройки DNS, так что /etc/resolv.confтеперь он был 127.0.0.1единственным DNS-сервером. В тот момент я мог разрешить локальные хосты, но больше ничего. Я решил это временно, изменив /etc/resolv.confи добавив 192.168.1.1в качестве вторичного сервера имен, но проблема здесь заключается в том, что я 192.168.1.1буду использовать Ubuntu box для DNS. Я что-то упускаю здесь очевидное?

  • Настройки dnsmasq: раскомментировали следующие строки:

    domain-needed
    bogus-priv
    local=/local/
    domain=local
    
Дэн
источник
Подумайте о публикации вашей конфигурации. Кроме того, что вы пробовали? Какие настройки вы изменили на своем роутере? Какой у вас роутер? Я предполагаю, что вы используете Linux, но какой дистрибутив? Есть так много вещей, которые могут пойти не так, что мы могли бы написать книгу на эту тему;)
jmort253
dnsmasq будет работать, но другие альтернативы включают mDNS и NIS .
Lèse Majesté
Вы можете просто изменить название вашей машины на Wi-Fi?
ytpillai

Ответы:

8

При использовании стандартного DNS вы будете запускать DNS-сервер, который является полномочным для локального домена ( home.или local., хотя лучше избегать последнего - см. Примечание ниже), но также действует как распознаватель для всех других доменов.

Для этой цели можно использовать dnsmasq - по умолчанию включен рекурсивный режим, и ваша конфигурация выглядит нормально; все, что нужно, это указать ему, какие серверы имен использовать для нелокальных доменов. Обычно они читаются из системного /etc/resolv.confфайла; однако, так как вы хотите, чтобы локальный домен также работал на компьютере DNS-сервера, вам нужно будет создать выделенную копию resolv.conf, которая будет использоваться только dnsmasq , в то время как исходный resolv.conf будет указывать nameserver 127.0.0.1.

# cp /etc/resolv.conf /etc/dnsmasq-resolv.conf
# echo "nameserver 127.0.0.1" > /etc/resolv.conf
# dnsmasq -r /etc/dnsmasq-resolv.conf

Примечание. Эти инструкции являются базовыми и должны быть адаптированы к используемому дистрибутиву Linux. В частности, проверьте руководства по Debian и Ubuntu на dnsmasq.

После этого необходимо настроить маршрутизатор для использования этого компьютера в качестве DNS-сервера; все DNS-запросы компьютеров вашей сети будут обрабатываться dnsmasq .

(Полнофункциональные DNS-серверы, такие как bind9 , могут сами выполнять рекурсивные запросы - настройка вышестоящих серверов имен становится совершенно необязательной. Например, так работают серверы имен вашего интернет-провайдера. Однако поначалу размещение собственного домена с помощью bind9 довольно сложно, в сравнение с простой днсмаск .)


Примечание. Если у вас есть Avahi (он же Bonjour), настроенный на любом компьютере в сети (который по умолчанию используется в Ubuntu), лучше всего избегать использования local.DNS и выбирать что-то подобное home., поскольку имена в форме name.localуже обрабатываются Avahi. ,

(Хотя Avahi обычно отвечает только на запросы current-hostname.local, на самом деле можно публиковать дополнительные записи, такие как wiki.local; им, однако, потребуются дополнительные IP-адреса для добавления из-за того, как работает mDNS. Из-за этого использование Avahi вместо централизованного DNS не позволяет предложить больше преимуществ, поэтому я не предлагаю это.)

user1686
источник
2

Я обнаружил, что демон Avahi - самый простой способ сделать это. Примечание: если вы используете компьютеры Windows для подключения к домену .local, вам необходимо убедиться, что на этих компьютерах установлен iTunes или другой клиент Bonjour.

Проверьте эту ссылку для получения дополнительной информации: http://www.howtogeek.com/167190/how-and-why-to-assign-the-.local-domain-to-your-raspberry-pi/

Хотя эта ссылка специфична для Raspberry Pi, она должна работать на компьютерах с Ubuntu таким же образом. Для других дистрибутивов Linux, которые не используются apt-get, просто настройтесь apt-getна соответствующий менеджер пакетов - например, yumдля Fedora и CentOS)

Вот точные команды, которые я выполнил для запуска этого на моем медиа-сервере Raspberry Pi:

sudo apt-get update && sudo apt-get upgrade sudo apt-get install avahi-daemon

Оттуда он автоматически начинает использовать имя хоста вашего компьютера плюс .localрасширение в качестве имени домена. Таким образом, если имя хоста вашей машины есть mediaserver, то вы можете получить к нему доступ в сети, набрав mediaserver.localв строке URL-адреса любой машины, на которой есть Bonjour / Avahi (то есть все Mac, а также машины Windows с установленным iTunes).

camercu
источник
0

Локальное разрешение имен - это простая функция, и она была частью большинства маршрутизаторов, которые я использовал. Это также реализовано в прошивке DD-WRT. Netgear не заботится об этой функции, которая постоянно запрашивается .

Итак, ответ, который намного проще, чем другие, опубликованные здесь, - избегайте проблем и измените свой маршрутизатор Netgerat на что-то, что поддерживает локальное разрешение имен. Или, если это не вариант, и вы чувствуете в себе силы и получаете время, включите на нем DD-WRT.

Олег Михеев
источник