Подключить принтер, физически подсоединённый к компьютеру с Windows, к устройству на Linux кажется сложной задачей только на первый взгляд. На практике это стандартная процедура, которая решается с помощью встроенных инструментов обеих операционных систем. Главная проблема — отсутствие прямого доступа к USB-порту принтера, но её легко обойти, используя сетевые протоколы или специализированное ПО.
В этой статье мы разберём три проверенных метода: через общий доступ Samba (идеально для домашних сетей), напрямую по IP-адресу (если принтер сетевой) и через CUPS (универсальный менеджер печати в Linux). Каждый способ подходит для разных сценариев: от офисных МФУ до старых струйных принтеров. Вам не потребуются дополнительные программы — только стандартные настройки и 10–15 минут времени.
⚠️ Важно: Если ваш принтер подключён к Windows через USB, а не по сети, обязательно включите общий доступ к нему в настройках Windows. Без этого Linux просто «не увидит» устройство, даже если оно физически доступно в локальной сети.
1. Подготовка Windows: настройка общего доступа к принтеру
Прежде чем настраивать Linux, нужно правильно подготовить компьютер с Windows. Открытие общего доступа к принтеру занимает не больше 2–3 минут, но здесь есть нюансы, которые часто упускают.
Сначала убедитесь, что принтер корректно установлен на Windows и работает без ошибок. Для этого:
- 🖨️ Распечатайте тестовую страницу через
Панель управления → Устройства и принтеры → Правая кнопка на принтере → Свойства принтера → Печать тестовой страницы. - 🔌 Проверьте, что принтер подключён к Windows через USB или Ethernet (не по Wi-Fi, если речь о прямом подключении).
- 🔄 Перезагрузите принтер и компьютер — это устранит возможные конфликты драйверов.
Теперь откройте общий доступ:
- Перейдите в
Панель управления → Сеть и Интернет → Центр управления сетями и общим доступом → Изменить дополнительные параметры общего доступа. - Включите сетевое обнаружение и общий доступ к файлам и принтерам для вашей сети (обычно это профиль «Частная»).
- Вернитесь в
Устройства и принтеры, кликните правой кнопкой на принтере и выберитеСвойства принтера → Доступ → Общий доступ к данному принтеру. Укажите имя (например,HP_LaserJet_Pro) и примените настройки.
⚠️ Внимание: Если у вас Windows 10/11 Home, функция общего доступа к принтерам может быть отключена по умолчанию. В этом случае потребуется включить службуPrint SpoolerиServerчерезservices.mscили использовать альтернативные методы (например, подключение по IP).
2. Способ 1: Подключение через Samba (для USB-принтеров)
Samba — это протокол, который позволяет Linux-машинам взаимодействовать с ресурсами Windows, включая принтеры. Этот метод оптимален, если принтер подключён к Windows по USB, а обе машины находятся в одной локальной сети.
Для начала установите необходимые пакеты. В большинстве дистрибутивов Linux (Ubuntu, Debian, Mint) это делается одной командой:
sudo apt update && sudo apt install cups samba smbclient
Далее добавьте принтер через CUPS (Common Unix Printing System):
- Откройте браузер и перейдите по адресу
http://localhost:631(веб-интерфейс CUPS). - Выберите
Administration → Add Printer. - В списке устройств найдите
Windows Printer via SAMBAи укажите путь в формате:smb://[IP_адрес_Windows]/[имя_принтера]
Пример:smb://192.168.1.100/HP_LaserJet_Pro. - Введите логин и пароль от учётной записи Windows (если требуется аутентификация).
- Выберите драйвер принтера из списка (или загрузите PPF-файл с сайта производителя).
Если принтер не отображается, проверьте:
- 🔌 Правильность IP-адреса Windows (узнать можно через
ipconfigв командной строке). - 🔒 Настройки брандмауэра Windows (должен разрешать входящие подключения по портам
139и445). - 📡 Работоспособность сети (ping с Linux до Windows должен проходить без потерь).
Установлены пакеты CUPS и Samba|Принтер включён в общий доступ на Windows|IP-адрес Windows известен и пингуется|Брандмауэр Windows разрешает SMB-трафик-->
3. Способ 2: Подключение по IP-адресу (для сетевых принтеров)
Если принтер подключён к сети напрямую (через Ethernet или Wi-Fi), его можно добавить в Linux по IP-адресу, минуя Windows. Этот метод универсален и работает даже если компьютер с Windows выключен.
Сначала найдите IP-адрес принтера:
- На самом принтере (обычно распечатывается через меню
Network ConfigurationилиWireless Settings). - В настройках роутера (раздел
DHCP ClientsилиConnected Devices). - Через Windows:
Панель управления → Устройства и принтеры → Свойства принтера → Порты.
Теперь добавьте принтер в Linux:
- Откройте
Настройки → Принтеры(илиhttp://localhost:631в браузере). - Нажмите
Добавить принтери выберитеСетевой принтер. - Введите IP-адрес в формате:
socket://[IP_принтера]илиlpd://[IP_принтера]
Пример:socket://192.168.1.150. - Выберите модель принтера из базы данных или загрузите драйвер вручную (файлы
.ppdможно скачать с сайта производителя).
⚠️ Внимание: Некоторые принтеры (особенно Canon и Epson) требуют установки фирменных драйверов даже в Linux. Если стандартные драйверы CUPS не работают, скачайте официальные пакеты с сайта vendors или используйте репозитории вроде hplip для HP.
Критическая деталь: Если принтер имеет динамический IP (DHCP), закрепите его в настройках роутера, иначе после перезагрузки адрес может измениться, и подключение разорвётся.
Если принтер не печатает после подключения, попробуйте перезапустить службу CUPS командой sudo systemctl restart cups. Это сбросит очередь печати и применит изменения.
4. Способ 3: Использование CUPS для сложных конфигураций
CUPS (Common Unix Printing System) — это стандартная система печати в Linux, которая поддерживает практически все модели принтеров. Она позволяет гибко настраивать подключения, включая те, что проходят через Windows.
Если первые два метода не сработали, попробуйте ручную настройку через CUPS:
- Откройте терминал и проверьте статус службы:
sudo systemctl status cupsЕсли служба не активна, запустите её:
sudo systemctl start cups - Откройте веб-интерфейс CUPS по адресу
http://localhost:631(логин/пароль — ваши данные от системы). - Перейдите в
Administration → Add Printer. - Выберите один из вариантов:
- 🖥️
Windows Printer via SAMBA— для USB-принтеров, подключённых к Windows. - 🌐
Internet Printing Protocol (ipp)— для сетевых принтеров с поддержкой IPP. - 🔌
AppSocket/HP JetDirect— для принтеров с прямым IP-подключением.
- 🖥️
| Тип подключения | Формат URI | Пример |
|---|---|---|
| Samba (USB на Windows) | smb://[IP_Windows]/[имя_принтера] |
smb://192.168.1.100/OfficePrinter |
| IPP (сетевой принтер) | ipp://[IP_принтера]/ipp |
ipp://192.168.1.150/ipp/print |
| AppSocket (прямое IP) | socket://[IP_принтера]:9100 |
socket://192.168.1.150:9100 |
| LPD (устаревший протокол) | lpd://[IP_принтера]/queue |
lpd://192.168.1.150/P1 |
После добавления принтера проверьте очередь печати:
lpstat -t
Если принтер отображается как idle, но не печатает, попробуйте отправить тестовую страницу:
lp -d [имя_принтера] /etc/hosts
Что делать, если CUPS не видит принтер?
Проверьте, что служба CUPS запущена (sudo systemctl status cups). Если нет — запустите её (sudo systemctl start cups).
Убедитесь, что брандмауэр Linux не блокирует порты 631 (CUPS) и 139/445 (Samba).
Обновите список драйверов: sudo apt update && sudo apt install printer-driver-all (для Debian/Ubuntu).
5. Устранение распространённых ошибок
Даже при правильной настройке могут возникать проблемы. Вот самые частые из них и способы их решения:
- ❌ Ошибка "Unable to locate printer":
Проверьте правильность IP-адреса или имени принтера. Если используете Samba, убедитесь, что на Windows включёнNetBIOS over TCP/IP(в свойствах сетевого адаптера). - ❌ Ошибка аутентификации ("Permission denied"):
На Windows добавьте пользователя Linux в группу с правами на печать или отключите запрос пароля в настройках общего доступа. - ❌ Принтер добавлен, но не печатает:
Проверьте очередь печати (lpstat -o) и очистите её (cancel -a). Также убедитесь, что на принтере нет ошибок (например, закончилась бумага или тонер). - ❌ Нет драйвера для модели принтера:
Скачайте.ppd-файл с сайта производителя и укажите его вручную при добавлении принтера. Для HP используйте пакетhplip.
Если принтер Canon или Epson, возможно, потребуется установить проприетарные драйверы. Например, для Canon LBP:
sudo apt install cndrvcups-capt
Для Brother скачайте драйвер с официального сайта (раздел Linux Drivers) и установите его через терминал:
gunzip linux-brprinter-installer-*.gz
sudo bash linux-brprinter-installer-* [модель_принтера]
Большинство проблем с подключением связаны с неверными настройками сети или драйверов. Всегда начинайте диагностику с проверки ping до принтера/Windows и статуса службы CUPS.
6. Альтернативные решения для сложных случаев
Если стандартные методы не работают, рассмотрите альтернативные варианты:
- 🖥️ Виртуальная машина с Windows:
Установите VirtualBox или VMware, подключите USB-принтер к виртуальной машине и печайте из неё. Минус — требует дополнительных ресурсов ПК. - 🌍 Облачные сервисы печати:
Сервисы вроде Google Cloud Print (устарел, но есть аналоги) или PaperCut позволяют печатать через интернет. Подходит для удалённой работы. - 🔄 Прямое подключение принтера к Linux:
Если принтер поддерживает USB или Wi-Fi Direct, подключите его напрямую к Linux-машине. Это устранит зависимость от Windows. - 🛠️ Специализированное ПО:
Для корпоративных сетей используйте Samba AD или IPP Everywhere для централизованного управления принтерами.
Для офисных МФУ (например, Xerox или Ricoh) часто требуется настройка LDAP или Kerberos для аутентификации. В этом случае обратитесь к администратору сети или документации производителя.
⚠️ Внимание: Некоторые корпоративные политики безопасности блокируют прямой доступ к принтерам через Samba или IP. В таких случаях используйте официальные решения (например, Printix или PrinterLogic), одобренные IT-отделом.
7. Оптимизация печати: советы для повседневного использования
После успешного подключения принтера стоит настроить его для удобной работы:
- 📄 Драйвер по умолчанию:
В CUPS (http://localhost:631) выберитеPrinters → [ваш_принтер] → Administration → Set As Server Default. - 🔄 Двусторонняя печать:
Включите опциюDuplexв настройках принтера (если поддерживается). В Linux это делается черезНастройки → Принтеры → Свойства → Параметры устройства. - 🖼️ Качество печати:
Для экономии тонера установите режимDraft(черновик) для повседневных документов. - 📂 Очередь печати:
Используйте командуlpqдля просмотра очереди иlprm [номер_задания]для её очистки.
Если принтер используется несколькими пользователями, настройте разделение доступа:
sudo lpadmin -p [имя_принтера] -o auth-info-required=username,password
Для автоматизации печати регулярных отчётов (например, логов) используйте cron:
0 9 1-5 lp -d [имя_принтера] /путь/к/файлу.txt
Эта команда будет печатать файл каждый будний день в 9:00.
Чтобы ускорить печать PDF-файлов, конвертируйте их в PostScript перед отправкой на принтер: pdf2ps input.pdf output.ps, затем lp -d [принтер] output.ps.
FAQ: Частые вопросы по подключению принтера
Можно ли подключить принтер к Linux, если на Windows стоит пароль?
Да, но потребуется указать логин и пароль от учётной записи Windows при добавлении принтера через Samba. Если аутентификация не проходит, проверьте:
- Правильность введённых данных (регистр важен!).
- Настройки политики безопасности Windows (возможно, требуется отключить
Network Security: LAN Manager authentication levelвgpedit.msc). - Наличие пользователя в группе
Print Operatorsна Windows.
Почему принтер печатает пустые страницы или иероглифы?
Это типичная проблема несовместимости драйверов. Решения:
- Установите правильный
.ppd-файл для вашей модели. - Попробуйте другой протокол подключения (например, вместо Samba используйте IPP).
- Обновите прошивку принтера (инструкции на сайте производителя).
Для принтеров HP часто помогает переустановка пакета hplip:
sudo apt purge hplip && sudo apt install hplip
Как подключить принтер к Linux через Wi-Fi?
Если принтер поддерживает Wi-Fi Direct или подключён к той же сети, что и Linux:
- Найдите IP-адрес принтера (через роутер или меню принтера).
- Добавьте принтер в CUPS по протоколу
ipp://илиsocket://(см. таблицу в разделе 4). - Выберите драйвер из списка или загрузите его с сайта производителя.
Для принтеров Canon может потребоваться установка утилиты scangearmp2 для сканирования.
Можно ли печатать с Linux на принтер, подключённый к Windows через USB-хаб?
Да, но с оговорками:
- USB-хаб должен быть самостоятельно питаемым (с блоком питания), иначе принтер может отключаться.
- На Windows принтер должен быть включён в общий доступ (как описано в разделе 1).
- В Linux используйте подключение через
Samba(см. раздел 2).
Если принтер не определяется, попробуйте подключить его напрямую к USB-порту Windows (без хаба).
Как печатать с Linux на принтер, подключённый к Windows 7?
Процесс аналогичен описанному в статье, но есть нюансы:
- В Windows 7 может потребоваться вручную включить протокол
SMB1(небезопасно, но иногда необходимо для старых принтеров). - Обновите
Sambaна Linux до последней версии для совместимости:
sudo apt update && sudo apt upgrade samba
foo2zjs:sudo apt install printer-driver-foo2zjs