Автоматический запуск отображения страницы соглашения по порталу

У меня есть настройка точки доступа WiFi с помощью Hostapd и Dnsmasq. Все работает отлично, но я пытаюсь вызвать страницу с условиями и положениями, которую вы можете увидеть в отеле или кафе после подключения к их порталу. Большинство современных устройств автоматически открывают эту страницу "Условия и положения" сразу после подключения к одной из этих сетей портала, что я хотел бы получить после подключения к моей точке доступа.

Насколько я понимаю, это обычно обнаруживается устройством, проверяя, возвращает ли конкретный веб-сайт предсказуемый ответ. Например, Google, кажется, проверяет соединение с http://clients1.google.com и если он получит какой-либо ответ, кроме "generate204", он должен вызвать страницу соглашения о портале. Я нашел два способа перенаправить весь трафик (и, вероятно, эти конкретные домены) на веб-сервер, работающий на моем устройстве...

Один, добавив следующую строку в /etc/dnsmasq.conf:

address=/#/10.0.0.1

а другой с помощью iptables, Это запускается из скрипта при загрузке:

iptables -t nat -A PREROUTING -d 0/0 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.1

Оба успешно перенаправляют весь трафик на 10.0.0.1 (это правильный адрес для локального веб-сервера) при ручном вводе URL-адреса в браузер, но страница не открывается автоматически при подключении к точке доступа.

Я также попытался вручную добавить записи для определенных URL-адресов Google, таких как:

address=/clients1.google.com/10.0.0.1

в /etc/dnsmasq.conf без удачи У меня закончились идеи, любые предложения.

1 ответ

Чтобы ваш портал работал, ваш веб-сервер портала, на который iptables перенаправляет трафик, должен отправить клиенту перенаправление 302 для любого запроса, который не относится к имени хоста вашего портала. Вы можете поместить это в виртуальный хост по умолчанию и обслуживать веб-страницу своего портала со второго виртуального хоста.

Другие вопросы по тегам