У меня есть серверное приложение, в котором я запускаю два экземпляра: производство и разработку, а именно:
prod.example.com (10.0.0.1)
dev.example.com (10.0.0.2)
Сторонняя организация написала клиентское приложение, которое жестко запрограммировано так, чтобы указывать на prod.example.com
. Но я хочу, чтобы эти запросы направлялись в dev.example.com
server, и у меня нет доступа к стороннему исходному коду.
У меня есть доступ (временно) к локальной сети, в которой работают клиент и сервер, поэтому я могу использовать dnsmasq
Решить prod.example.com
к 10.0.0.2
, после чего моя работа здесь закончена, и клиентское приложение будет (неосознанно) разговаривать с сервером разработки (по крайней мере, я так думал).
Я дошел до добавления следующей конфигурации в dnsmasq.conf
..
address=/prod.example.com/10.0.0.2
..который действительно работает, но имеет побочный эффект, предотвращающий разрешение всех других доменов.
Как я могу съесть свой торт?
Добавьте эту строку в /etc/dnsmasq.conf
:
addn-hosts=/etc/dnsmasq.hosts
Затем вставьте свои доменные имена в /etc/dnsmasq.hosts
:
10.0.0.1 prod.example.com.
10.0.0.2 dev.example.com.
Не забывайте точку в конце доменного имени. Он отмечает его как TLD, а не как локальное имя хоста.
Как всегда после изменения конфигурации, перезапустите dnsmasq
:
sudo service dnsmasq restart