Я использую UNIX-совместимый дистрибутив (к сожалению, я не могу раскрыть название ОС) в качестве маршрутизатора для общего подключения к Интернету.
Мне нужно добавить статический маршрут, чтобы любой HTTP-запрос my.router.com
направлялся на страницу конфигурации маршрутизатора (т.е. пользователю не нужно знать IP-адрес маршрутизатора, к которому он подключается)
Возможно ли это? Можно ли это сделать, отредактировав файл /etc/hosts или используя команду route?
Спасибо
решение1
Мне нужно добавить статический маршрут, чтобы любой HTTP-запрос к my.router.com направлялся на страницу конфигурации маршрутизатора (т.е. пользователю не нужно знать IP-адрес маршрутизатора, к которому он подключается)
«Маршрутизация» работает только на уровне IP. Она не заботится ни о чем, что находится выше, например, о прикладном уровне, где находится HTTP, или о транспортном уровне, где существуют концепции «портов» и «сервисов» (например, HTTP находится на порту 80, что является одним из способов отличить этот тип трафика от другого).
Возможно ли это? Можно ли это сделать, отредактировав файл /etc/hosts
Вы можете добавить запись "my.router.com" в ваш hosts
файл. Это заставит "my.router.com" разрешиться в IP-адрес, указанный вами в этом файле, ЕСЛИ ваша система настроена на использование этого файла для поиска DNS перед DNS (см. nsswitch.conf
(?), чтобы настроить это в Linux).
Конечно, если пользователь вводит IP-адрес напрямую, например, в http://256.40.40.1
файле hosts
, то все, что основано на DNS, не будет работать.
или с помощью команды route?
Что вы могли бы сделать с помощью route
команды, так это создать статический /32
маршрут для IP-адреса реального my.router.com
и направить его на ваш адаптер localhost. Это приведет к тому, что трафик, предназначенный для 256.40.40.1
, если это был реальный IP my.router.com
, будет направлен на 127.0.0.1
. Конечно, если my.router.com
изменится их IP, вам придется обновить его вручную.