Общий доступ к принтеру через Ubuntu — задача, которая кажется сложной только на первый взгляд. На самом деле, современные версии этой ОС предоставляют все необходимые инструменты для расшаривания устройства как по локальной сети, так и для удалённых подключений. Главное — правильно настроить CUPS (Common Unix Printing System), выбрать корректные драйверы и учесть особенности вашей модели принтера.
Многие пользователи сталкиваются с проблемами при попытке сделать принтер сетевым: то драйвер не подходит, то права доступа неверные, то устройство просто не видно в сети. В этой статье мы разберём все этапы — от базовой настройки до решения типичных ошибок. Особое внимание уделим Canon, HP и Brother, так как их принтеры наиболее распространены в офисах и дома. А если вы используете Ubuntu Server без графического интерфейса — для вас тоже найдётся решение.
Прежде чем приступать, убедитесь, что ваш принтер физически подключён к компьютеру с Ubuntu (по USB или через сеть) и включён. Если устройство новое, проверьте наличие оригинальных картриджей — некоторые модели блокируют печать при отсутствии фирменных расходников.
1. Подготовка системы: установка CUPS и драйверов
Первый шаг — убедиться, что на вашем компьютере установлен CUPS (система управления печатью в Linux). В большинстве дистрибутивов Ubuntu она идёт "из коробки", но иногда требуется обновление или переустановка. Откройте терминал (Ctrl+Alt+T) и выполните команду:
sudo apt update && sudo apt install cups
После установки запустите службу CUPS и добавьте её в автозагрузку:
sudo systemctl start cups
sudo systemctl enable cups
Теперь нужно установить драйвер для вашего принтера. Здесь есть два варианта:
- 🔹 Официальные драйверы от производителя (рекомендуется для HP, Canon, Brother). Скачайте их с сайта бренда — обычно это пакеты
.debили.tar.gz. - 🔹 Open-source драйверы из репозиториев. Например, для принтеров HP подойдёт пакет
hplip, а для Epson —epson-inkjet-printer-escpr.
Для установки драйвера HP выполните:
sudo apt install hplip hplip-gui
Если ваш принтер не определяется автоматически, попробуйте подключить его по USB и запустить утилиту hp-setup (для HP) или lpinfo -v для проверки доступных устройств.
2. Настройка общего доступа в CUPS
Теперь перейдём к основному этапу — настройке общего доступа. Откройте веб-интерфейс CUPS, перейдя в браузере по адресу:
http://localhost:631
В разделе Administration (Администрирование) найдите опцию Share Printers Connected to This System (Расшарить принтеры, подключённые к этой системе). Поставьте галочку и сохраните настройки. Если этот пункт отсутствует, значит, ваша версия CUPS не поддерживает расшаривание через веб-интерфейс — придётся редактировать конфигурационный файл вручную.
Для ручной настройки откройте файл /etc/cups/cupsd.conf в любом текстовом редакторе с правами суперпользователя:
sudo nano /etc/cups/cupsd.conf
Найдите строки, начинающиеся с Listen и Browsing, и приведите их к следующему виду:
Listen *:631
Browsing On
DefaultShared Yes
Также добавьте разрешение для локальной сети (замените 192.168.1.0/24 на ваш диапазон IP):
<Location />
Order allow,deny
Allow @LOCAL
Allow 192.168.1.0/24
</Location>
После сохранения изменений перезапустите службу CUPS:
sudo systemctl restart cups
Убедиться, что CUPS установлен и запущен|Проверить доступность веб-интерфейса по localhost:631|Включить опцию "Share Printers" в настройках|Отредактировать cupsd.conf при необходимости|Перезапустить службу CUPS-->
3. Добавление принтера в систему
Если принтер ещё не добавлен в систему, сделайте это через веб-интерфейс CUPS или графическую утилиту Настройки → Устройства → Принтеры. При добавлении выберите:
- 🔹 Локальный принтер (если подключён по USB).
- 🔹 Сетевой принтер (если устройство уже подключено к сети через Ethernet или Wi-Fi).
Для USB-принтеров система обычно автоматически определяет модель и предлагает подходящий драйвер. Если этого не произошло, выберите драйвер вручную из списка. Для сетевых принтеров может потребоваться указать IP-адрес или URI в формате:
lpd://192.168.1.100/queue
socket://192.168.1.100:9100
После добавления принтера проверьте его статус в веб-интерфейсе CUPS. Если рядом с устройством горит зелёная галочка — оно готово к работе. Жёлтый или красный индикатор говорит об ошибке (обычно это проблемы с драйвером или подключением).
Если система не видит принтер, проверьте: 1. Физическое подключение (USB-кабель, питание). 2. Совместимость модели с Linux (некоторые новые принтеры требуют проприетарных драйверов). 3. Права доступа к устройству (команда 4. Наличие блокирующих правил в Что делать, если принтер не определяется?
lsusb должна показывать принтер в списке).udev (проверьте вывод команды dmesg | grep usb).
4. Настройка прав доступа и безопасности
По умолчанию расшаренный принтер будет доступен всем устройствам в локальной сети. Если требуется ограничить доступ, отредактируйте файл /etc/cups/cupsd.conf, добавив правила для конкретных IP или подсетей. Например, чтобы разрешить печать только с компьютеров 192.168.1.50 и 192.168.1.60, добавьте:
<Location /printers>
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.1.50
Allow from 192.168.1.60
</Location>
Для аутентификации пользователей можно настроить авторизацию по логину/паролю. Создайте файл /etc/cups/passwd.md5 и добавьте в него записи в формате:
username:password_hash
Хэш пароля можно сгенерировать с помощью команды:
echo -n "password" | md5sum
Не забудьте перезапустить CUPS после изменений. Также убедитесь, что на вашем роутере не блокируется порт 631 (по умолчанию CUPS использует его для связи).
⚠️ Внимание: Если вы настраиваете принтер в офисе с Active Directory, может потребоваться интеграция с Samba для корректной работы аутентификации. В этом случае установите пакетsambaи настройте общий доступ черезsmb.conf.
5. Подключение к расшаренному принтеру с других устройств
Теперь, когда принтер расшарен, его можно подключить с других компьютеров — как с Ubuntu/Linux, так и с Windows или macOS. Рассмотрим каждый случай отдельно.
С Linux (Ubuntu/Debian):
- Откройте
Настройки → Устройства → Принтеры. - Нажмите
Добавить принтери выберитеСетевой принтер. - Введите адрес в формате
ipp://192.168.1.100:631/printers/PrinterName(замените IP и имя принтера). - Выберите драйвер (желательно тот же, что и на основном компьютере).
С Windows:
- Откройте
Панель управления → Устройства и принтеры → Добавление принтера. - Выберите
Добавить сетевой, беспроводной или Bluetooth-принтер. - Если принтер не найдётся автоматически, нажмите
Нужный принтер отсутствует в спискеи введите адрес в форматеhttp://192.168.1.100:631/printers/PrinterName. - Установите драйвер (Windows может предложить его скачать автоматически).
С macOS:
- Откройте
Системные настройки → Принтеры и сканеры. - Нажмите
+и выберите вкладкуIP. - Введите адрес принтера (например,
192.168.1.100) и выберите протоколInternet Printing Protocol (IPP). - Укажите очередь печати (обычно
/printers/PrinterName) и драйвер.
| Операционная система | Протокол подключения | Формат адреса | Требуемый драйвер |
|---|---|---|---|
| Ubuntu/Linux | IPP | ipp://192.168.1.100:631/printers/Name |
Тот же, что на хост-компьютере |
| Windows 10/11 | HTTP/IPP | http://192.168.1.100:631/printers/Name |
Официальный от производителя |
| macOS | IPP | 192.168.1.100 (с указанием очереди) |
AirPrint или официальный |
| Android (через приложения) | IPP/Google Cloud Print | Зависит от приложения | Mopria Print Service |
6. Решение типичных проблем
Даже при правильной настройке могут возникать ошибки. Рассмотрим самые распространённые и способы их устранения.
Принтер не виден в сети:
- 🔹 Проверьте, что порт
631не заблокирован фаерволом (sudo ufw allow 631). - 🔹 Убедитесь, что в
cupsd.confразрешён доступ для вашей подсети. - 🔹 Перезапустите службу CUPS и роутер.
Ошибка "Filter failed" при печати:
- 🔹 Обновите драйвер принтера (
sudo apt upgrade hplipдля HP). - 🔹 Проверьте, что выбран правильный
PPD-файл(описание принтера) в настройках CUPS. - 🔹 Попробуйте печать тестовой страницы через веб-интерфейс CUPS.
Печать идёт, но документ выходит пустым или искажённым:
- 🔹 Установите правильный формат бумаги в настройках принтера (A4, Letter и т. д.).
- 🔹 Проверьте, что в драйвере выбрано корректное разрешение (например,
600x600 dpiдля лазерных принтеров). - 🔹 Попробуйте печать из другого приложения (например,
LibreOfficeвместо браузера).
⚠️ Внимание: Если вы используете принтер Canon с проприетарными драйверами, после обновления ядра Linux может потребоваться переустановка драйверов. Проверяйте их совместимость на сайте производителя.
Критическая особенность для принтеров HP: если устройство подключено по USB, но не определяется в CUPS, попробуйте отключить модуль usb_lp командой sudo rmmod usb_lp. Этот модуль иногда конфликтует с современными моделями.
7. Альтернативные способы расшаривания принтера
Если стандартная настройка через CUPS не подходит (например, из-за ограничений сети), рассмотрите альтернативные варианты:
Через Samba (для Windows-клиентов):
Установите samba и отредактируйте файл /etc/samba/smb.conf, добавив раздел:
[printers]
comment = All Printers
browseable = yes
path = /var/spool/samba
printable = yes
guest ok = yes
read only = yes
create mask = 0700
После этого перезапустите Samba:
sudo systemctl restart smbd
Через Google Cloud Print (для удалённого доступа):
Хотя сервис Google Cloud Print официально закрыт, его аналог можно настроить через cups-cloud-print:
sudo apt install cups-cloud-print
sudo systemctl restart cups
Затем зарегистрируйте принтер в вашем аккаунте Google через веб-интерфейс CUPS.
Через прямой IP (для сетевых принтеров):
Если принтер поддерживает прямую печать по протоколу LPD или JetDirect, его можно подключить напрямую по IP без расшаривания через Ubuntu. Для этого при добавлении принтера укажите URI в формате:
lpd://192.168.1.100/P1
socket://192.168.1.100:9100
Для максимальной совместимости используйте протокол IPP (Internet Printing Protocol). Он поддерживается всеми современными ОС и обеспечивает стабильную работу даже в гетерогенных сетях (Linux + Windows + macOS).
8. Оптимизация печати для офиса
Если принтер используется в офисе с большим количеством пользователей, настройте следующие параметры для повышения эффективности:
Очередь печати:
- 🔹 Ограничьте размер очереди, чтобы избежать перегрузки: в
cupsd.confдобавьтеMaxJobs 50. - 🔹 Настройте приоритеты печати для разных пользователей или отделов.
Экономия расходников:
- 🔹 Включите режим "черновик" (
Draft Mode) по умолчанию для всех задач. - 🔹 Настройте двустороннюю печать (
Duplex) для многостраничных документов.
Мониторинг:
- 🔹 Используйте утилиту
lpstat -tдля просмотра состояния очереди. - 🔹 Настройте уведомления о завершении печати через
cupsemail.
Для автоматизации управления принтерами в крупных сетях рассмотрите установку PyKota — системы учёта печати с квотами для пользователей.
⚠️ Внимание: При настройке офисных принтеров учитывайте лицензионные ограничения на использование драйверов. Некоторые производители (например, Xerox) требуют покупки коммерческих лицензий для серверных версий Linux.
FAQ: Частые вопросы по расшариванию принтера в Ubuntu
Мой принтер подключён по USB, но не определяется в CUPS. Что делать?
Проверьте следующее:
- Подключен ли принтер к USB-порту напрямую (без хабов).
- Видит ли систему принтер: выполните
lsusbи найдите устройство в списке. - Установлены ли драйверы: для HP это
hplip, для Brother —brlaserилиbrgenml1. - Не блокирует ли принтер модуль
usb_lp(отключите его командойsudo rmmod usb_lp).
Если принтер по-прежнему не определяется, попробуйте подключить его к другому компьютеру, чтобы исключить аппаратную неисправность.
Как расшарить принтер для пользователей из другой подсети?
По умолчанию CUPS разрешает доступ только из локальной сети. Чтобы открыть доступ для другой подсети (например, 192.168.2.0/24), отредактируйте /etc/cups/cupsd.conf, добавив строку:
Allow from 192.168.2.0/24
Также убедитесь, что на роутере открыт порт 631 для входящих подключений из этой подсети. Для безопасности рекомендуется настроить аутентификацию по логину/паролю.
Можно ли расшарить принтер, подключённый к Ubuntu, для печати с Android?
Да, для этого есть несколько способов:
- 🔹 Установите на Android приложение Mopria Print Service (поддерживает IPP).
- 🔹 Используйте Google Cloud Print (если настроен через
cups-cloud-print). - 🔹 Подключитесь к принтеру как к сетевому устройству, указав его IP и порт
631.
Для принтеров HP также подойдёт официальное приложение HP Print Service Plugin.
Почему при печати с Windows документ выходит с иероглифами?
Эта проблема обычно связана с несовместимостью кодировок или драйверов. Решения:
- Установите на Windows тот же драйвер, что используется в Ubuntu (скачайте его с сайта производителя).
- В настройках принтера на Windows выберите формат данных
RAWвместоEMFилиPCL. - Попробуйте печать из другого приложения (например, Notepad++ вместо Word).
- На стороне Ubuntu проверьте, что в
PPD-файлепринтера указан корректный язык по умолчанию (например,en.UTF-8).
Как ограничить доступ к принтеру по времени (например, только в рабочие часы)?
CUPS не поддерживает временные ограничения "из коробки", но это можно реализовать через cron и скрипты:
- Создайте скрипт, который будет останавливать службу CUPS ночью:
sudo systemctl stop cups - Добавьте задачу в
cronдля запуска этого скрипта в 20:00 и перезапуска CUPS в 8:00:0 20 * /path/to/stop_cups.sh0 8 * systemctl start cups
Для более гибкого управления используйте PyKota или настройте доступ через фаервол (ufw), блокируя порт 631 в нерабочее время.