Я хочу настроить 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
Ответы:
При использовании стандартного DNS вы будете запускать DNS-сервер, который является полномочным для локального домена (
home.
илиlocal.
, хотя лучше избегать последнего - см. Примечание ниже), но также действует как распознаватель для всех других доменов.Для этой цели можно использовать dnsmasq - по умолчанию включен рекурсивный режим, и ваша конфигурация выглядит нормально; все, что нужно, это указать ему, какие серверы имен использовать для нелокальных доменов. Обычно они читаются из системного
/etc/resolv.conf
файла; однако, так как вы хотите, чтобы локальный домен также работал на компьютере DNS-сервера, вам нужно будет создать выделенную копию resolv.conf, которая будет использоваться только dnsmasq , в то время как исходный resolv.conf будет указыватьnameserver 127.0.0.1
.Примечание. Эти инструкции являются базовыми и должны быть адаптированы к используемому дистрибутиву 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 не позволяет предложить больше преимуществ, поэтому я не предлагаю это.)источник
Я обнаружил, что демон 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).источник
Локальное разрешение имен - это простая функция, и она была частью большинства маршрутизаторов, которые я использовал. Это также реализовано в прошивке DD-WRT. Netgear не заботится об этой функции, которая постоянно запрашивается .
Итак, ответ, который намного проще, чем другие, опубликованные здесь, - избегайте проблем и измените свой маршрутизатор Netgerat на что-то, что поддерживает локальное разрешение имен. Или, если это не вариант, и вы чувствуете в себе силы и получаете время, включите на нем DD-WRT.
источник