Общий доступ к принтеру через Ubuntu — задача, которая кажется сложной только на первый взгляд. На самом деле, современные версии этой ОС предоставляют все необходимые инструменты для расшаривания устройства как по локальной сети, так и для удалённых подключений. Главное — правильно настроить CUPS (Common Unix Printing System), выбрать корректные драйверы и учесть особенности вашей модели принтера.

Многие пользователи сталкиваются с проблемами при попытке сделать принтер сетевым: то драйвер не подходит, то права доступа неверные, то устройство просто не видно в сети. В этой статье мы разберём все этапы — от базовой настройки до решения типичных ошибок. Особое внимание уделим Canon, HP и Brother, так как их принтеры наиболее распространены в офисах и дома. А если вы используете Ubuntu Server без графического интерфейса — для вас тоже найдётся решение.

Прежде чем приступать, убедитесь, что ваш принтер физически подключён к компьютеру с Ubuntu (по USB или через сеть) и включён. Если устройство новое, проверьте наличие оригинальных картриджей — некоторые модели блокируют печать при отсутствии фирменных расходников.

📊 Какой принтер вы пытаетесь расшарить?
Canon
HP
Brother
Epson
Xerox
Другой бренд

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, а для Epsonepson-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. Права доступа к устройству (команда lsusb должна показывать принтер в списке).

4. Наличие блокирующих правил в 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):

  1. Откройте Настройки → Устройства → Принтеры.
  2. Нажмите Добавить принтер и выберите Сетевой принтер.
  3. Введите адрес в формате ipp://192.168.1.100:631/printers/PrinterName (замените IP и имя принтера).
  4. Выберите драйвер (желательно тот же, что и на основном компьютере).

С Windows:

  1. Откройте Панель управления → Устройства и принтеры → Добавление принтера.
  2. Выберите Добавить сетевой, беспроводной или Bluetooth-принтер.
  3. Если принтер не найдётся автоматически, нажмите Нужный принтер отсутствует в списке и введите адрес в формате http://192.168.1.100:631/printers/PrinterName.
  4. Установите драйвер (Windows может предложить его скачать автоматически).

С macOS:

  1. Откройте Системные настройки → Принтеры и сканеры.
  2. Нажмите + и выберите вкладку IP.
  3. Введите адрес принтера (например, 192.168.1.100) и выберите протокол Internet Printing Protocol (IPP).
  4. Укажите очередь печати (обычно /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. Что делать?

Проверьте следующее:

  1. Подключен ли принтер к USB-порту напрямую (без хабов).
  2. Видит ли систему принтер: выполните lsusb и найдите устройство в списке.
  3. Установлены ли драйверы: для HP это hplip, для Brotherbrlaser или brgenml1.
  4. Не блокирует ли принтер модуль 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 документ выходит с иероглифами?

Эта проблема обычно связана с несовместимостью кодировок или драйверов. Решения:

  1. Установите на Windows тот же драйвер, что используется в Ubuntu (скачайте его с сайта производителя).
  2. В настройках принтера на Windows выберите формат данных RAW вместо EMF или PCL.
  3. Попробуйте печать из другого приложения (например, Notepad++ вместо Word).
  4. На стороне Ubuntu проверьте, что в PPD-файле принтера указан корректный язык по умолчанию (например, en.UTF-8).
Как ограничить доступ к принтеру по времени (например, только в рабочие часы)?

CUPS не поддерживает временные ограничения "из коробки", но это можно реализовать через cron и скрипты:

  1. Создайте скрипт, который будет останавливать службу CUPS ночью:
    sudo systemctl stop cups
  2. Добавьте задачу в cron для запуска этого скрипта в 20:00 и перезапуска CUPS в 8:00:
    0 20   * /path/to/stop_cups.sh
    

    0 8 * systemctl start cups

Для более гибкого управления используйте PyKota или настройте доступ через фаервол (ufw), блокируя порт 631 в нерабочее время.