
Обычно я подключаюсь к своему маршрутизатору по его IP-адресу 192.168.1.1
. Однако я также могу подключиться к нему по URL router.asus.com
. Мой компьютер не подключен к Интернету. Как это работает?
решение1
У вашего маршрутизатора есть свой DNS-сервер. Когда вы используете его в сети, он перенаправляет на DNS вашего интернет-провайдера, но также добавляет свою собственную запись, чтобы router.asus.com
указать на себя.
Поскольку вы, скорее всего, используете DHCP, он автоматически назначит вашим машинам использование собственного DNS. Вы можете проверить это, изменив DNS-сервер на назначенный вручную (например, 8.8.8.8), очистив DNS и затем попробовав тот же URL.
Обратите внимание, что при посещении router.asus.com
моего сайта с помощью подключения я попадаю на сайт, размещенный на Amazon, который, по-видимому, пытается выполнить поиск совместимого маршрутизатора в моей сети.
Похоже, он использует следующий JQuery, чтобы попытаться получить определенный JSON-файл из имени машины в сети:
$.ajax({
url: "http://" + target.domainName + "/findasus.json",
dataType: "jsonp",
timeout: 20000,
global: true,
complete: function(jqXHR, textStatus){
switch(jqXHR.status){
case 0:
target.status = 2;
break;
default:
target.status = 1;
iAmAlive({
modelName: target.domainName.replace("findasus.local", "ASUS"),
ssid: "",
ipAddr: target.domainName
});
}
sessionComplete();
}
});
Вы можете увидеть имена, к которым он пытается получить доступ, на скриншоте. Буквально просто проходит цикл, и если он получает попадание, он перенаправляет на то, что он нашел.
решение2
У меня лично нет маршрутизатора Asus, и ответ Джонно очень хорош, но есть и другой возможный способ для маршрутизаторов добиться этого (даже если он не используется вашим конкретным маршрутизатором).
Поскольку эта страница не обслуживается по HTTPS, вполне возможно, что маршрутизатор просто перехватит HTTP-запрос и ответит на него, не обращаясь ни к какому внешнему серверу. Маршрутизаторы Asusбыли известныдля перенаправления страниц при некоторых обстоятельствах. Обратите внимание, что если перенаправление происходит даже без подключения к Интернету (т. е. без внешнего DNS), оно должно быть вызвано DNS вашего маршрутизатора; нет никаких причин, по которым оба варианта не могли бы работать.
Мой домашний маршрутизатор Netgear, например, может блокировать домены и ключевые слова (открывая страницу «заблокировано брандмауэром Netgear»), даже если я не использую его DNS. Я убедился, что он не перехватывает DNS-запросы; имя разрешается правильно, но переход на страницу в веб-браузере приводит к «заблокированной» странице.
Вы можете проверить эту теорию, настроив свои DNS-серверы, скажем, на сервер Google ( 8.8.8.8
) и отправив команду ping на перенаправленное доменное имя.
решение3
Просто хотел добавить к ответу Джонно, что
admin@asus-rt-n18u:/tmp/home/root# grep asus.com /etc/*
/etc/hosts:192.168.201.5 router.asus.com
вот как мой (и, скорее всего, ваш маршрутизатор это делает. Ваш маршрутизатор, вероятно, работает под управлением asuswrt с dnsmasq. Вы можете получить доступ к оболочке (по крайней мере, через telnet) и посмотреть сами.