Пытаюсь настроить сетевой принтер с помощью CUPS.

Следуя онлайн-документации, в которой говорилось:

Чтобы обнаруживать или совместно использовать принтеры с помощью DNS-SD / mDNS, настройте разрешение имени хоста .local с помощью Avahi и перезапустите cups.service.

Следуйте инструкциям по настройке Avahi до точки, в которой avahi-browse --all --ignore-local --resolve --terminate и avahi-resolve-host-name my-domain.local оба работают.

Но getent hosts my-domain.local не удается разрешить. Это приводит к тому, что CUPS не может печатать, потому что не может найти my-printer.local.

0
Eric Ihli 6 Дек 2020 в 08:36

1 ответ

Лучший ответ

Я прочитал страницу mdns на Github и увидел примечание, которое заставило меня подумать, что мне не нужен файл /etc/mdns.allow.

nss-mdns имеет простой файл конфигурации /etc/mdns.allow для включения поиска имен через mDNS в других доменах, кроме .local.

Примечание. «Минимальная» версия nss-mdns не читает /etc/mdns.allow ни при каких обстоятельствах. Он ведет себя так, как будто файл не существует.

В рекомендуемой конфигурации файл /etc/mdns.allow отсутствует.

Но потом я увидел последнюю заметку в этом разделе:

Если во время запроса настроенная системой одноадресная DNS (указанная в /etc/resolv.conf) сообщает о записи SOA для локального имени верхнего уровня, запрос отклоняется. Пример: host -t SOA local возвращает что-то, кроме Host local not found: 3 (NXDOMAIN). Это одноадресная эвристика SOA.

Я проверил это на своей машине и, конечно же, получил что-то ДРУГОЕ, чем Host local not found....

Добавление файла /etc/mdns.allow со строкой для .local. и для .local, и теперь я могу пинговать my-printer.local.

0
Eric Ihli 6 Дек 2020 в 05:36