Подключение принтера к операционной системе на базе Linux может показаться сложной задачей — особенно если вы привыкли к автоматическим мастерам настройки в Windows или macOS. На самом деле процесс не требует глубоких технических знаний, но имеет свои нюансы: от выбора правильного драйвера до настройки системы печати CUPS. В этой статье мы разберём все способы подключения (USB, Wi-Fi, сетевой принтер), рассмотрим типичные ошибки и дадим конкретные рекомендации для популярных дистрибутивов — Ubuntu, Fedora, Debian и Arch Linux.

Многие пользователи сталкиваются с проблемой, когда Linux "не видит" принтер даже после физического подключения. Причина чаще всего кроется в отсутствии проприетарных драйверов (особенно для моделей HP, Canon или Epson с закрытыми протоколами). Мы покажем, как установить необходимые пакеты, настроить печать через SMB для сетевых устройств и даже подключить старые принтеры через lpd-протокол. А если что-то пойдёт не так — в конце статьи вы найдёте FAQ с решениями самых распространённых ошибок.

⚠️ Внимание: Производители принтеров регулярно обновляют прошивки и драйверы. Если ваша модель выпущена позже 2023 года, проверьте совместимость с Linux на сайте производителя — некоторые новые устройства (например, Canon PIXMA G-series или HP Smart Tank) могут требовать ручной установки фирменного ПО.

1. Подготовка системы: проверка совместимости и установка CUPS

Прежде чем подключать принтер, убедитесь, что в вашей системе установлена и запущена служба CUPS (Common Unix Printing System). Это стандартный менеджер печати для Linux, который управляет всеми подключёнными устройствами. В большинстве дистрибутивов он установлен по умолчанию, но иногда требует дополнительной настройки.

Чтобы проверить статус службы, выполните в терминале:

systemctl status cups

Если служба не активна, запустите её:

sudo systemctl start cups

sudo systemctl enable cups # для автозапуска при старте системы

Для управления принтерами через веб-интерфейс CUPS откройте в браузере:

http://localhost:631

⚠️ Внимание: В некоторых дистрибутивах (например, Ubuntu 22.04+) доступ к веб-интерфейсу CUPS по умолчанию запрещён. Чтобы разблокировать его, отредактируйте файл /etc/cups/cupsd.conf, найдите строку Listen localhost:631 и добавьте под ней Port 631. После этого перезапустите службу: sudo systemctl restart cups.

Также рекомендуется установить пакеты с драйверами для популярных брендов:

  • 🖨️ Для HP: sudo apt install hplip (Debian/Ubuntu) или sudo dnf install hplip (Fedora)
  • 🖨️ Для Epson: sudo apt install printer-driver-escpr или sudo dnf install epson-inkjet-printer-escpr
  • 🖨️ Для Canon: sudo apt install printer-driver-gutenprint (универсальный драйвер)
  • 🖨️ Для Brother: скачайте драйвер с официального сайта (выбирайте версию для Linux)
📊 Какой принтер вы используете?
HP
Canon
Epson
Brother
Другой бренд
Не знаю

2. Подключение принтера по USB: пошаговая инструкция

Самый простой способ подключения — через USB-кабель. В большинстве случаев Linux автоматически определяет устройство и устанавливает базовый драйвер. Однако для полноценной работы может потребоваться дополнительная настройка.

Шаг 1. Подключите принтер к компьютеру с помощью USB-кабеля и включите его. Убедитесь, что кабель исправен — некоторые дешёвые кабели передают только питание, но не данные.

Шаг 2. Проверьте, обнаружила ли система принтер. Выполните команду:

lsusb

В выводе найдите строку с названием вашего принтера (например, Bus 001 Device 003: ID 03f0:1205 HP, Inc DeskJet 2130 series). Если устройство не отображается, попробуйте другой USB-порт или кабель.

Шаг 3. Откройте веб-интерфейс CUPS (http://localhost:631) и перейдите в раздел Administration → Add Printer. Система должна показать обнаруженный принтер. Выберите его и следуйте инструкциям мастера.

☑️ Подготовка к подключению по USB

Выполнено: 0 / 4

Если принтер не определяется автоматически:

  1. Убедитесь, что установлен пакет foomatic-db (база данных драйверов): sudo apt install foomatic-db.
  2. Попробуйте вручную указать модель принтера в CUPS, выбрав производителя и ближайшую совместимую модель.
  3. Для старых принтеров (до 2010 года) может потребоваться эмуляция через foo2zjs или gutenprint.
💡

Если принтер определяется, но не печатает, попробуйте перезагрузить службу CUPS: sudo systemctl restart cups. Иногда это решает проблемы с буфером печати.

3. Подключение по Wi-Fi: настройка беспроводного принтера

Беспроводное подключение удобно, но требует больше шагов для настройки. Большинство современных принтеров (например, HP OfficeJet Pro 9015e или Epson EcoTank ET-2800) поддерживают прямую печать по Wi-Fi, но для этого принтер и компьютер должны находиться в одной сети.

Способ 1: Подключение через веб-интерфейс принтера

  1. Найдите IP-адрес принтера. Обычно его можно узнать, распечатав тестовую страницу с настройками сети (опция Network Configuration или Wireless Setup в меню принтера).
  2. Откройте веб-интерфейс принтера, введя его IP-адрес в браузере (например, http://192.168.1.100).
  3. Убедитесь, что принтер подключён к вашей Wi-Fi сети. При необходимости настройте подключение вручную, указав SSID и пароль.

Способ 2: Добавление принтера через CUPS

  1. Откройте http://localhost:631 и перейдите в Administration → Add Printer.
  2. В списке обнаруженных принтеров выберите Network Printer (может называться LPD/LPR Host or Printer или Internet Printing Protocol (ipp)).
  3. Введите IP-адрес принтера в формате:
    • 🌐 Для IPP: ipp://192.168.1.100/ipp/print
    • 🌐 Для LPD: lpd://192.168.1.100/PASSTHRU
    • 🌐 Для Socket/JetDirect: socket://192.168.1.100:9100
  • Выберите модель принтера из списка или загрузите PPD-файл с драйвером (можно скачать с сайта производителя).
  • ⚠️ Внимание: Некоторые принтеры (например, Canon MG3600) требуют установки фирменного ПО для работы по Wi-Fi. В таком случае скачайте драйвер с официального сайта и следуйте инструкции производителя. Также проверьте, что в роутере отключён режим изоляции клиентов (AP Isolation) — он может блокировать связь между принтером и компьютером.

    Протокол Порт Когда использовать Пример URI
    IPP 631 Современные принтеры (рекомендуется) ipp://192.168.1.100/ipp/print
    LPD/LPR 515 Старые сетевые принтеры lpd://192.168.1.100/PASSTHRU
    Socket/JetDirect 9100 Принтеры HP с JetDirect socket://192.168.1.100:9100
    SMB 445 Принтеры, подключённые к Windows-PC smb://192.168.1.50/PrinterName

    4. Подключение сетевого принтера (SMB, IPP, LPD)

    Если принтер подключён к другому компьютеру в сети (например, к Windows-PC) или является сетевым устройством с собственным IP, его можно добавить в Linux через соответствующий протокол. Рассмотрим наиболее распространённые сценарии.

    Подключение к принтеру на Windows-PC (через SMB)

    Если принтер расшарен на компьютере с Windows, выполните следующие шаги:

    1. Убедитесь, что на Windows включено совместное использование принтера. Для этого перейдите в Панель управления → Устройства и принтеры, кликните правой кнопкой на принтере и выберите Свойства принтера → Доступ. Отметьте Общий доступ к данному принтеру.
    2. Установите пакет smbclient (для работы с SMB): sudo apt install smbclient.
    3. В CUPS выберите Add Printer → Windows Printer via SAMBA.
    4. Введите адрес в формате: smb://IP_АДРЕС_КОМПЬЮТЕРА/ИМЯ_ПРИНТЕРА (например, smb://192.168.1.50/HP_LaserJet).
    5. Укажите имя пользователя и пароль от Windows-ПК (если требуется аутентификация).

    Подключение к сетевому принтеру по IPP

    Многие офисные принтеры (например, Xerox WorkCentre или Ricoh MP C3004) поддерживают протокол IPP (Internet Printing Protocol). Чтобы подключиться:

    1. Узнайте IP-адрес принтера (обычно указан на наклейке или в меню сети).
    2. В CUPS выберите Add Printer → Internet Printing Protocol (ipp).
    3. Введите URI в формате: ipp://IP_АДРЕС/ipp/print (например, ipp://192.168.1.200/ipp/print).
    4. Выберите модель принтера из списка или загрузите PPD-файл.

    ⚠️ Внимание: Если принтер требует аутентификацию, в URI укажите имя пользователя и пароль: ipp://user:password@192.168.1.200/ipp/print. Избегайте использования простых паролей — передача данных по IPP без шифрования может быть небезопасной в публичных сетях.

    Как узнать IP-адрес принтера без распечатки?

    Если принтер не печатает тестовую страницу, попробуйте найти его в списке устройств вашего роутера. Для этого откройте веб-интерфейс роутера (обычно 192.168.1.1 или 192.168.0.1) и найдите раздел DHCP Clients List или Connected Devices. Принтер может отображаться под своим сетевым именем (например, HPOfficeJetPro9015).

    5. Установка драйверов для нестандартных принтеров

    Не все принтеры поддерживаются "из коробки" в Linux. Особенно это касается многофункциональных устройств (МФУ) с функцией сканирования или новых моделей с закрытыми протоколами. В таких случаях приходится устанавливать проприетарные драйверы или использовать универсальные решения.

    Драйверы для принтеров HP

    Компания HP предоставляет официальный пакет hplip, который поддерживает большинство их устройств. Чтобы установить его:

    sudo apt install hplip hplip-gui  # для Debian/Ubuntu
    

    sudo dnf install hplip hplip-gui # для Fedora

    sudo pacman -S hplip # для Arch Linux

    После установки запустите утилиту настройки:

    hp-setup

    Она предложит выбрать модель принтера и настроить подключение (USB или сеть).

    Драйверы для принтеров Epson

    Для принтеров Epson (например, EcoTank или WorkForce) скачайте драйвер с официального сайта. Обычно это архив с инсталлятором. Распакуйте его и следуйте инструкции:

    tar -xvf epson-inkjet-printer-escpr2-1.1.22-x86_64.tar.gz
    

    cd epson-inkjet-printer-escpr2-1.1.22-x86_64

    sudo ./install.sh

    Универсальные драйверы (Gutenprint, Foo2zjs)

    Если для вашей модели нет официального драйвера, попробуйте:

    • 🖨️ gutenprint — поддерживает множество струйных и лазерных принтеров:
      sudo apt install printer-driver-gutenprint
    • 🖨️ foo2zjs — для принтеров с чипами ZjStream (многие модели HP LaserJet):
      sudo apt install printer-driver-foo2zjs
    • 🖨️ foo2lava — для принтеров Fujitsu и некоторых Xerox.

    Важно: Для принтеров Canon PIXMA MG-series (например, MG3600, MG2500) часто требуется установка драйверов через cnijfilter2. Скачайте их с сайта Canon и установите вручную — автоматические репозитории Linux их не содержат.

    6. Решение распространённых проблем

    Даже после правильной настройки принтер может не работать. Рассмотрим типичные ошибки и способы их устранения.

    Проблема 1: Принтер не определяется по USB

    • 🔌 Проверьте кабель и порт — попробуйте другой USB-порт (желательно USB 2.0, так как некоторые принтеры не совместимы с USB 3.0).
    • 🔌 Выполните команду dmesg | tail после подключения принтера. Если увидите ошибки вида usb 1-1: device descriptor read/64, error -110, это указывает на проблемы с питанием — попробуйте подключить принтер через хаб с внешним питанием.
    • 🔌 Убедитесь, что модуль ядра usb-lp загружен: lsmod | grep lp. Если нет — загрузите его вручную: sudo modprobe usb-lp.

    Проблема 2: Печать идёт, но документ неполный или искажённый

    • 📄 Попробуйте распечатать тестовую страницу через CUPS (http://localhost:631/printers → выберите принтер → Maintenance → Print Test Page).
    • 📄 Если проблема только с определёнными документами (например, PDF), попробуйте сохранить файл в другой формат (например, в .ps через pdftops).
    • 📄 Проверьте настройки качества печати в драйвере принтера (иногда помогает смена режима с Draft на Normal).

    Проблема 3: Принтер подключён по Wi-Fi, но периодически пропадает

    • 📶 Убедитесь, что принтер и компьютер находятся в одной подсети. Проверьте это командой ip a (на Linux) и сравните с IP принтера.
    • 📶 Отключите на роутере функцию Band Steering (если есть) — она может принудительно переключать устройства между частотами 2.4 GHz и 5 GHz, что приводит к разрыву соединения.
    • 📶 Настройте статический IP-адрес для принтера в роутере (через привязку по MAC-адресу).

    Проблема 4: CUPS выдаёт ошибку "Filter failed"

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

    • 🔧 Переустановите драйвер принтера.
    • 🔧 Проверьте права на файлы фильтров: sudo chmod -R 755 /usr/lib/cups/filter.
    • 🔧 Удалите проблемное задание печати: sudo cancel -a (очищает всю очередь).
    💡

    Если принтер работает, но сканер не определяется, установите дополнительные пакеты: sudo apt install sane sane-utils libsane-extras. Для МФУ HP также может потребоваться xsane или simple-scan.

    7. Альтернативные способы печати: Google Cloud Print и IPPS

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

    Google Cloud Print (устаревший, но ещё работает)

    Хотя Google официально закрыл сервис Cloud Print в 2020 году, некоторые принтеры (особенно HP и Canon) до сих пор поддерживают его через фирменные приложения. Чтобы настроить:

    1. Установите google-cloud-print-connector (если доступен для вашего дистрибутива).
    2. Зарегистрируйте принтер в Google Cloud Print через веб-интерфейс.
    3. В Linux добавьте принтер как сетевой с URI: https://www.google.com/cloudprint/printer_id.

    ⚠️ Внимание: Этот метод не рекомендуется для конфиденциальных документов, так как данные проходят через серверы Google.

    IPP через интернет (IPPS)

    Современные принтеры поддерживают IPPS (IPP over TLS) — защищённый протокол печати через интернет. Чтобы подключиться:

    1. Узнайте адрес IPPS вашего принтера (обычно указан в документации или на наклейке).
    2. В CUPS добавьте принтер с URI: ipps://принтер.example.com:443/ipp/print.
    3. При необходимости укажите логин и пароль для аутентификации.

    Печать через AirPrint (для Apple-устройств)

    Если ваш принтер поддерживает AirPrint (многие модели HP, Canon, Epson), его можно подключить к Linux через avahi-daemon:

    sudo apt install avahi-daemon  # для обнаружения устройств в локальной сети
    

    sudo systemctl restart avahi-daemon

    После этого принтер должен появиться в списке доступных устройств в CUPS.

    8. Автоматизация и утилиты для управления печатью

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

    Графические утилиты

    • 🖥️ system-config-printer — стандартный графический интерфейс для настройки принтеров в Fedora, RHEL и Debian:
      sudo apt install system-config-printer  # для Debian/Ubuntu
      

      sudo dnf install system-config-printer # для Fedora

    • 🖥️ hp-toolbox — утилита для принтеров HP, позволяет проверять уровень чернил, чистить картриджи и обновлять прошивку.
    • 🖥️ gsimplecal — лёгкий менеджер заданий печати для GNOME.

    Консольные утилиты

    • 💻 lpstat — показывает статус принтеров и очередь печати:
      lpstat -a  # список всех принтеров
      

      lpstat -o # текущие задания печати

    • 💻 cancel — отменяет задания печати:
      cancel job_id  # отменить конкретное задание
      

      cancel -a # отменить все задания

    • 💻 cupsenable и cupsdisable — включает/отключает принтер:
      sudo cupsenable PrinterName
      

      sudo cupsdisable PrinterName

    Мониторинг уровня чернил

    Для проверки уровня чернил в картриджах установите пакет ink:

    sudo apt install ink

    Затем выполните:

    ink -p PrinterName

    Для принтеров HP также работает команда:

    hp-levels PrinterName

    ⚠️ Внимание: Не все принтеры поддерживают чтение уровня чернил через Linux. Если команда возвращает ошибку, проверьте совместимость вашей модели на сайте производителя.

    💡

    Для удалённого управления принтерами в сети используйте ssh + lp. Например, чтобы распечатать файл на удалённом принтере: ssh user@remote-pc "lp -d PrinterName file.pdf".

    FAQ: Частые вопросы по подключению принтера к Linux

    🔹 Почему Linux не видит мой новый принтер Canon PIXMA MG3600?

    Эта модель требует установки проприетарного драйвера cnijfilter2. Скачайте его с официального сайта Canon (раздел "Драйверы для Linux") и установите вручную. После установки перезапустите CUPS: sudo systemctl restart cups.

    🔹 Как подключить принтер, который расшарен с Windows 10?

    Используйте протокол SMB. В CUPS выберите Add Printer → Windows Printer via SAMBA и введите адрес в формате smb://IP_АДРЕС_КОМПЬЮТЕРА/ИМЯ_ПРИНТЕРА. Убедитесь, что на Windows включён общий доступ к принтеру и отключён брандмауэр для локальной сети.

    🔹 Можно ли подключить старый принтер HP LaserJet 1020 к современному Linux?

    Да, но потребуется драйвер foo2zjs. Установите его:

    sudo apt install printer-driver-foo2zjs

    Затем подключите принтер по USB и выберите модель HP LaserJet 1020 foo2zjs в CUPS. Для работы сканера (если есть) также установите xsane.

    🔹 Почему после обновления системы принтер перестал работать?

    Вероятно, обновление заменило драйвер или конфигурацию CUPS. Попробуйте:

    1. Перезапустить службу: sudo systemctl restart cups.
    2. Переустановить драйвер принтера.
    3. Проверить логи на ошибки: journalctl -u cups --no-pager | grep -i error.

    Если проблема сохраняется, проверьте, не изменились ли настройки брандмауэра (ufw или firewalld) — они могут блокировать доступ к порту 631.

    🔹 Как распечатать документ из терминала?

    Используйте команду lp или lpr:

    lp -d PrinterName document.pdf  # печать файла на указанный принтер
    

    lpr -P PrinterName document.txt # альтернативный синтаксис

    Чтобы увидеть список доступных принтеров, выполните: lpstat -a.