Назад | Перейти на главную страницу

Как настроить поддомен со статическими подстановочными знаками с помощью dnsmasq

У меня есть сеть за NAT с несколькими машинами.

Машины бывают:

У меня также есть mydomain.com.
server.mydomain.com указывает на IP-адрес моего подключения (единственный IP-адрес), который является маршрутизатором, который перенаправляет порты на сервер.

На сервере запущен httpd, который обслуживает разные сайты на основе vhosts.
Итак, у меня есть site1.server.mydomain.com, site2 ..

Проблема в том, что весь трафик проходит через маршрутизатор, и когда я проверяю журналы, я всегда вижу IP-адрес маршрутизатора для всего (поэтому трудно увидеть, кто запускает скрипт с помощью while (1)).

Я бы просто ServerAlias ​​site1.server.local, но у большинства сайтов есть корневой URL-адрес, сохраненный где-то поверх, на котором создаются другие URL-адреса, поэтому я не могу этого сделать.

Решением для меня было бы указать dnsmasq как-то ответить на * .mydomain.com с IP-адресом сервера.

Возможно ли это как-нибудь?

Я делаю то же самое на своем сервере (ах) разработки, чтобы иметь синхронизированное зеркало локально и на внешнем сервере с идентичными конфигурациями.

Вот что вам нужно в вашем dnsmasq.conf (не забудьте перезапустить его), если внутренний интерфейс вашего веб-сервера 192.168.0.3:

address=/.server.mydomain.com/192.168.0.3

Это создаст запись с подстановочными знаками для * .server.mydomain.com, и пока ваш клиент использует DNSMasq для своего DNS (и ваш сервер прослушивает внутренний интерфейс), все готово.

Я не уверен, что понимаю вашу проблему, но мне кажется, что основная причина ваших проблем - это NAT для входящих соединений на вашем маршрутизаторе. В частности, поскольку вы сказали, что все входящие подключения появляются в журналах с IP-адресом маршрутизатора, похоже, что вы маскируете все входящие подключения.

Что вам следует сделать, так это входящее соединение DNAT и исходящие соединения SNAT на маршрутизаторе, которые сохранят исходный IP-адрес каждого соединения.