Я не хочу использовать IP-адрес, но какое-то легко запоминающееся имя, например http://free.goodies, открывает веб-страницу, которую я создал.
Это можно сделать, разместив свой собственный DNS-сервер.
Имейте в виду, что хотя любой компьютер, который вы решите использовать в качестве DNS-сервера, можно использовать для других целей, он должен быть включен с соответствующей службой, чтобы разрешить настраиваемые доменные имена.
Примечание. Описанные ниже шаги относятся к Windows 7, но Windows 10 должен быть практически идентичным процессом. Кроме того, хотя эти шаги могут показаться немного утомительными, если вы правильно настроили BIND, вам редко придется возиться с ним.
Установка BIND
Сначала вам нужно будет загрузить программное обеспечение DNS-сервера. Мы будем использовать последнюю стабильную копию ISC BIND. На момент написания статьи это версия 9.10.6 (следует избегать любых нестабильных или ранних версий развертывания ).
Нажмите на знак +, чтобы развернуть параметры ISC BIND.
Нажмите "Скачать".
При появлении запроса в диалоговом окне выберите 32-разрядную или 64-разрядную версию (синяя кнопка / строка является ссылкой).
По завершении загрузки извлеките ZIP-файл и найдите файл с именем BINDInstall.exe. Вы должны "Запустить эту программу от имени администратора" (Свойства → Совместимость), поскольку для установки службы "ISC BIND" необходимы повышенные привилегии.
Установите "Целевой каталог" (где вы хотите установить BIND). Это может быть любой каталог, который вам нравится.
Установите учетную запись службы как «NT AUTHORITY\LocalService» (без кавычек). Не используйте "named" в качестве учетной записи службы.
Оставьте поля пароля пустыми.
Убедитесь, что "Автоматический запуск" установлен. Это обеспечит запуск BIND при запуске сервера.
"Сохранить файлы конфигурации после удаления" может быть проверен автоматически. Это отлично. Два оставшихся поля должны быть сняты ("Только инструменты" и "Начать привязку после установки").
Нажмите "Установить". Это должно зарегистрировать службу "ISC BIND" в Windows и создать две новые директории ("bin" и "etc") в "Target Directory".
Обратите внимание, что если вы использовали прямую / косую черту (т. Е. NT AUTHORITY / LocalService) вместо правильной обратной косой черты \ (т. Е. NT AUTHORITY \ LocalService), BINDInstall выдаст ошибку, указав, что поля пароля не могут быть пустыми. Вы должны использовать обратную косую черту.
Если после первого нажатия кнопки "Установить" вам будет предложено установить распространяемые файлы Visual C++, вам следует это сделать. Однако, если установщик распространяемых файлов Visual C++ говорит "Восстановить", а не "Установить", у вас уже есть нужные файлы и вы можете нажать "Отмена".
После установки необходимо дважды проверить, что служба "ISC BIND" была успешно создана в меню "Пуск" → "Администрирование" → "Службы" (поочередно меню "Пуск" → «Поиск / Выполнить» → «services.msc»).
Если служба не была успешно установлена ("ISC BIND" не отображается в окне "Службы"), перезапустите BINDInstall.exe и выберите "Удалить". Вам не нужно изменять какие-либо значения при удалении.
Повторите шаги установки, описанные выше (начиная с первого пункта "Целевой каталог"), пока служба не зарегистрируется успешно.
Настройка BIND
Вы не должны пытаться запустить BIND еще, так как у нас есть немного конфигурации, чтобы сделать.
В вашем установочном каталоге (например, C:\ISC BIND 9) у вас должно быть две папки, как упомянуто ранее ("bin" и "etc"). В этом же каталоге вручную создайте третью папку, называемую "зоны".
Когда закончите, войдите в папку "bin". Из командной строки в той же папке (Shift + щелчок правой кнопкой мыши → открыть окно командной строки здесь) выполните следующие две команды:
rndc-confgen -a
rndc-confgen > ..\etc\rndc.conf
Возвращаясь к папке "etc", должны появиться два новых файла - «rndc.key» и «rndc.conf». Пропустив их на мгновение, создайте новый файл с именем «named.conf» в "etc", например, следующим образом:
ех. C:\ISC BIND 9\etc\named.conf
# Anything with a hash (#) is a comment.
# Our basic options -- where do we find our zone files?
# This should be changed to correspond with the path to
# your zones folder.
options {
directory "C:\ISC BIND 9\zones";
allow-transfer { none; };
# Tack down the edges a little regarding security.
# allow-recursion {192.168.1.0/24;}; // change IPs as required
allow-recursion {"localnets";};
# The option below sets up DNS forwarding to outside servers.
# In this case, we route through BIND which then passes certain
# requests to Google DNS. This is unnecessary for intranets.
# forwarders { 8.8.8.8; 8.8.4.4; };
};
# Local domains
zone "free.goodies" IN {
type master;
file "free.goodies.txt";
allow-transfer { none; };
};
Примечание: для раздела выше, вы можете просто скопировать и вставить. Но убедитесь, что вы указали правильный путь к "зонам", как указано выше.
Сохраняя "named.conf" открытым, теперь также откройте "rndc.conf". Скопируйте весь закомментированный (#) раздел внизу файла и вставьте его в конец файла named.conf. Убедитесь, что вы раскомментировали все, что вы только что вставили в named.conf, кроме # End of named.conf.
ех. C:\ISC BIND 9\etc\named.conf (продолжение)
# This section needs the correct "secret". You will have to substitute
# the proper rndc.conf section you generated earlier.
# Use with the following in named.conf, adjusting the allow list as needed:
key "rndc-key" {
algorithm hmac-md5;
secret "2diZ8TosQlmJc15Nw3+ISh==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
# End of named.conf
Создать локальный домен
Теперь, когда у нас есть базовая конфигурация BIND ("named.conf"), мы можем создать запись, подробно описывающую связь между "free.goodies" и самим сервером WAMP.
В папке "zone" создайте новый файл с именем «free.goodies.txt» (или любой другой файл, который вы положили в файл «named.conf») и сделайте так, чтобы он выглядел следующим образом:
; Enables use of e.g. http://free.goodies/
; Anything with a semi-colon is a comment
$TTL 3600 ; Default TTL
@ IN SOA ns.free.goodies. candyman.free.goodies. (
2017081001 ; serial
10800 ; Refresh period
3600 ; Retry interval
604800 ; Expire time
86400 ) ; Negative caching TTL
@ NS ns.free.goodies.
ns IN A 10.0.0.10 ; This entry is necessary - Use the IP of the BIND server
free.goodies. IN A 10.0.0.10 ; A Record for the WAMP server - we're assuming its on the same server as BIND
cool IN A 10.0.0.10 ; A Record for a subdomain on the same machine e.g. cool.free.goodies
Примечание: для раздела выше, вы можете просто скопировать и вставить снова, если хотите. Но не забудьте указать правильные IP-адреса.
Если вы когда-нибудь захотите внести изменения в этот файл, помните ...
- не входящие в субдомен записи требуют завершающего периода "."
- Вам необходимо обновить серийный номер (увеличить его, например, увеличить на 1).
- Например, candyman.free.goodies может быть любым, что вы пожелаете (это адрес электронной почты с "." Для "@").
- Ваша запись для основного домена, например,
free.goodies.
должен соответствовать записи зоны "named.conf", например, zone "free.goodies" IN {
.
- Вы должны перезагрузить свой сервер, чтобы увидеть любые изменения (это также относится к изменениям в named.conf)
Начиная BIND
Теперь вы можете запустить BIND в окне "Службы". Найдите службу "ISC BIND" в меню "Пуск" → "Администрирование" → "Службы" (или, опять же, меню "Пуск" → «Поиск / Выполнить» → services.msc) и нажмите "Пуск".
Если ошибок нет, служба BIND должна запуститься. Если он не запускается, в вашем файле конфигурации ("named.conf") или файле локальной доменной зоны ("free.goodies.txt") произошла ошибка.
Брандмауэр сервера
Для доступа к сети убедитесь, что порты 53 и 953 (как TCP, так и UDP) открыты на брандмауэре DNS-сервера для входящего и исходящего трафика. Это стандартные DNS-порты.
Настройка вашего роутера
Последний шаг в процессе настройки вашего пользовательского домена - это настройка маршрутизатора. Конкретные шаги могут отличаться от маршрутизатора к маршрутизатору, но вы хотите найти настройки, которые позволят вам указать, какие DNS-серверы будут использовать ваш маршрутизатор.
Если вы хотите, чтобы этот сервер был общедоступным, вы должны убедиться, что маршрутизатор правильно перенаправляет порты 53 и 953.
Успех! (Может быть)
После запуска службы ISC BIND и правильной настройки маршрутизатора вы сможете перейти, например, к http://free.goodies/ в своем браузере и получить страницу сервера WAMP.
Если ты не можешь ...
Дважды проверьте настройки маршрутизатора.
Дважды проверьте файл зоны «named.conf» и, например, «free.goodies.txt».
Убедитесь, что ваш сервер WAMP настроен правильно (т . Е. Он настроен на обработку http://free.goodies/ и что нет проблем с брандмауэром на сервере WAMP или BIND).
В браузерах на основе Chrome (Chrome, Firefox, Opera и т.д.) Обязательно используйте «/» в конце адреса вашего локального домена. Из-за встроенных функций http://free.goodies
, скорее всего, вызовет ошибку, а http://free.goodies/
- нет.
Дважды проверьте, что BIND работает. BIND также может (в крайне редких случаях) перестать отвечать на запросы. В любом случае вы можете использовать окно "Службы", чтобы остановить и запустить BIND по мере необходимости.
Обратите внимание, что, поскольку вы (вероятно) включили управление RNDC в своей конфигурации (по крайней мере, если вы выполнили все шаги), вы можете использовать, например:
@echo off
"C:\ISC BIND 9\bin\rndc" reload
pause
в пакетном файле (.bat
), чтобы быстро перезагрузить сервер во время его работы. Это гораздо проще, чем останавливать и запускать BIND через окно "Службы", если вам нужно внести изменения в конфигурацию «named.conf» или файла вашей зоны.
Настройка виртуального хоста в WAMP
Согласно этой статье, это шаг, который вам необходимо выполнить для настройки виртуального хоста в WAMP для обработки free.goodies:
Откройте httpd.conf в C:\wamp\bin\Apache#.#.#\conf\httpd.conf
. Вы можете сделать копию этого для резервного копирования, прежде чем вносить какие-либо изменения.
Раскомментируйте следующие строки (уберите # перед ними):
LoadModule vhost_alias_module modules/mod_vhost_alias.so
а также
Include conf/extra/httpd-vhosts.conf
Сохраните httpd.conf .
Теперь откройте httpd-vhosts.conf в C:\wamp\bin\Apache#.#.#\conf\httpd.conf\extra
. Опять же, вы можете сделать копию этого для резервного копирования, прежде чем вносить какие-либо изменения.
В конце httpd-vhosts.conf добавьте следующее:
# Virtual host entry for the free.goodies local domain.
# Anything beginning with a # are comments.
<VirtualHost *:80>
ServerName free.goodies
#ServerAlias www.free.goodies
# DocumentRoot should correspond to wherever the HTML files
# for your free.goodies site are located. This is an example.
DocumentRoot "C:/wamp/www/free-goodies"
#ErrorLog "logs/free.goodies-error.log"
#CustomLog "logs/free.goodies-access.log" common
# If you have any problems with "Forbidden", try uncommenting
# the following. You may have to alter the directory to match
# your DocumentRoot above.
#<Directory "/">
#AllowOverride None
#Options None
#Require all granted
#</Directory>
</VirtualHost>
Сохраните httpd-vhosts.conf . Вы можете скопировать и вставить вышеизложенное непосредственно в httpd-vhosts.conf, но не забудьте указать правильные пути для вашей установки WAMP.
Перезапустите все службы. Предполагая, что с вашими изменениями все в порядке, WAMP должен нормально перезапуститься и обслуживать любые запросы на http://free.goodies из соответствующего каталога.