Как запретить dnsmasq добавлять мое доменное имя к недействительным запросам домена?

Я использую dnsmasq для разрешения DNS-запросов в моей домашней сети. К сожалению, если имя домена неизвестно, к запросу будет добавлено мое собственное доменное имя, что означает, что я всегда просматриваю свой сайт в браузере.

Например, если я ввожу http://dlksfhoiahdsfiuhsdf.com в браузере, я в конечном итоге просматриваю свой собственный сайт с этим URL-адресом. Если я попробую что-то вроде:

host dlksfhoiahdsfiuhsdf.com

Вместо ожидаемого:

Host dlksfhoiahdsfiuhsdf.com not found: 3(NXDOMAIN)

Я получаю это:

dlksfhoiahdsfiuhsdf.com.mydomainname.com has address W.X.Y.Z.

Ясно, что dnsmasq добавляет мое доменное имя к невозможным запросам имен, пытаясь их разрешить, но вместо этого я бы предпочел увидеть ошибку «не найдено».

Я пробовал играть с расширенными хостами и настройками конфигурации домена , но безуспешно. Есть еще что-нибудь, что я могу попробовать?

Ответов (5)

Вероятно, это делает не dnsmasq, а ваша локальная библиотека преобразователя. Если вы используете unixish, попробуйте удалить строки «search» или «domain» из /etc/resolv.conf.

Могут быть и другие причины, но наиболее очевидной причиной является конфигурация /etc/resolv.conf и тот факт, что большинство DNS-клиентов любят очень кратко описывать ошибки.

benc$ host thing.one
Host thing.one not found: 3(NXDOMAIN)

(хорошо, что я использовал для конфигурации DNS?)

benc$ cat /etc/resolv.conf 
nameserver 192.168.1.1

(редактировать...)

benc$ cat /etc/resolv.conf 
search test.com
nameserver 192.168.1.1
benc$ host thing.one
thing.one.test.com has address 64.214.163.132

Не беспокоясь о трассировке пакета, вероятнее всего, он вернет ошибку для последнего попытанного FQDN.

У вас есть домен с подстановочными знаками?

dnsmasq перенаправляет добавленное имя на внешний DNS-сервер и получает подстановочные знаки.

вы можете использовать --server = / yourinternaldomainhere /, чтобы убедиться, что поиск вашего внутреннего доменного имени не пересылается.

синтаксис в этом случае будет:

--server = / домен / iptoforwardto

и в этом случае оставьте поле iptoforwardto пустым, так как вы не хотите никуда пересылать.

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

Как выглядит ваш файл hosts? Может быть, там происходит что-то странное, что заставляет его думать, что все странные домены являются локальными для вашей сети?

попробуйте выполнить запрос с конечной точкой, чтобы явно установить корень:

host dlksfhoiahdsfiuhsdf.com.