Получить DNSmasq для перенаправления запросов локальной сети на сервер в сети

394
Theyre In My Head

У меня есть сервер в моей сети. Доступ к нему с устройств вне сети по доменному имени работает отлично. Однако некоторые устройства, такие как мой телефон, подключаются к сети по Wi-Fi, и когда они это делают, они не могут найти, что имя домена должно указывать на определенный внутренний IP-адрес. (Это потому, что моему маршрутизатору, предоставленному интернет-провайдером, не хватает возможности закрепления).

Я не могу редактировать / etc / hosts на устройствах, подключающихся по Wi-Fi, хотя я могу на сервере.

Чтобы попытаться обойти это, я пытаюсь заменить DNS-сервер моего маршрутизатора по умолчанию DNSmasq на моем сервере.

Я хочу, чтобы DNSmasq переадресовывал все запросы для моих доменов на себя и на любые другие домены общедоступной службе поиска DNS, такой как openDNS.

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

В настоящее время я изменил только то, что:

  1. IP-адреса DNS-сервера маршрутизатора указывают на статический внутренний IP-адрес моего сервера.
  2. Сервер имеет мои домены, указывающие на его собственный статический внутренний IP в / etc / hosts
  3. Я открыл порты 52-54 и указал их на свой сервер (хотя он также в настоящее время DMZ, так что это не должно иметь значения)
  4. / etc / host, /etc/resolv.conf и /etc/dnsmasq.conf все по умолчанию.

В настоящее время все запросы для любого из моих доменов истекают с любого устройства в сети, где я не изменил файл / etc / hosts.

Какие-либо предложения?

Для записи я использую Debian 8 с Nginx на модеме Bell Smartstream 2000.

0
52-54? Какова цель этого? Единственный порт, используемый стандартным DNS из этого диапазона, - 53. grawity 5 лет назад 0
52-54 было просто потому, что по какой-то причине мой маршрутизатор будет позволять переадресовывать только диапазон портов, а не только один. Если я попытаюсь ввести порт 53, он не сохранится. Если я введу 52-54, то это так. ¯ \ _ (ツ) _ / ¯ Theyre In My Head 5 лет назад 0

1 ответ на вопрос

0
grawity

В dnsmasq используйте addressопцию.

-A, --address=/<domain>[/<domain>...]/[<ipaddr>]

Укажите IP-адрес для возврата для любого хоста в указанных доменах. Запросы в доменах никогда не пересылаются и на них всегда отвечает указанный IP-адрес, который может быть IPv4 или IPv6. Чтобы указать IPv4 и IPv6-адреса для домена, используйте повторяющиеся флаги -A.

Например:

address=/example.com/www.example.com/192.168.1.42 

В Unbound используйте параметры local-zoneи local-data. Например:

server: local-data: "example.com. A 192.168.1.42" local-data: "www.example.com. A 192.168.1.42" 
Я попытался добавить это (с изменением доменных имен из вашего примера) в /etc/dnsmasq.conf и все еще получить тот же результат. Локально размещенные сайты работают нормально. Все остальное время истекло. Вот след от моего роутера для wikipedia.org: https://pastebin.com/zaSyiEJR Theyre In My Head 5 лет назад 0
Какое отношение имеет трассировка к чему-либо? Путь к веб-сайту - как отправляются HTTP-запросы - полностью отличается от того, как выполняются DNS-запросы. Вы должны быть более конкретными о том, какой из них на самом деле истекает. grawity 5 лет назад 0

Похожие вопросы