Как создать точку доступа Wi-Fi в Windows 7 + перенаправление на локальную веб-страницу?

Как создать точку доступа Wi-Fi в Windows 7 + перенаправление на локальную веб-страницу?

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

По сути, я пытаюсь добиться следующего:

  1. Создать точку доступа Wi-Fiс помощью встроенного в компьютер адаптера Wi-Fiк которым могут подключаться люди (открытые или защищенные паролем)

  2. Перехватывать и перенаправлять DNS- и/или HTTP-запросы таким образом, чтобы при открытии браузера отображалась веб-страница эксперимента (как портал авторизации)

До сих пор мне удавалось достичь пункта 1 с помощью функции Hosted Network в Windows 7, которая отлично работает для части Wifi AP. Однако я застрял, когда дело доходит до изменения ответов DHCP для предоставления пользовательского DNS-сервера, который, в свою очередь, будет пересылать весь трафик на мой веб-сервер: есть ли способ сделать это?

Вот несколько ограничений, которые у меня есть (иначе было бы слишком просто ;-) ):

  • Я застрял на Windows 7 (я знаю, что с Linux эта проблема была бы решена давно!)
  • Компьютер является автономной машиной, т.е. не имеет доступа к другим сетям или Интернету.Что также означает отсутствие маршрутизатора или любого другого внешнего устройства!

Любая помощь или предложения будут высоко оценены!

решение1

  1. Получить MaraDNS

MaraDNS — бесплатный, легкий и относительно простой в настройке DNS-сервер для Windows и Linux. Загрузите его отсюда и распакуйте в какую-нибудь папку.

  1. Настроить MaraDNS

Откройте «secret.txt» и измените значение на что-то другое (случайные символы).

Конфигурация MaraDNS находится в файле «mararc» в том же каталоге. DNS-серверы имеют два набора функций. Они могут функционировать как «Авторитетный сервер имен» или «Рекурсивный/кэширующий сервер имен».

Авторитетные серверы имен определяют IP-адреса для доменных имен. Рекурсивные серверы имен хранят информацию от авторитетных серверов имен и передают запросы рекурсивным образом.

Мы настроим как авторитарный, так и рекурсивный функционал в MaraDNS.

2.1 Авторитетная конфигурация

Мы настроим сервер для предоставления авторитетных имен доменных имен локальной сети. Выберите любой домен, я выбрал «local.com» (хотя учтите, что вы не сможете получить доступ к фактическому веб-сайту «local.com», если выберете существующее доменное имя).

Добавьте строки конфигурации в «mararc» следующим образом:

csv2 = {}
csv2["local.com."] = "db.lan.txt"

Где local.com — это выбранное вами доменное имя, а db.lan.txt — это имя второго файла конфигурации, который мы создадим следующим (измените его, если хотите дать имя второму файлу конфигурации).

Создайте новый файл с именем «db.lan.txt» в том же каталоге, что и MaraDNS.

Для каждого из компьютеров, которые вы хотите разрешить в имя, добавьте строку в «db.lan.txt». Например, для двух машин, одна «dev.local.com» и другая «blog.local.com», добавьте следующие строки:

dev.%       192.168.1.4 ~
blog.%        192.168.1.6 ~

Сделанный!

2.2 Рекурсивная конфигурация

Мы настроим MaraDNS так, чтобы он обращался к вашим серверам имен по умолчанию для всех остальных доменов, чтобы вы могли преобразовывать все остальные доменные имена в их правильные IP-адреса.

Узнайте адреса DNS-серверов вашего интернет-провайдера. Они, скорее всего, будут указаны либо на странице состояния маршрутизатора, либо при проверке сведений о вашем сетевом адаптере.

Теперь добавьте DNS-серверы вашего интернет-провайдера в качестве вышестоящих серверов в «mararc»:

upstream_servers = {}
upstream_servers["."] = "xxx.xxx.xxx.xxx, yyy.yyy.yyy.yyy"

Где xxx.xxx.xxx.xxx и yyy.yyy.yyy.yyy — DNS-серверы вашего интернет-провайдера.

Сделанный!

  1. Запустите MaraDNS и протестируйте его с помощью askmara.exe

Дважды щелкните «runmara.bat» и оставьте сервер работающим.

Откройте командную строку, перейдите в каталог MaraDNS и попробуйте запустить:

askmara.exe Agoogle.com.

и

askmara.exe Ablog.local.com.

Вы должны получить такие ответы:

# Querying the server with the IP 127.0.0.1
# Question: Agoogle.com.
google.com. +300 a 74.125.67.100
google.com. +300 a 74.125.53.100
google.com. +300 a 74.125.45.100
# NS replies:
# AR replies:

и:

# Querying the server with the IP 127.0.0.1
# Question: Ablog.local.com.
blog.local.com. +86400 a 192.168.1.6
# NS replies:
#local.com. +86400 ns synth-ip-7f000001.local.com.
# AR replies:
#synth-ip-7f000001.local.com. +86400 a 127.0.0.1

Если у вас возникли проблемы с первым запросом, вы напутали с настройками рекурсивного DNS (верны ли адреса DNS-серверов вашего интернет-провайдера?), а если вы получили ошибку со вторым запросом, вы напутали с настройками авторитарного DNS.

  1. Измените MaraDNS для ответа на запросы из вашей локальной сети

Закройте окно MaraDNS и измените первые две строки «mararc» на что-то вроде:

ipv4_bind_addresses = "192.168.1.2
recursive_acl = "192.168.1.0/24"

Где 192.168.1.2 — это IP-адрес компьютера, на котором будет работать сервер, а часть «192.168.1″ recursive_acl такая же, как в вашей сети (может быть 192.168.0.0/24).

Запустите MaraDNS еще раз и оставьте его работать.

  1. Настройте маршрутизатор для предоставления нового DNS-сервера

Откройте веб-интерфейс вашего маршрутизатора и найдите настройки DHCP-сервера. Должна быть опция настройки DNS-сервера. Напишите IP-адрес компьютера, на котором будет работать DNS-сервер.

На каждом из ваших компьютеров отключите сеть (например, отключив и включив ее в Windows или используя «ifconfig eth0 down»/«ifconfig eth0 up» в Linux).

Вот и все, теперь вы можете обращаться к компьютерам вашей локальной сети по их доменным именам.

Источник

Связанный контент