Настройка печатного сервера CUPS на CentOS 8/RHEL 8 (Bonjour, IPP, Samba, AirPrint)

В этом руководстве вы узнаете, как настроить общий доступ к принтеру, подключенному к компьютеру на базе CentOS 8 или RHEL 8, для пользователей Windows, macOS и iOS в одной сети. CUPS (Common Unix Printing System) — это стандартная система печати, используемая в Linux, FreeBSD и macOS. В различных настольных окружениях Linux могут быть свои инструменты для настройки принтера, но все они работают на базе CUPS. Принтер, настроенный через CUPS, можно сделать доступным в сети с помощью различных протоколов, таких как:

  • Bonjour, также называемый mDNS/DNS-SD (многоадресный DNS/обнаружение сервисов DNS), обеспечивает возможность поиска сервисов в локальной сети. IPP (Интернет-протокол печати) используется в качестве транспортного протокола.
  • SMB, также называемый Samba, чаще всего применяется для обмена файлами и принтерами с устройствами на базе Windows.
  • AirPrint: Обеспечивает возможность пользователям iPhone, iPad и macOS выполнять печать через Wi-Fi.

У каждого протокола есть свои плюсы и минусы. Сначала я продемонстрирую, как выполнить установку и настройку CUPS. Далее мы рассмотрим процесс совместного использования принтера CUPS через три вышеупомянутых протокола. Рекомендую настроить все три способа, чтобы пользователи могли без труда находить принтер в вашей локальной сети.

Настройка сервера печати CUPS на CentOS 8 RHEL 8

Установка и конфигурация CUPS на CentOS 8/RHEL 8

В настольной версии CentOS 8/RHEL 8 система CUPS уже установлена. В случае использования серверной версии CentOS 8/RHEL 8 потребуется выполнить следующую команду для установки CUPS из стандартного репозитория CentOS 8/RHEL 8.

sudo dnf install cups

После этого запустите CUPS.

sudo systemctl start cups

Настройте автоматический запуск при включении системы.

sudo systemctl enable cups

Убедитесь в его состоянии:

systemctl status cups

cups-printing-system-centos8-rhel8

Затем откройте основной конфигурационный файл CUPS с помощью текстового редактора, работающего в командной строке, например, Nano.

sudo nano /etc/cups/cupsd.conf

Веб-интерфейс CUPS, по умолчанию, доступен только на адресе localhost:631. Если вы работаете с серверной версией CentOS 8 или RHEL 8, может возникнуть необходимость настроить CUPS для прослушивания на всех доступных сетевых интерфейсах. Это позволит вам получить доступ к веб-интерфейсу CUPS с других устройств. Найдите следующую строку.

Listen localhost:631

Измените её на следующую, чтобы CUPS принимал запросы на всех сетевых интерфейсах.

Port 631

Эта команда обеспечит отображение общих принтеров в сети CUPS, чтобы другие устройства в той же сети могли обнаруживать принтеры, подключенные к вашему компьютеру с CentOS 8/RHEL 8.

Browsing On

После этого найдите следующие строки.

Разрешить, запретить.

Указанная выше настройка предоставляет возможность доступа к веб-интерфейсу CUPS исключительно с локального хоста. Для того чтобы разрешить подключение с других устройств в одной сети, внесите в конфигурацию строку Allow @LOCAL, как показано далее.

Читайте также:  Ищем файлы изменялись в определённом диапазоне времени в Linux

Разрешить, запретить заказы: Разрешить @LOCAL.

Чтобы разрешить удаленное администрирование из локальной сети, необходимо также внести соответствующие изменения для директории /admin.

Разрешить, запретить заказы: Разрешить @LOCAL.

Сохраните файл и закройте его. После этого перезапустите CUPS, чтобы изменения начали действовать.

sudo systemctl restart cups

Необходимо предоставить клиентам в одной сети доступ к порту 631 на вашем компьютере, работающем под управлением CentOS 8/RHEL 8.

sudo firewall-cmd --permanent --add-port=631/tcp

Перезапустите брандмауэр, чтобы обновления начали действовать.

sudo systemctl reload firewalld

Кроме основного сервиса cups.service, существует также cups-browsed.service, который отвечает за обнаружение и добавление принтеров в локальной сети. Если вы хотите, чтобы ваш компьютер с CentOS 8/RHEL 8 имел доступ к другим принтерам в сети, необходимо запустить этот сервис.

sudo systemctl start cups-browsed

И настройте автоматический запуск при включении.

sudo systemctl enable cups-browsed

Инсталлируйте драйвер принтера на CentOS 8/RHEL 8.

Чтобы принтер мог быть распознан и использован на CentOS 8/RHEL 8, необходимо установить драйвер. Если ваш принтер марки HP, вы можете просто воспользоваться следующей командой для его установки.

sudo dnf install hplip

Рекомендую также установить пакет gutenprint-cups, который предлагает драйверы CUPS для принтеров таких марок, как Canon, Epson, HP и других совместимых устройств.

sudo dnf install gutenprint-cups

Если у вас есть другие модели принтеров, вы можете загрузить драйвера на сайте openprinting. org.

После установки драйвера возможно, вам придется заново подключить принтер к USB-порту вашего компьютера с CentOS 8 или RHEL 8. Для проверки правильности работы драйвера можно создать текстовый файл на CentOS 8/RHEL 8:

echo "LinuxBabe is awesome!" > file. txt

Далее введите следующую команду, чтобы вывести содержимое этого текстового файла через командную строку.

lp file. txt

Этот способ весьма прост, поэтому не переживайте о качестве печати в данный момент.

Настройте общий доступ к принтеру CUPS с использованием протокола Bonjour/IPP.

Установка демона Avahi

CUPS способен сообщать о своем наличии в сети с помощью протоколов mDNS (мультикастовый DNS) и DNS-SD (обнаружение служб DNS), которые также известны как Bonjour. Для этого требуется установить и запустить avahi-daemon, сервис, который выполняет функции, схожие с Apple Bonjour, и дает возможность компьютерам автоматически находить общие устройства и службы в локальной сети.

sudo dnf install avahi

Необходимо установить пакет nss-mdns из репозитория EPEL, который требуется клиентам для разрешения домена. local в сети.

sudo dnf install epel-release sudo dnf install nss-mdns

sudo systemctl start avahi-daemon

Настройте автоматический запуск при включении системы.

sudo systemctl enable avahi-daemon

Avahi-daemon использует UDP порт 5353. Необходимо открыть его в настройках файрвола.

sudo firewall-cmd --permanent --add-port=5353/udp

Перезапустите брандмауэр, чтобы изменения вступили в силу.

sudo systemctl reload firewalld

IPР-печать без использования воды.

Bonjour применяется для обнаружения принтера в локальной сети. Для взаимодействия между клиентами и сервером CUPS используется IPP (Интернет-протокол печати). Основное преимущество IPP состоит в том, что пользователи могут подключаться к общему принтеру без необходимости установки драйверов на свои устройства. CUPS поддерживает IPP по умолчанию, что позволяет легко делиться принтером через этот протокол без дополнительных настроек.

Читайте также:  Сравнение ОС Windows, Linux и Mac OS

Установка принтера на рабочих станциях

Пользователи macOS и Linux.

Так как в macOS и большинстве настольных дистрибутивов Linux CUPS установлен по умолчанию в качестве системы печати, после того как вы активируете общий доступ к принтеру через Bonjour/IPP на CentOS 8 или RHEL 8, пользователи macOS и Linux, находящиеся в той же сети, смогут автоматически подключаться к принтеру. При выборе опции печати в различных приложениях (например, текстовых редакторах, почтовых программах, графических редакторах или браузерах), принтер сразу станет доступен. Добавлять его вручную не потребуется — всё происходит автоматически.

Если ваш компьютер на Linux не обнаруживает принтер, возможно, в системе не установлена команда ippfind. Для установки этой команды в дистрибутивах на основе Debian выполните следующую команду.

sudo apt install cups-ipp-utils

На CentOS 8 выполните следующую инструкцию.

sudo dnf install cups-ipptool

Перезагрузите CUPS на компьютере клиента.

sudo systemctl restart cups

Windows

Windows 10 включает в себя клиент IPP. Чтобы добавить принтер, введите «Принтер» в строку поиска в нижнем левом углу и перейдите в раздел «Принтеры и сканеры». Далее нажмите на кнопку «Добавить принтер или сканер», после чего система выполнит поиск доступных принтеров в вашей локальной сети.

Принтеры и сканеры в Windows 10

Он обнаружил мой принтер HP Deskjet. Выберите его из списка и нажмите на кнопку «Добавить устройство». Принтер будет добавлен в ваш список в течение нескольких секунд.

Если вы работаете с версией Windows, которая не поддерживает добавление принтера указанным способом, вы можете установить Bonjour Print Services. После завершения установки откройте мастер принтера Bonjour, который автоматически просканирует локальную сеть на наличие доступных принтеров. Как видно на скриншоте, он обнаружил мой принтер HP.

добавить принтер Bonjour на Windows

Нажмите кнопку «Далее», после чего потребуется выбрать драйвер для вашего принтера. Вы можете выбрать драйвер Microsoft IPP, который уже предустановлен в вашей системе.

драйвер класса IPP от Microsoft

Нажмите кнопку «Далее», чтобы принтер был установлен в вашей системе Windows.

Ручная установка принтера в Linux

Если по каким-либо причинам ваш принтер не отображается, его можно добавить вручную. Для этого на настольном Linux, используя Bonjour, откройте утилиту конфигурации принтера в настройках системы или в меню приложений. Нажмите кнопку «Добавить», чтобы установить новый принтер.

установить принтер cups на Linux

После этого выберите Сетевой принтер, и устройство автоматически просканирует доступные принтеры в вашей локальной сети. Как видно, он обнаружил мой принтер HP Deskjet. Нажмите на кнопку Далее.

cups centos 8 dnssd

После этого вы можете задать принтеру название и описание. Я обычно оставляю значения по умолчанию. Нажмите кнопку «Применить», и вы завершите настройку.

CentOS 8: Настройка принтера через CUPS с использованием mDNS и DNS-SD.

Добавление принтера вручную на macOS

Чтобы добавить принтер, совместно используемый через Bonjour, на macOS, перейдите в Системные настройки ->Принтеры и сканеры. Для добавления принтера нажмите на кнопку с плюсом (+).

добавить принтер Bonjour на macOS

Он автоматически осуществит поиск доступных принтеров в локальной сети. Как можно заметить, ему удалось обнаружить мой принтер HP Deskjet.

Читайте также:  Настройка имени пользователя и электронной почты для коммитов в Git: Руководство для начинающих

Принтер Bonjour для macOS

Нажмите на кнопку «Добавить», и принтер будет добавлен в ваш список.

Принтеры и сканеры в macOS

Организация общего доступа к принтеру CUPS с помощью Samba

Samba представляет собой бесплатную и открытую реализацию протокола SMB/CIFS для операционных систем Unix и Linux. Она предназначена для обмена файлами и печатью между компьютерами на базе Unix/Linux и Windows в рамках локальной сети. Основная цель Samba — обеспечить совместное использование файлов и принтеров с клиентами на Windows.

Для установки Samba на CentOS 8 или RHEL 8 введите следующую команду.

sudo dnf install samba

После этого выполните следующую команду для активации служб smbd и nmbd.

sudo systemctl start smb nmb

Активируйте автозапуск при старте системы.

sudo systemctl enable smb nmb

Для проверки функционирования службы Samba выполните следующие команды.

systemctl status smb nmb

После запуска демона SMB он начнет прослушивание на TCP портах 139 и 445, а nmbd будет работать на UDP портах 137 и 138. Чтобы открыть эти порты в брандмауэре, выполните следующую команду.

sudo firewall-cmd --permanent --add-service=samba

Перезапустите службу брандмауэра, чтобы обновления начали действовать.

sudo systemctl reload firewalld

После этого внесите изменения в основной конфигурационный файл.

sudo nano /etc/samba/smb.conf

Отметьте раздел [printers]. По умолчанию он представлен следующим образом:

[printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No

Необходимо установить значение browseable на yes, чтобы пользователи в одной сети могли обнаруживать принтер, а также добавить guest ok = yes, чтобы разрешить всем пользователям в сети доступ к использованию принтера.

[printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = yes guest ok = yes

Рекомендуется активировать службу spoolssd при использовании принтера совместно. Это повысит эффективность работы Samba.
Добавьте принтер с поддержкой Samba в Windows 10.

Дважды кликните на принтер, чтобы включить его в систему Windows. Затем нажмите ОК, чтобы выбрать нужный драйвер для установки. После завершения установки драйвер принтер будет интегрирован в вашу систему Windows.

Мастер добавления принтера в Windows

Используйте AirPrint для совместного доступа к принтеру CUPS с устройствами iOS.

AirPrint дает возможность пользователям iPhone, iPad и macOS печатать по Wi-Fi без необходимости установки драйверов на устройствах. Хотя CUPS поддерживает AirPrint, avahi-daemon по умолчанию не анонсирует службу AirPrint в локальной сети. Для принтера необходимо создать файл.service в директории /etc/avahi/services/ с помощью Python-скрипта. Чтобы загрузить скрипт на CentOS 8/RHEL 8, выполните следующую команду.

wget https://raw. github.com/tjfontaine/airprint-generate/master/airprint-generate. py

Предоставьте права на выполнение.

chmod +x airprint-generate. py

Этот скрипт написан для Python2, однако CentOS 8/RHEL 8 по умолчанию используют Python3. Поэтому необходимо установить Python2.

sudo dnf install python2

nano airprint-generate. py

#!/usr/bin/env python

#!/usr/bin/env python2

Закройте и сохраните файл, после чего установите необходимые зависимости.

sudo dnf install gcc python2-devel cups-devel redhat-rpm-config

Установите пакет cups.

sudo pip2 install cups pycups

После этого выполните данный скрипт.

sudo ./airprint-generate. py - d /etc/avahi/services/

В каталоге /etc/avahi/services/ теперь должен появиться файл.service для вашего принтера.

ls /etc/avahi/services/

AirPrint-DeskJet-2130-series.service

sudo systemctl restart avahi-daemon

Теперь пользователи iOS и macOS, находящиеся в одной сети, должны без проблем обнаружить ваш принтер. На следующем изображении видно, что мой iPhone успешно распознал принтер через AirPrint.

CentOS 8 и поддержка AirPrint через CUPS.

Надеюсь, это руководство помогло вам настроить сервер печати CUPS на CentOS 8/RHEL 8.