подстановочный знак в файле hosts

Невозможно использовать подстановочный знак в файле hosts в Windows или Linux. Есть ли способ сделать это с помощью плагина для браузера или чего-то еще?

У меня есть сервер разработки на экземпляре vbox, так что это практически локальная сеть. Я создаю домен .dev для своих виртуальных хостов, поэтому example.com становится example.dev. Для приложения я создаю случайные поддомены (abd34dn.example.dev), которые все должны указывать на IP-адрес сервера разработки.

Каковы мои варианты?


person pablo    schedule 16.11.2010    source источник
comment
файл hosts не является файлом DNS.   -  person Alnitak    schedule 06.03.2012


Ответы (4)


Вместо редактирования файла hosts (который не подходит для ваших требований) настройте DNS-сервер и настройте DNS-запись A подстановочного знака, например

*.example.dev IN  A  1.2.3.4

Вы упомянули поддомены, но я предполагаю, что вам действительно нужны записи хостов (записи адресов A) в example.dev. Теперь abcd.example.dev указывает, что «abcd» — это запись хоста, а не субдомен. Только если вы скажете xyz.abcd.example.dev, тогда «abcd» станет субдоменом. Ключевым моментом является то, что, поскольку вам нужен только abcd.example.dev, вам нужны только записи DNS A, и это предлагается, как указано выше.

person rsmoorthy    schedule 16.11.2010
comment
Можете ли вы порекомендовать DNS-сервер для win7 и ubuntu? Что вы подразумеваете под записями хостов вместо поддоменов? - person pablo; 16.11.2010
comment
Для привязки в Ubuntu просто установите пакет bind9 (sudo apt-get install bind9). Для Windows также доступна привязка по адресу isc.org/software/bind). См. также stackoverflow. ком/вопросы/367908/. - person rsmoorthy; 16.11.2010

Я сделал этот простой инструмент, чтобы заменить hosts. Поддерживаются регулярные выражения. https://github.com/stackia/DNSAgent Только для Windows. Вероятно, работает с Моно.

Пример конфигурации:

[
    {
        "Pattern": "^.*$",
        "NameServer": "8.8.8.8"
    },
    {
        "Pattern": "^(.*\\.googlevideo\\.com)|((.*\\.)?(youtube|ytimg)\\.com)$",
        "Address": "203.66.168.119"
    },
    {
        "Pattern": "^.*\\.cn$",
        "NameServer": "114.114.114.114"
    },
    {
        "Pattern": "baidu.com$",
        "Address": "127.0.0.1"
    }
]
person Stackia    schedule 04.03.2015

AngryHosts может действовать как простой DNS, и это всего лишь крошечное программное обеспечение, очень простое в использовании.

person iloahz    schedule 05.03.2012

Для этого вы можете использовать echoipdns (https://github.com/zapty/echoipdns).

При запуске echoipdns dev все запросы для поддоменов .dev перенаправляются на 127.0.0.1, поэтому любой домен с xyz.dev и т. д. будет разрешен на 127.0.0.1. Вы можете использовать любой другой суффикс, просто замените dev на желаемое имя.

Echoipdns еще более мощный, когда вы хотите использовать свой URL-адрес с других компьютеров в сети, вы все равно можете использовать его с нулевой конфигурацией.

Например, Если IP-адрес вашей машины 192.168.1.100, теперь вы можете использовать доменное имя xyz.192-168-1-100.dev, которое всегда будет разрешаться в 192.168.1.100. Эту магию выполняет echoipdns, просматривая IP-адрес во второй части доменного имени и возвращая тот же IP-адрес в DNS-запросе. Вам нужно будет запустить echoipdns на машине, с которой вы хотите получить доступ к удаленной системе.

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

По сути, это упрощает разработку DNS на основе подстановочных доменов как для локальной, так и для групповой среды.

echoipdns работает на Mac, Linux и Windows.

ПРИМЕЧАНИЕ. Я являюсь автором echoipdns.

person arva    schedule 09.01.2015