Есть ли способ определить DNS-сервер для конкретного домена? Я настраиваю машину разработки со стеком amp и хочу перенаправить все URL-адреса с конкретным доменом (например, project.dev) на 127.0.0.1. Я сделал это на OSX с dnsmasq, настроенным следующим образом:

# /etc/dnsmasq.conf

address=/.dev/127.0.0.1
listen-address=127.0.0.1
port=35353

и добавление файла dev в /etc /resolver с этим содержимым

# /etc/resolver/dev

nameserver 127.0.0.1
port 35353

но это в arclinux с dhcpd не работает.

Я проверил dnsmasq с dig test.dev@127.0.0.1 -p 35353 и он работает (возвращенный адрес 127.0.0.1), поэтому проблема заключается в решении.

Я также попытался либо положить в /etc/resov.conf.head это:

# /etc/resolv.conf.head
nameserver 127.0.0.1
port 35353

и настроить dnsmasq с портом по умолчанию 53 без удачи.

Это мой /etc/resolv.conf

# /etc/resolv.conf
nameserver 127.0.0.1
nameserver 192.168.0.1

1 ответ1

1

У вас есть два варианта здесь; либо вам нужно настроить DNS-сервер на 192.168.0.1 для разрешения «.dev» на 127.0.0.1, либо запустить dnsmasq и перенаправить все ваши запросы через него, как вы делали это ранее с OSX.

Несколько серверов имен в resolv.conf по порядку, то есть, если верхний сервер недоступен, будет использован второй. Получение ответа NXDOMAIN или SRVFAIL от верхнего сервера в этом случае не считается ошибкой.

У меня настроена та же конфигурация, но теперь у меня есть контроль над удаленным DNS-сервером (с использованием unbound), и я смог преобразовать «.local» для разрешения 127.0.0.1. Ранее я делал это с помощью dnsmasq - единственное, что вам действительно нужно сделать, это сказать dnsmasq три вещи;

no-resolv: не ищите вышестоящий сервер имен в файле resolv.conf . Поскольку он будет содержать 127.0.0.1 , у вас будет головная боль при рекурсии.

server = 192.168.0.1 или где находится ваш удаленный DNS-сервер - куда должен обратиться dnsmasq, если он не может найти ответ на ваш вопрос в своей локальной конфигурации? Вы также можете использовать что-то вроде '8.8.8.8' здесь (публичная служба DNS от Google).

address/.dev/127.0.0.1 - сопоставить любые запросы для «* .dev» с «127.0.0.1».

После этого и директивы nameserver=127.0.0.1 в resolv.conf.head вы должны быть установлены.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .