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

Содержание статьи
- 1 Установите и настройте CUPS в системе Ubuntu.
- 2 Инсталлируйте драйвер для вашего принтера в Ubuntu.
- 3 Настройте общий доступ к принтеру CUPS с использованием протокола Bonjour/IPP.
- 4 Установка принтера на клиентских устройствах
- 5 Настройка совместного доступа к принтеру CUPS с помощью Samba.
- 6 Настройка сетевого принтера для общего доступа через Samba в операционной системе Windows.
- 7 Распространите доступ к принтеру CUPS для устройств iOS с помощью AirPrint.
- 8 Заключение
Установите и настройте CUPS в системе Ubuntu.
На настольной версии Ubuntu CUPS предустановлен. Если же у вас серверная версия Ubuntu, необходимо выполнить команду для установки CUPS из стандартного репозитория.
sudo apt install cups
После этого активируйте CUPS.
sudo systemctl start cups
Активируйте автозагрузку при старте системы.
sudo systemctl enable cups
Пожалуйста, уточните его текущее состояние.
systemctl status cups

Затем измените основной файл конфигурации 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 в настройки, как представлено ниже.
Кроме того, включите это в каталог /admin для разрешения удаленного администрирования из локальной сети.
Вы также можете предоставить доступ с определенного IP-адреса следующим образом:
Сохраните изменения и закройте файл. После этого перезапустите 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, поэтому для совместного использования принтера через этот протокол дополнительных настроек не требуется.
Установка принтера на клиентских устройствах
Пользователи 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-клиент. Для его использования введите «принтер» в строке поиска в левом нижнем углу и перейдите в раздел «Принтеры и сканеры». После этого нажмите на кнопку «Добавить принтер или сканер», и система проведет сканирование доступных принтеров в вашей локальной сети.

Как видно, он обнаружил мой принтер HP Deskjet. Выберите его из списка и нажмите на опцию «Добавить устройство». Через несколько секунд он появится в списке принтеров.

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

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

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

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

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

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

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

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

Настройка совместного доступа к принтеру 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. Теперь принтер должен отображаться в списке.

Дважды кликните на принтере, чтобы интегрировать его в вашу операционную систему Windows. После этого нажмите кнопку OK для выбора драйвера, который необходимо установить. После завершения установки драйвера принтер будет доступен в вашей системе 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
Включите следующие строки в документ.
Сохраните файл и закройте его. Затем перезапустите Avahi-daemon.
sudo systemctl restart avahi-daemon
Теперь пользователи iOS и macOS в одной сети могут подключаться к вашему принтеру. На следующем изображении можно увидеть, что мой iPhone успешно обнаружил принтер AirPrint.

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

