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

Наш канал в Telegram

Одной из трудностей перехода на Linux является сложность работы компьютера, работающего под управлением свободного ПО в смешанной сети. Если в работе локальной сети используется технология «Интранет», то организовать отправку и получение информации менее проблематично. Однако одна из проблем — это отправка документов на печать. Проблема имеет решение, если принтер подключен непосредственно к Linux станции и настроен на работу под управлением данной системы. Однако как быть в том случае, если принтер подключен к рабочей станции, работающей под управлением ОС Windows?

Немного «погуглив» я нашел для себя следующее решение:

в командной строке вводим команду для просмотра открытых для доступа сетевых ресурсов на станциях, работающих под управлением ОС Windows — smbtree. Введем пароль который может служить для доступа к ресурсам (если используется анонимный доступ, то пароль можно не вводить).

У меня это выглядело, примерно, так:

$ smbtree
Password:
ADMINISTRATION
\\UVR
\\UVR\Xerox Phaser 3120 Xerox Phaser 3120
\\UVR\Epson Stylus C43 Series (M) Epson Stylus C43 Series (M)

Запускаем в браузере систему настройки печати (http://localhost:631/) и производим стандартную процедуру настройки принтера с небольшими изменениями.

Дойдя до раздела Device for [настраиваемый принтер] выбираем Windows Printer via Samba

В разделе Device URI for [настраиваемый принтер] вводим следующее: smb://[полный адрес принтера]. У меня это выглядело примерно так smb://UVR/Epson Stylus C43 Series (M).

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

Интересная статья? Поделитесь ей с друзьями!

В данной статье описывается подключение к компьютерам под управлением ОС Astra Linux разделяемых принтеров, подключенных к компьютерам под управлением Windows. См. тж. Подключение принтеров к Astra Linux

Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

  • Astra Linux Special Edition РУСБ.10015-16 исп. 1

  • Astra Linux Common Edition 2.12

При наличии драйвера для ОС Astra Linux

  1. Открыть общий доступ к принтеру, для чего:
    1. Войти в свойства принтера.
    2. На вкладке Доступ активировать опцию «Общий доступ к данному принтеру».
    3. Присвоить принтеру сетевое (имя не должно содержать пробелы и спецсимволы). Для примера использовано имя HP1522:


      В данном случае имя принтера HP1522.

  2. Перейти в «Панель управления» — «Программы и компоненты» — «Включение или отключение компонентов Windows» и включить службу «Служба печати LPD»:

  3. Нажать «ОК».
  4. Перезагрузить компьютер.

На компьютере с ОС Astra Linux

  1. Открыть графический  инструмент «Принтеры» («Пуск» — «Панель управления» — «Оборудование» — Принтеры»).
  2. Нажать «Добавить принтер»,  выбирать «Принтер» — «Другой» — «Сетевое подключение» — «Протокол LPD (UNIX)» — «Сканировать».
  3. В параметрах сканирования указать «узел» и ввести IP-адрес Windows-компьютера.
  4. В поле «Обнаруженные устройства» должен появится принтер.
  5. Выделить появившийся принтер, нажать «ДА».
  6. В поле «Введите имя очереди LPD» ввести имя принтера, которое было указано ранее на вкладке общего доступа в Windows (в данной статье это HP1522):
  7. Нажать «Да» , указать название принтера, выбрать соответствующий принтеру драйвер.
  8. Опционально напечатать тестовую страницу.

При отсутствии драйвера для ОС Astra Linux.

На компьютере Windows

Если к Windows подключен принтер, для которого нет драйвера для ОС Linux, то печать можно настроить через виртуальный PS-принтер. Для настройки понадобится ПО для Windows:

  • Принтер — на котором будем печатать;
  • Ghostscript — виртуальный PostScript принтер;
  • http://www.ghostgum.com.au/software/redmon.htm (незащищенная ссылка) – RedMon Redirector Port Monitor.

Порядок настройки:

  1. Скачать ПО Ghostscript.
  2. Установить Ghostscript в каталог  C:\gs (установка в Program Files не рекомендуется).
  3. Распаковать и установить Redmon.
  4. Создать файл C:\gs\printer.rsp со следующим содержимым:

    -IC:\gs\gs10.03.1\lib;C:\gs\gs10.03.1\Resource\Font
    -sDEVICE=mswinpr2
    -dNOPAUSE
    -dSAFER
    -sPAPERSIZE=a4
    -sOutputFile="%printer%HP Universal Printing PCL 6"

    В зависимости от используемой версии Ghostscript в первой строке указать в путях версию ghostscript (в примере — версия 10.03.1).
    По необходимости выбрать другой формат бумаги (-sPAPERSIZE=a4). 
    В последней строке  после %printer% указать полное имя принтера, можно с пробелами.

  5. Далее в «Принтеры и устройства» добавить новый принтер:
    Добавить локальный принтер


    Выбрать «Добавить локальный принтер»

  6. Создать новый порт: Redirected port


    PRT1:

    Если при создании порта происходит ошибка, то порт можно создать вручную с помощью оснастки «Панель управления – Администрирование – Управление печатью» (запуск от имени администратора).

  7. Выбрать стандартный PS драйвер принтера, в примере OKI B4300PS:

  8. Указать название принтера:

  9. Разрешить общий доступ по сети:

  10. В свойствах принтера на вкладке «Порты» выбрать ранее созданный порт и нажать настроить:

  11. Настроить порт:

    При настройке:

    • выбрать целевой принтер в выпадающем списке Printer;
    • обязательно включить check-box Run as User.

    В поле «Arguments for this program» обязательно в конце указать «пробел» и «-«

На компьютере с ОС Astra Linux

  1. На компьютере с ОС Astra Linux добавить принтер как LPD с драйвером Generic Postscript Printer.
  2. Напечатать пробную страницу.

В офисной сети вы можете печатать напрямую с 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

Итак, возникла задача установить принтер в моей Linux, после чего разрешить доступ к нему из локальной сети, в том числе с машин под управлением Windows.
Прямо скажу, путь получился тернистым — установка принтера под Linux это еще полбеды, а вот разрешить доступ к нему с компьютеров с Windows, это уже загвоздка.
Итак к делу…

Прежде всего устанавливаем принтер. В моем случае это МФУ Samsung SCX 4500, поэтому я:
1. Проверил, что сервер cups установлен и запущен. В моем случае он был установлен, но небыл запущен.
Запустил его:

/etc/init.d/cupsd start

В ситемах RedHat может подойти команда

service cupsd start

Если он не установлен — его необходимо предварительно установить, например, командой yum install cups или emerge cups

2. установил пакет splix — в Linux Gentoo, для этого, я набрал команду:

emerge splix

В других ОС это будет команда yum install splix либо apt-get install splix, ну в общем установка пакетов к данной статье не относится.
Данный пакет нужен для принтеров Samsung.
Далее, скачал с сайта производителя драйвер под linux и установил его, запустив инсталлятор.

3. Перезапустил cups:

/etc/init.d/cupsd restart

Отправил на печать пробную страницу — она отпечаталсь. Отправил еще одну — ноль, результатов нет. Шаманил полчаса, прежде чем обнаружил что… нет бумаги. Блин. Проверьте бумагу, прежде, чем проверять принтер :-)
Окей, бумага загружена, жму печать — принтер работает.

