Подключение принтера линукс к windows

В офисной сети вы можете печатать напрямую с Linux устройств на общие сетевые принтеры, подключенные к Windows компьютерами. В этой статье мы покажем, как настроить печать из Linux на сетевой принтер, опубликованный на компьютере с Windows 10/11.

  1. Начнем с настройки Windows компьютера, к которому подключен принтер.Опубликуйте общий сетевой принтер в Windows. Откройте консоль управления принтерами (
    printmanagement.msc
    ), откройте свойства принтера, перейдите на вкладку Sharing, включите опцию Share this printer и задайте сетевое имя принтера (имя не должно содержать пробелы или спец символы);
  2. Создайте отдельного локального пользователя winusr1 с известным паролем. Можно удалить пользователя из локальной группы Users, сделать срок действия пароля не ограниченным и запретить менять пароль.

    Можно с помощью PowerShell создать локального пользователя с указанными настройками:
    $pass = ConvertTo-SecureString "p-0m-2024" -AsPlainText -Force
    New-LocalUser -Name winusr1 -Password $pass -PasswordNeverExpires -UserMayNotChangePassword
    Remove-LocalGroupMember -Group Users -Member winusr1

По умолчанию в Windows сетевые принтеры доступны по протоколу SMB. Чтобы проверить доступ к принтеру из Linux, установите smbclient:

В Ubuntu/Debian выполните команду:

$ sudo apt install smbclient

Чтобы вывести список SMB ресурсов на удаленном компьютере

$ smbclient -L \\192.168.31.94 -U winusr1

Где:

  • 192.168.31.94 – IP адрес или имя компьютера с Windows
  • winusr1 – имя пользователя Windows

Команда выведет список опубликованных сетевых папок (в том числе общих административных папок) и принтеров.

Из консоли вы можете проверить доступность SMB принтера и отправить файл на печать:

$ smbclient -W DOMAIN -U winusr1//192.168.31.94/HPM1530

Распечатать указанный файл:
smb: \> print /home/sysops/test.txt

printing file test.txt as test.txt (196,6 kb/s) (average 196,6 kb/s)

smb: \> quit

Для удобного доступа к сетевым принтерам и их управлением проще всего воспользоваться встроенным сервером печати для Linux – CUPS (Common UNIX Printing System). Для управления CUPS используется веб интерфейс system-config-printer.

В большинстве десктопных дистрибутивов Linux пакет CUPS и system-config-printer установлены по умолчанию. Проверьте это (если нужно, установите):
$ dpkg -l cups
$ dpkg -l system-config-printer
$ systemctl status cups

Теперь можно подключить сетевой принтер в Linux:

  1. Откройте веб-интерфейс CUPS, перейдя в браузере по URL
    localhost:631
    ;
  2. Перейдите в Administration -> Add printer -> Other network printers -> Windows Printer via SAMBA;
  3. Укажите параметры подключения к принтеру в формате
    smb://winusr1:[email protected]/HPM1530
    (строка содержит имя пользователя и пароль, имя/IP удаленного Windows хоста и имя принтера);

    Подключение SMB принтера с Windows компьютера в Linux

  4. Затем задайте имя и описание принтера;
  5. На следующем шаге CUPS предложит выбрать производителя принтера и модель (для установки соответствующего драйвера). Список драйверов может быть довольно большим. Для быстрого поиска названия драйвера по модели принтера воспользуйтесь командой:
    $ lpinfo -m| grep 1536

    lpinfo - список доступных драйверов cups

    Выберите найденный драйвер в CUPS.

  6. Установка принтера завершена.

Где найти драйвера для CUPS под Linux. Например, в случае с принтерами HP, в большинстве десктопных дистрибутивов Linux предустановлен пакет HP Linux Printing and Imaging System (HPLIP). В нем содержится драйвера для подавляющего большинства принтеров.

$ dpkg -l hplip

HP Linux Printing and Imaging System (HPLIP)

Можно установить пакет HPLIP вручную:

$ sudo apt install hplip hplip-gui

Аналогичные пакеты с драйверами выпускают и другие вендоры, либо вы можете самостоятельно найти готовый PPD файл для конкретного принтера. Также вы можете использовать огромную библиотеку PPD драйверов печати foomatic (автоматически устанавливается для ubuntu-desktop):

$ apt install foomatic-db-compressed-ppds

Первая попытка отправить документ из Linux на печать в Windows завершилась с ошибкой. Информация об ошибке печати есть логе /var/log/cups/error_log:

E [22/Jan/2024:11:38:35 +0400] [Job 13] SMB connection failed!
E [22/Jan/2024:11:38:35 +0400] [Job 13] Unable to connect to CIFS host:

CUPS: SMB connection failed

Эта ошибка указывает на то, что CUPS не может подключиться к SMB папке принтера на Linux. Причина в том, что по умолчанию для доступа к сетевой папке smbclient Linux использует протокол SMB 1.0, который по умолчанию отключен в Windows 10 и 11.

