Принтеры CUPS, обнаруженные при просмотре, отображаются как ///dev/null

У меня есть два сервера в одной подсети, один сервер CUPS и один, которому требуется доступ к принтерам, настроенным на сервере CUPS. Просмотр CUPS, кажется, частично работает, но, согласно lpstat на клиенте, устройства ///dev/null вместо ipp устройство.

[username@clienthost ~]$ lpstat -t
scheduler is running
no system default destination
device for boardroom: ipp://oldprintserver.my.network:631/printers/boardroom
device for br: ipp://oldprintserver.my.network:631/printers/br
device for its: ///dev/null      <------ THIS IS BAD?
  • Сервер печати работает под управлением Scientific Linux 6.4 с CUPS 1.4.2
  • Клиент печати работает под управлением CentOS 5.8 с CUPS 1.3.7

Конфигурация сервера - cupsd.conf

Browsing On
BrowseRemoteProtocols
BrowseAddress @LOCAL
BrowseLocalProtocols CUPS dnssd

Конфигурация клиента - cupsd.conf

Browsing On
BrowseOrder allow,deny
BrowseAllow @LOCAL
BrowsePoll therealprintservername.my.network
BrowseInterval 30

Используя tcpdump для анализа пакетов между хостами, становится ясно, что клиент опрашивает сервер по IPP. Сервер отвечает 200 OK. Кроме того, кажется, что клиент видит только классы, объявленные сервером печати, а не сами очереди принтера.

Так вот что я действительно хочу знать.

  • Какая минимально необходимая конфигурация для просмотра CUPS для работы в той же локальной сети?
  • Работает ли просмотр принтеров между разными версиями CUPS?
  • Какие другие инструменты устранения неполадок доступны для проблем с просмотром принтера?

[Редактировать: Несмотря на то, что lpstat -t говорит, что устройство ///dev/null, я все еще могу отправлять задания печати на устройство. Так что это выглядит как обычные печатные работы, но я все еще задаюсь вопросом, почему на клиенте это выглядит как /// dev / null.]

1 ответ

Решение

Большинство моих проблем сводилось к неправильному пониманию файла (ов) конфигурации CUPS. Я наткнулся на отличную справку под названием HOWTO по настройке небольшого сервера - CUPS Print Server (chschneider.eu), в котором содержится большинство ответов, которые я искал.

У классов принтера есть нулевые устройства

Q: Согласно lpstat на клиенте, устройства ///dev/null вместо устройства ipp.

Классы принтера никогда не связаны с определенным устройством или портом. Вместо этого они содержат другие принтеры в качестве членов. Запускаете ли вы lpstat на сервере CUPS или на клиенте, классы принтеров всегда будут иметь ///dev/null в качестве целевого устройства. Это предполагаемое поведение.

Использование клиента CUPS без локального сервера

Если вы хотите, чтобы все ваши задачи печати обрабатывались только одним сервером печати CUPS, вам вообще не нужно настраивать локальный сервер CUPS. Просто добавьте следующую строку в /etc/cups/client.conf,

ServerName my_cups_server.my.network

В режиме клиента все обычные команды печати, такие как lpstat а также lpr будет отправлено непосредственно на удаленный сервер CUPS. Если client.conf пуст, команды печати будут искать локальный сервер CUPS.

Минимальная конфигурация

Вопрос: Какова минимальная конфигурация, необходимая для просмотра CUPS для работы в той же локальной сети?

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

Опрос по IPP

Это идеально, если у вас всего несколько клиентов и вы хотите больше контролировать среду печати. Опрос является неотъемлемой частью CUPS, и никаких специальных директив для его включения не требуется. Просто убедитесь в следующем:

  • Каждая очередь принтера должна иметь Sharing включается индивидуально.
  • <Location /> раздел должен разрешить соответствующие подсети и / или пользователей.
  • Будьте осторожны с пользовательскими политиками, которые могут запрещать доступ.

Просмотр через UDP-трансляции

Это идеально, если у вас много клиентов или серверов, и вы хотите облегчить использование вашего сервера печати. Если на сервере включен просмотр, он будет периодически отправлять UDP-трансляции.

Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseAddress @LOCAL
Другие вопросы по тегам