Теперь осталось разрешить доступ к принтеру из локальной сети, с компьютеров под управлением Windows.
1. Для начала должна быть настроена сеть. Если сеть не настроена — настройте ее, описание настройки локальной сети не входит в данную статью — воспользуйтесь поиском по сайту, либо гуглом. Далее, должен быть установлен и запущен сервер samba. Если это не так — установите и запустите его. После запуска samba, его необходимо настроить. Описание настройки samba не входит в данную статью — воспользуйтесь поиском по сайту, либо гуглом.

Получили рабочую сеть, самое главное — получили доступ из Windows, к какой-либо директории в linux («расшареной» в настройках samba).

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

Открываем smb.conf (у меня он лежит по адресу /etc/samba/smb.conf ) и создаем в конце файла секцию настройки принтера.

У меня она выглядит так:

[printers]
printable = yes
printer name = scx4500
guest ok = yes
path = /var/spool/samba
use client driver = yes

Теперь по полочкам:

printable = yes

— что б печатало ;)

printer name = scx4500

— имя принтера scx4500

guest ok = yes

— разрешаем доступ гостям

path = /var/spool/samba

— черт знает что и сбоку бантик, в том плане, что четкого описания этой опции я не нагуглил, но без нее принтер не будет виден из локальной сети. Путь необходимо указать реальный. Мне пришлось очень долго гуглить и исследовать собственную систему. Если у Вас есть каталог /var/spool/samba то с вероятностью 99% этот путь подойдет. Так же встречался в описаниях путь /var/spool/lpd/lp, но у меня такого каталога нет, поэтому пришлось гуглить и искать подходящий.

use client driver = yes

— а вот без этой подлой строчки, из Windows печать может и не заработать, как вышло в моем случае, возникала ошибка «Нет доступа, подключиться не удалось». После того, как добавил эту строчку — доступ появился. Кстати, тоже пришлось по гуглить.., таков уж он — linux.

После этого можно перезапускать самбу.
Далее, идем в Windows, в панель управления, в раздел «Принтеры и факсы» (в Win XP) и добавляем принтер (сетевой). После того, как попросят драйвера — необходимо выбрать «установка с диска» и указать винде путь к .inf-файлу драйвера (он должен быть на диске, либо скачайте из интернета). Принтер добавлен, можно отправлять тестовую печать и… обнаружить, что документ отправляется на печать из Windows, но совершенно не вылазит из принтера :) А это самая подлая проблема, которая возникла на моем пути. Анализ лога sabma показал ошибку «client-error-document-format-not-supported» и в итоге нагуглилось решение:
1. проверить, что бы в файле /etc/cups/mime.types присутствовала и не была закомментирована строчка: application/octet-stream
2. проверить, что бы в файле /etc/cups/mime.convs присутствовала и не была закомментирована строчка: application/octet-stream
Вот на втором то файле собака и порылась — строчка эта была у меня закомментирована. Раскоментировал, на всякий случай рестартанул samba, рестартанул cups, отправил из Windows тестовую печать и о чудо — бумажка вылезла из принтера и там даже что-то было написано :)

Удачи!

P.S. Ссылка по теме…

Опубликовано 6 сентября 2008 — информация могла устареть.

Главная → Просто о сложном → Для веб-программистов → Расшаривание принтера в 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

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

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как редактировать диспетчер загрузки windows
  • Ultraiso для windows 10 инструкция
  • Пуск панель управления почта в windows 10
  • Open cmd in windows install
  • Как закриптовать вирус от windows defender