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 для DNS. Я что-то упускаю здесь очевидное?

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

    domain-needed
    bogus-priv
    local=/local/
    domain=local
    

3 ответа3

7

При использовании стандартного 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 поначалу довольно сложен по сравнению с простым dnsmasq.)


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

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

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).

0

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

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

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