Я недавно установил dnscrypt-proxy
. В файле конфигурации для него /etc/dnscrypt-proxy/dnscrypt-proxy.toml
есть раздел черного списка, который я сейчас использую:
[blacklist]
## Path to the file of blocking rules (absolute, or relative to the same directory as the executable file)
blacklist_file = '/etc/dnscrypt-proxy/CustomIgnores.txt'
Мне было интересно, заменяет ли эта опция перенаправления на /etc/hosts? Или используются оба?
К чему вообще относится файл /etc/hosts? И как вообще работает опция Blacklist для dnscrypt (я предполагаю, что она также просто перенаправляет на localhost)? Спасибо.
решение1
При выполнении DNS-запросов порядок поиска определяется с помощью Name Service Switch
конфигурации в /etc/nsswitch.conf
. Вы можете проверить свой через:
cat /etc/nsswitch.conf | grep -i hosts
Например, он может вывести следующее:
hosts: files dns
Здесь files
относится к локальному файлу хостов ( /etc/hosts
), а dns относится к серверу, указанному в /etc/resolv.conf
. Поиск выполняется в том порядке, в котором они записаны, поэтому /etc/hosts
в этом случае будет обработан первым. Если доменное имя не найдено в файле, то будет сделана попытка обратиться к серверу в /etc/resolv.conf
.
Возвращаясь к вашему случаю, если ваш nsswitch.conf
файл имеет files
значение перед dns
, и определенный домен указан как в , так /etc/hosts
и blacklist
в записи в dnscrypt-proxy.toml
, то предшествовать будет тот, что в /etc/hosts
. Кроме того, если соответствующая запись отсутствует в /etc/hosts
, но есть в dnscrypt-proxy blacklist
, это приведет к refused
ответу. Цитата из вики-страницы dnscrypt-proxy на GitHub:
черные списки: имена или шаблоны, которые приведут к немедленному ответу REFUSED на запрос.
Использованная литература: