я просто ответил на вопрос о том делать это с Dnsmasq на ServerFault (не на окнах, очевидно, но на маршрутизаторе под управлением DD-WRT / OpenWRT это выполнимо)
шарлатан Кихота
В XP SP2 включена кастрация основного файла - securityfocus.com/archive/1/431032/30/0/threaded Предполагаемая причина - люди используют его для блокировки рекламы во время просмотра. Это предположение, насколько я знаю, что Microsoft никогда не раскрывала, почему они это сделали и почему они с тех пор переносят это на все. Если вы можете установить прокси-сервер между вашим ПК и Интернетом, то вы можете поставить блок на то, что вам нужно.
bvaughn
Ответы:
61
Нет. Файл hosts не очень умен, вы должны перечислить каждый поддомен индивидуально (включая www и no-www)
Поддержка подстановочных знаков на XP в hostsfile. Наслаждаться.
По сути, эта программа Acrylic работает как DNS-прокси для вашей локальной машины. Просто укажите подключение по локальной сети на 127.0.0.1, затем отредактируйте файл AcrylicHosts.txt очень похоже на обычный файл hosts - только с подстановочными знаками!
Acrylic прекрасно работает, но может сбить вас с толку, если вы пытаетесь получить доступ к машине с динамическим IP-адресом. У меня есть машины, подключенные к моей домашней сети, и я использую динамический DNS, чтобы установить IP для доменного имени. Я использую Acrylic на своем ноутбуке, и я ушел на несколько дней, в то время как мой ip изменился, но Acrylic запомнил его как старый ip, и я не смог получить доступ к сайту. Но запуск программы «Очистка данных акрилового кэша» решил эту проблему.
leeand00
К сожалению, акрил не поддерживает псевдонимы DNS, что делает его бесполезным для меня.
Spero
11
Dnsmasq - это то, что вам нужно, но он не очень хорошо работает в Windows. Поэтому я написал альтернативу для Windows под названием DNSAgent .
Вы можете использовать регулярные выражения в правилах. Есть также некоторые расширенные функции, такие как настройка кэша TTL, DNS-сервер нестандартного порта, мутация указателя сжатия и т. Д. Открытым исходным кодом под лицензией MIT.
во-первых, я согласен с phoshi, что в hosts-файле окон не возможно делать то, что вы хотите (ни в unix).
во-вторых, вы должны получить контроль над результатом запроса в днс. Одним из вариантов является использование вашего собственного dns-разрешения на вашем маршрутизаторе (dnsmasq, dnscache + tinydns, bind, что угодно, см. комментарий кряка) и настройка его или использование dns-resolver на окнах, которыми вы можете управлять по своему усмотрению.
см здесь для получения списка ДНС-резольверами, проверьте столбец «подстановочные», может быть PowerDNS или MaraDNS или posadis является то , что соответствует вашим потребностям.
Учитывая последнее предложение, я предполагаю, www.example.comчто не блокируется первой строкой, а только при добавлении 127.0.0.1 example.com?
Арджан
9
moonfern, я не согласен с твоим списком. 127.0.0.1 somesite.com НЕ БУДЕТ блокировать все исходящие DNS-запросы, заканчивающиеся на somesite.com, все, что он будет блокировать, - это somesite.com , а не www.somesite.com или subdomain.somesite.com или тому подобное.
1
Это определенно не относится к Windows, moonfern.
Оуэн Блэкер
-3
Если вы хотите заблокировать каждый поддомен в somedomain.com, подумайте, не опустить ли «*». достигнет того, что вы хотите.
«Подумай, не ...» довольно двусмысленно. Что именно вы рекомендуете в качестве решения?
fixer1234 10.09.16
Пожалуйста, внимательно прочитайте вопрос. Ваш ответ не отвечает на оригинальный вопрос.
Дэвид Постилл
1
fixer1234 - Я не знаю, какую проблему постер хочет решить, в то время как они спрашивают, как будто явный подстановочный знак решит ее «Подумайте, ...» предлагает что-то, что может работать Это легко попробовать и требует немного символов. Я знаю, что это работает в некоторых случаях. Поскольку у меня недостаточно контекста, чтобы понять проблему, я не могу рекомендовать решение. Дэвид Постилл - я считаю, что мой ответ адресован и относится к первоначальному вопросу. Но, возможно, ваш собственный ответ будет работать лучше.
Ответы:
Нет. Файл hosts не очень умен, вы должны перечислить каждый поддомен индивидуально (включая www и no-www)
источник
Ответ на очень похожий вопрос StackOverflow работал хорошо для меня.
По сути, эта программа Acrylic работает как DNS-прокси для вашей локальной машины. Просто укажите подключение по локальной сети на 127.0.0.1, затем отредактируйте файл AcrylicHosts.txt очень похоже на обычный файл hosts - только с подстановочными знаками!
источник
Dnsmasq - это то, что вам нужно, но он не очень хорошо работает в Windows. Поэтому я написал альтернативу для Windows под названием DNSAgent .
Вы можете использовать регулярные выражения в правилах. Есть также некоторые расширенные функции, такие как настройка кэша TTL, DNS-сервер нестандартного порта, мутация указателя сжатия и т. Д. Открытым исходным кодом под лицензией MIT.
источник
во-первых, я согласен с phoshi, что в hosts-файле окон не возможно делать то, что вы хотите (ни в unix).
во-вторых, вы должны получить контроль над результатом запроса в днс. Одним из вариантов является использование вашего собственного dns-разрешения на вашем маршрутизаторе (dnsmasq, dnscache + tinydns, bind, что угодно, см. комментарий кряка) и настройка его или использование dns-resolver на окнах, которыми вы можете управлять по своему усмотрению.
см здесь для получения списка ДНС-резольверами, проверьте столбец «подстановочные», может быть PowerDNS или MaraDNS или posadis является то , что соответствует вашим потребностям.
источник
Это другой синтаксис: xxx.xxx.xxx.xxx somedomain.com
Несколько примеров, чтобы объяснить это:
Вы блокируете / ведете все URL второго (третьего, четвертого ...) уровня с помощью URL верхнего (второго, третьего ...) уровня в файле hosts.
источник
www.example.com
что не блокируется первой строкой, а только при добавлении127.0.0.1 example.com
?Если вы хотите заблокировать каждый поддомен в somedomain.com, подумайте, не опустить ли «*». достигнет того, что вы хотите.
Редактирование вашего примера:
источник