Чтобы клиент SMB в Linux использовал более безопасный SMB 2 или 3 для подключения, отредактируйте файл /etc/samba/smb.conf. Добавьте в секцию [global] строки:

client min protocol = SMB2
client max protocol = SMB3

Перезапустите CUPS:

$ sudo systemctl restart cups

Теперь клиент Linux сможет успешно отправить задание на общий принтер в Windows.

Также вы можете добавить принтер Windows из командной строки из командой строки CUPS:

Сначала нужно получить название драйвера для вашей модели принтера:

$ lpinfo --make-and-model '1536' -m

Скопируйте полное название драйвера и можете подключить SMB принтер:

$ sudo lpadmin -p HP1536mfp -v smb://winusr1:[email protected]/HPM1536 -m postscript-hp:0/ppd/hplip/HP/hp-laserjet_m1530_mfp_series-ps.ppd

Включить принтер:

$ cupsenable HP1536mfp

Вывести список принтеров:

$ lpsatat -v
$ lpstat -p

Список подключенных SMB принтеров содержимся в файле /etc/cups/printers.conf. Обратите внимание, что в файле в открытом виде содержатся пароль Windows пользователя, который вы используете для подключения к принтеру (поэтому не нужно назначать никаких прав этому пользователю на Window машине).

/etc/cups/printers.conf

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

Главная → Просто о сложном → Для веб-программистов → Расшаривание принтера в Ubuntu для Windows и наоборот

Расшариваем в Убунту для Виндовс СПОСОБ 1

В Ubuntu проделываем следующее: 
Заходим в Система — Администрирование — Печать… 
Затем в Сервер — Параметры 
Отмечаем галочкой «Публиковать общие принтеры, подключенные к этой системе»

В Windows проделываем следующее: 
Заходим в браузер по адресу http://ip-адрес-компьютера-с-принтером:631/printers/ 
Копируем адрес вида http://192.168.1.2:631/printers/hp-LaserJet-1010 
Заходим в раздел «Принтеры и другое оборудование» «Панели управления» 
Выбираем пункт «Установка принтера» 
Ставим галочку на «Сетевой принтер…». Жмем «Далее» 
Ставим галочку на «Подключиться к принтеру в интернете, в домашней сети или в интрасети», вставляем полученный ранее адрес принтера 
Выбираем драйвер и завершаем установку*

Расшариваем в Виндовс для Убунту СПОСОБ 2

Думаю как расшарить принтер в винде объяснять не нужно, главное попробуйте расшарить принтер, чтобы можно было печатать из другого виндового компьютера, убедитесь, что принтер действительно расшарен.

Включаем поддержку самбы в винде (как это сделать чуть позже напишу).

В убунту добавляем сетевой принтер, далее выбираем способ: виндовс принтер через самба,

Далее ищем, если не находит, то добавляем по форме: smb://guest@айпи-компьютера/имя_принтера_в_сети 
Например: smb://guest@192.168.1.127/Canon_MP250_2

Кстати в Лубунту и ЮнибиксЛубунту по умолчанию нет возможности добавить виндовс принтер через самба, но это легко включить, установив три пакета: libsmbclient, smbclient, pyton-smbc

Расшариваем в Убунту для Убунту СПОСОБ 3

Установить и настроить локальный принтер на том компьютере к которому он подключен

ОТкрываем localhost:631 и нажимаем напротив принтера: Разрешить совместный доступ и Разрешить печать из Интернета (если надо)

Узнаем наш айпи командой «ifconfig -a»

Далее идем на второй компьютер с линуксом, пуск-администрирование-епчать-добавить принтер-найти сетевой принтер.

Если нашел — отлично, если нет то вбиваем ручками, например так: ipp://192.168.0.234:631/printers/blackstar

Расшариваем в Виндовс для Виндовс СПОСОБ 4

Это самый простой и детский спобоб, поэтому его распишу как будет время.

Для всех случаев:

должны быть установлены пакеты samba и cups 
cups — интерфес печати для linux 
samba — сервер общих ресурсов для windows 
Команды установки для терминала 
sudo apt-get install cups 
sudo apt-get install samba 
Команда рестарта cups 
sudo /etc/init.d/cups restart 
команда рестарта samba 
sudo service smbd restart

Также есть хорошая инструкция для совсем нестандартных случаев: 
http://forum.ubuntu.ru/index.php?.0

Принтер (локальный, сетевой, перенаправленный, проброшенный)

Раздел редактируется

На первой странице:

Подключение рабочей станции Linux к принтеру Windows-машины по локальной сети

Далее темы:

Подключение принтера напрямую  к  рабочей станции LInux

Предоставление доступа на печать с  Linux- рабочей станции  как печать из интернета (CUPS )

Предоставление доступа на печать с  Linux- рабочей станции  как «Сетевое окружение» Windows  (Samba)

Перенаправление печати с терминального сервера Windows на локальный принтер  Linux- рабочей станции

Проброс принтера Linux- рабочей станции  по локальной сети на Windows- машину, как независимого устройства через программный USB-сервер для подключения Windows-клиентом.

 Подключение рабочей станции Linux к принтеру Windows-машины по локальной сети

