Я нашел ответ! Таким образом, большинство из вас знает, что файл / etc / hosts разрешает домены, что-то вроде DNS-сервера. Но как система узнает, что нужно искать в этом файле? И как он узнает, в каком порядке искать этот файл или DNS-сервер?
Есть файл: /etc/nsswitch.conf
У меня была строка:
hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns
Это означает сначала проверить файлы , например / etc / hosts. Затем проверьте имя хоста системы. Затем есть mdns4, который, я считаю, является протоколом для поиска других машин в локальной сети.
После mdns4 меня задерживало. [NOTFOUND = возврат]
. mdns ищет имена, оканчивающиеся на .local
.Если он не может его найти, он не просто переходит к следующему и последнему методу поиска dns
, он фактически останавливается и сообщает вашей системе, что домен не существует. Поскольку домен, который я установил в dnsmasq, был доменом .local
, он никогда туда не попал.
Есть два способа исправить это. Первый - удалить [NOTFOUND = return]
. Я выбрал именно этот способ, и он отлично работает. Есть небольшая задержка, потому что я думаю, что mdns видит .local
и все равно пытается найти его, прежде чем передать его dns
.
Вот как теперь выглядит мой файл:
hosts: files myhostname mdns4_minimal dns
Другой вариант, поскольку я на самом деле не использую mdns, я мог либо удалить его полностью, либо был способ указать ему использовать другой tld, например .alocal
вместо этого - но я думаю, что это также эффективно отключило бы его.