Все субдомены к одному IP в файле hosts?

8

У меня виртуальная машина VirtualBox работает с сетью только для хоста. Эта виртуальная машина работает под управлением Apache, и я хочу настроить на ней несколько виртуальных хостов на основе имен, к которым можно получить доступ из веб-браузера на хост-компьютере.

Дело в том, что каждый раз, когда я добавляю новый поддомен для виртуального хоста, я должен добавить его в файл hosts. Прямо сейчас у меня есть что-то вроде этого:

192.168.56.3 vm site1.vm site2.vm site3.vm site4.vm ...

Я хочу добиться того же эффекта, что и этот

192.168.56.3 vm *.vm

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

Apreche
источник

Ответы:

8

Нет универсального способа сделать это - вам нужно либо внедрить DNS-сервер, либо продолжать добавлять записи в ваш файл hosts.

Если вы идете с установкой сервера DNS, вам не нужно устанавливать bind- вы можете установить простой кэширование DNS - сервер , как totd, dnsmasqили maradns.

Независимо от того, что вы делаете, вам нужно убедиться, что он resolv.confсодержит новый DNS-сервер, и там должна появиться следующая запись (в этом примере DNS-сервер установлен на localhost) ...

nameserver 127.0.0.1
Ксеркс
источник
Это что-то интересное. В настоящее время это, кажется, правильный ответ, поэтому я отмечу его как таковой. Тем не менее, это на самом деле не решает мою проблему, возможно, потому что это не решаемо. Просто кое что для раздумий.
Апреч
Еще одна заметка. Я был в состоянии использовать dnsmasq, чтобы сделать эту работу. Однако в Ubuntu мне пришлось изменить конфигурацию клиента dhcp хост-машины, добавив 127.0.0.1 к resolv.conf.
Apreche
Да, - resolv.conf - это единственный способ определить DNS-серверы, я добавлю это к сообщению, чтобы завершить.
ксеркс
2

Вы можете использовать dnsmasqдля этого, просто добавьте в файл конфигурации:

адрес = /. VM / 192.168.56.3
drybjed
источник
0

Это интересный вопрос. Как вы упомянули, сам хост-файл не поддерживает подстановочные знаки. Было бы довольно легко настроить привязку на машине apache и сделать так, чтобы это был сервер проверки подлинности DNS и правильно указывать * .vm, но это обходной путь (даже если это «правильное» решение).

Должен быть способ обмануть nscd, но я еще не понял. Дайте мне больше времени, и я обновлю этот ответ

редактировать

Хорошо, ваш лучший выбор, не прибегая к простой задаче заполнения файла хоста огромным количеством виртуальных хостов или чуть более сложной задаче настройки привязки к аутентификации для этого домена, состоит в том, чтобы использовать эту уязвимость, чтобы отравить кэш nscd. : http://linuxgazette.net/154/misc/lg/conspire_dns_vulnerability_details.html

По крайней мере, сегодня я так далеко. Возможно, если мне будет скучно позже, я проверю исходный код для nscd и выясню, как напрямую ввести информацию.

Мэтт Симмонс
источник
4
Я серьезно не рекомендовал бы использовать уязвимость для достижения цели. Я имею в виду, что, если вы зависите от этого, и уязвимость будет ... исправлена? ... среди еще 100 вещей, которые я вижу, это просто неправильно. Но кроме этого - это забавно играть с ногами :).
Ксеркс
2
хе-хе "... моя любимая функция в программном обеспечении исправлена ​​в последней ревизии ..." ;-)
Мэтт Симмонс