Настройка сервера печати CUPS на Ubuntu (Bonjour, IPP, Samba, AirPrint)

В данном руководстве мы расскажем, как настроить общий доступ к принтеру, подключенному к компьютеру с операционной системой Ubuntu, для клиентов 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 на Ubuntu

Установите и настройте CUPS в системе Ubuntu.

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

sudo apt install cups

После этого активируйте CUPS.

sudo systemctl start cups

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

sudo systemctl enable cups

Пожалуйста, уточните его текущее состояние.

systemctl status cups

Система печати CUPS на Ubuntu

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

sudo nano /etc/cups/cupsd.conf

Для начала необходимо отобразить доступные принтеры в локальной сети. Найдите следующую строку.

Browsing Off

Browsing On

чтобы другие устройства в одной сети могли обнаруживать принтеры, которые подключены к вашему компьютеру с Ubuntu.

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

Listen localhost:631

Port 631

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

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

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

Читайте также:  Как создать собственный VPN сервер на Linux

Разрешите, запретите Разрешить @LOCAL

Кроме того, включите это в каталог /admin для разрешения удаленного администрирования из локальной сети.

Разрешите, запретите Разрешить @LOCAL

Вы также можете предоставить доступ с определенного IP-адреса следующим образом:

Разрешить, запретить: разрешить 192.168.0.101

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

sudo systemctl restart cups

Имейте в виду, что при активации брандмауэра UFW на Ubuntu необходимо разрешить клиентам в одной сети доступ к порту 631 на вашем компьютере с Ubuntu. Например, в моей частной сети используется диапазон 192.168.0.0.~192.168.0.255, поэтому я запускаю эту команду.

sudo ufw allow in from 192.168.0.0/24 to any port 631

Веб-интерфейс CUPS можно найти по следующему адресу: https://IP-адрес-вашего-Ubuntu-компьютера:631. Хотя в этой статье мы не будем использовать веб-интерфейс, если вы хотите им воспользоваться, вам потребуется добавить свою учетную запись пользователя в группу lpadmin для возможности внесения изменений.

sudo adduser ваше_имя_пользователя lpadmin

Инсталлируйте драйвер для вашего принтера в Ubuntu.

Для того чтобы Ubuntu могла распознавать и использовать принтер, необходимо установить соответствующий драйвер. Если у вас принтер марки HP, вы можете установить драйвер с помощью следующей команды.

sudo apt install hplip

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

sudo apt install printer-driver-gutenprint

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

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

echo "LinuxBabe is awesome!" > file. txt

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

lp file. txt

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

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

Инсталляция Avahi-daemon.

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

sudo apt install avahi-daemon

sudo systemctl start avahi-daemon

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

sudo systemctl enable avahi-daemon

Avahi-daemon использует для прослушивания UDP порт 5353. Разрешите его в настройках брандмауэра.

sudo ufw allow 5353/udp

Печать с использованием IPP без необходимости установки драйверов

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

Читайте также:  Два метода установки мессенджера Telegram на Debian 8

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

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

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

Если ваш компьютер на Linux не обнаруживает принтер, возможно, в системе отсутствует утилита ippfind. Чтобы установить ее на дистрибутивах Linux, основанных на 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. Выберите его из списка и нажмите на опцию «Добавить устройство». Через несколько секунд он появится в списке принтеров.

add-printers-scanners-windows10-ipp

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

add-bonjour-shared-printer-on-windows

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

Здравствуйте, драйвер класса IPP от Microsoft.

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

Добавление принтера вручную в системе Linux.

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

Добавьте принтер CUPS на Linux.

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

Чашки Ubuntu DNSSD

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

ubuntu-cups-printer-mdns-dnssd

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

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

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

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

Читайте также:  Настройка порта SMTPS 465 на почтовом сервере Postfix для отправки электронной почты

Принтер, совместно используемый через Bonjour в macOS

Нажмите на кнопку «Добавить», и устройство отобразится в списке принтеров.

macOS-printers-scanners-list

Настройка совместного доступа к принтеру CUPS с помощью Samba.

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

Для установки Samba на Ubuntu просто введите следующую команду в терминале.

sudo apt install samba samba-common-bin

Для проверки, активен ли сервис Samba, необходимо выполнить следующие команды.

systemctl status smbd systemctl status nmbd

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

sudo systemctl start smbd sudo systemctl start nmbd

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

sudo nano /etc/samba/smb.conf

Советуем активировать службу spoolssd при использовании общего доступа к принтеру. Это повысит эффективность Samba при наличии множества печатных заданий. Просто добавьте следующие две строки в секцию [global], чтобы активировать службу spoolssd.

rpc_server:spoolss = external rpc_daemon:spoolssd = fork

Затем прокрутите файл до его конца, где расположена секция [printers]. В текстовом редакторе Nano для перемещения в конец файла нажмите Ctrl+W, а затем Ctrl+V. Обратите внимание на две строки, которые следует найти.

browseable = no guest ok = no

browseable = yes guest ok = yes

Сохраните файл и закройте его. После этого перезапустите Samba.

sudo systemctl restart smbd nmbd

Настройка сетевого принтера для общего доступа через Samba в операционной системе Windows.

Запустите проводник и в строке адреса укажите IP-адрес устройства с Ubuntu, например \192.168.0.110. Теперь принтер должен отображаться в списке.

Добавление принтера Samba в Windows 10.

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

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

Распространите доступ к принтеру CUPS для устройств iOS с помощью AirPrint.

AirPrint предоставляет пользователям iPhone, iPad и macOS возможность печати по Wi-Fi без необходимости установки драйверов на устройствах. Хотя CUPS поддерживает AirPrint, avahi-daemon по умолчанию не анонсирует эту службу в локальной сети. Для настройки принтера необходимо создать файл.service в каталоге /etc/avahi/services/ с помощью Python-скрипта, используя следующую команду. Мой принтер — DeskJet 2130 series. Замените это название на вашу модель.

sudo nano /etc/avahi/services/AirPrint-DeskJet-2130-series.service

Включите следующие строки в документ.

AirPrint DeskJet-2130-series @ %h _ipp._tcp _universal._sub._ipp._tcp 631 txtvers=1 qtotal=1 Transparent=T URF=none rp=printers/DeskJet-2130-series note=Серия принтеров HP DeskJet 2130. продукт=(GPL Ghostscript) printer-state=3 printer-type=0x2900c pdl=application/octet-stream, application/pdf, application/postscript, application/vnd. cups-raster, image/gif, image/jpeg, image/png, image/tiff, image/urf, text/html, text/plain, application/vnd. adobe-reader-postscript, application/vnd. cups-pdf

Сохраните файл и закройте его. Затем перезапустите Avahi-daemon.

sudo systemctl restart avahi-daemon

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

ubuntu-cups-airprint

Заключение

Надеюсь, данный учебник был полезен для вас в процессе настройки сервера печати CUPS на Ubuntu 20.04, 18.04 и 21.10. Если вам понравилась эта статья, подписывайтесь на нашу бесплатную рассылку для получения дополнительных советов и рекомендаций. Кроме того, вы можете ознакомиться с следующей статьей о настройке сервера файлового общего доступа Samba.

  • Конфигурация сервера Samba на Ubuntu для совместного доступа к файлам.