Видеоролик можно скачать по адресу:
http://salomatin.ru/printer_L1.ogv

Принтер локально подсоединен к  Windows- машине, которая успешно раздает печать на другие Windows компьютеры по локальной сети. Подключаем к этому принтеру  Linux- рабочую станцию.

Процедура мало отличается от порядка подключения к принтеру любых рабочих станций. В зависимости от графической среды вашего дистрибутива находите в меню позицию добавления принтера и путем нажатия кнопок  выбираете принтер, сканируя сеть. В меню это «Windows принтер через SAMBA»  (Windows Printer via SAMBA)
Если не нашли в меню, используете веб доступ, набрав  в браузере http://localhost:631 и следуя этим меню.

При проблемах обнаружения принтера можно  явно указать IP адрес Windows компьютера и принтер
smb://172.16.5.53/HPLaserJ
заменив  172.16.5.53 на  IP адрес вашего Windows компьютера
HPLaserJ  — на правильное сетевое имя принтера.

Узнать правильное сетевое имя принтера  (это важно до буквы) можете командой

[vova@client ~]$ smbclient -L 172.16.5.53
спросит пароль
в столбце Sharename
Пример:

Unknown parameter encountered: "display charset"
Ignoring unknown parameter "display charset"
Enter vova's password:
Domain=[MYCOMP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

Sharename       Type      Comment
---------       ----      -------
IPC$            IPC       Удаленный IPC
print$          Disk      Драйверы принтеров
34              Disk     
HPLaserJ        Printer   HP LaserJet 1018
ADMIN$          Disk      Удаленный Admin
C$              Disk      Стандартный общий ресурс
Domain=[MYCOMP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

Server               Comment
---------            -------

Workgroup            Master
---------            -------

затем вам будет предложено выбрать драйвер из списка. Следуйте рекомендуемым.

Принтер локальный
Подключение принтера напрямую  к  рабочей станции LInux

Видеоролик можно скачать по адресу:
http://salomatin.ru/printer_local.ogv

На рабочую станцию ставим ALT Linux 7.0, подключаем локально принтер
Любым браузером открывает ссылку http://localhost:631
Далее:
НачалоАдминистрирование ( http://localhost:631/admin) — Добавить принтер
Спросит логин (root)  и пароль.
Видим подключенный принтер, у нас для  примера это  HP LaserJet 1018 (HP LaserJet 1018)
Ставим отметку и нажимаем Продолжить
Изменяем название на более удобное. Затем, при разрешении печати по сети придется набивать его вручную точно до знака.
Для примера назвал принтер HP1018
Затем опять Продолжить
Выбираем модель  Добавить принтер
Сохранить параметры по умолчанию
Печатаем пробную страницу.
Никаких дополнительных настроек и регулировок не требуется.
Если нет печати смотрите принтер, провод, порт USB.

Задача: есть принтер, подключённый к машине Windows по локальной сети, и есть компьютер с Linux и установленной там системой печати CUPS. Нужна печатать с Linux-машины на Windows-машину.
Решение: с помощью веб-формы CUPS добавляем принтер в Linux и указываем логин guest для печати на Windows машину.

Рассматривать будем на рабочем примере: есть компьютер под Windows XP по адресу 192.168.1.1, на нём по SAMBA виден расшаренный принтер LaserJet 1200, который имеет сетевое имя HPLaserJ. С других машин под Windows печать на него идёт, но через CUPS при попытке отправить задание на печать вылезает ошибка.

При использовании SMB протокола пишет:
Connection failed with error NT_STATUS_ACCESS_DENIED

Если пытаюсь печатать через IPP, получаю:
Unable to connect to SAMBA host, will retry in 60 seconds…foomatic-rip version $Revision$ running…

Пароля на принтеры нет.

Решение проблемы просто до смешного. Добавляем в веб-форме CUPS принтер, как сказано здесь, выбираем способ подключения Windows printer via Samba. Далее в строке адреса пишем:

smb://guest@192.168.1.1/HPLaserJ

И всё! Печать пошла!

И почему в гигантской, хотя и бестолковой, документации CUPS это не выделено ярким шрифтом?

В приложениях KDE нужно выставить адрес службы печати на локальный: 127.0.0.1:631.

Если же в вашей Windows-машине используется авторизация через домен, то надо в строке адреса указывать пароль и имя пользователя.

smb://usrername:userpassword@domainname/computername/printername

Во избежание излишних нервных перенапряжений, не рекомендую пользоваться именами принтеров с пробелами и кириллицей.

Ссылки:
Решение было найдено, страшно сказать, на ЛОРе. Что поражает, так это то, что такую простую вещь никто нигде не освещает. Надеюсь, это поможет кому-то ещё.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Центр обеспечения безопасности windows vista
  • Неопознанная сеть без доступа к сети windows 7 как исправить
  • Вай фай директ для windows
  • Windows iphone internal storage
  • Ошибка 0x800704c7 windows 7