Общий принтер linux для windows

CUPS (Русский)/Printer sharing (Русский)

Эта статья содержит инструкции по совместному использованию принтеров между системами, будь то между двумя системами GNU/Linux или между системой GNU/Linux и Microsoft Windows.

Contents

Создание класса для нескольких принтеров

‘Класс’ в CUPS имеет значение группы. Когда у вас есть несколько принтеров, подключенных к одному серверу CUPS, вы можете захотеть их сбалансировать (задания на печать автоматически помещаются в очередь для разных принтеров). Это также дает преимущество в том, что пользователи на удаленной машине работают с одним ‘принтером’. Что особенно полезно, когда один принтер вышел из строя, вы просто исключаете его из класса, но для конечных пользователей ничего не изменится — печать заданий, поставленных на другой принтер сервером CUPS, продолжает обрабатываться. Создание и управление классами можно выполнять из веб-интерфейса CUPS.

Внутри систем GNU/Linux

Сервер можно настраивать с помощью веб-интерфейса или путем ручного редактирования файла /etc/cups/cupsd.conf . Смотрите статью CUPS (Русский) для настройки клиента.

Использование веб-интерфейса

Для доступа к странице администрирования CUPS, откройте в браузере адрес: http://localhost:631.

В верхней части находится вкладка Администрирование — кликните по ней, нажмите на кнопку добавления принтера, при этом будут автоматически определены подключенные принтеры. Если этого не произойдет, отключите принтер и подключите его снова.

После создания принтера зайдите в раздел Сервер и установите флажок напротив «Разрешить совместный доступ к принтерам, подключенным к этой системе». После клика по Сохранить, сервер будет перезапущен автоматически.

Для более детальной настройки вы можете отредактировать файл /etc/cups/cupsd.conf , нажав кнопку «Редактировать конфигурационный файл». Для получения дополнительной информации смотрите #Ручная настройка.

Ручная настройка

На сервере (тот, который управляет и подсоединён к принтеру) разрешите доступ к серверу, изменив строчки с тэгом Location. Например:

Также убедитесь, что серверу для адресации доступен IP-адрес клиента:

Есть другие возможности для настройки, включая автоматические способы, которые детально описаны в Использование сетевых принтеров [устаревшая ссылка 2020-08-02] и cupsd.conf(5) .

После внесения каких-либо изменений перезапустите службу org.cups.cupsd .

Если CUPS запускается с помощью активации сокета, создайте drop-in сниппет для org.cups.cupsd.socket , чтобы активация сокета работала и с удаленными подключениями:

Включение обнаружения

Чтобы включить отображение (обнаружение) общего принтера, необходимо установить Avahi и запустить его на сервере. Если вам не нужно обнаружения принтера, тогда Avahi не требуется ни на сервере, ни на клиенте.

Чтобы включить отображение, выберите Показывать общие принтеры, подключенные к этой системе в веб-интерфейсе, или вручную включите Browsing и введите BrowseAddress:

затем перезапустите службу org.cups.cupsd .

Обратите внимание, что «обнаружение» на сервере — другая вещь по сравнению с «обнаружением» на удаленном сетевом хосте. На сервере печати cupsd предоставляет поддержку протокола DNS-SD, который транслируется avahi-daemon . Служба cups-browsed не нужна на сервере печати за исключением, если будет транслироваться старый протокол CUPS’а, или если сервер печати также будет «обнаруживать» другие сетевые принтеры. На удаленном сетевом хосте служба cups-browsed требуется для «обнаружения» сетевой трансляции служб печати, а также запущенная служба cups-browsed будет автоматически запускать cupsd .

Служба org.cups.cupsd.service запускается автоматически при подключении USB-принтера, но это может быть не так для других типов подключений. Если cupsd не запущен, тогда avahi-daemon не транслирует службу печати, поэтому в этом случае service-файл юнита systemd должен быть изменен при запуске во время загрузки, а затем служба снова должна быть «включена/установлена» с новой зависимостью. Чтобы сделать это, отредактируйте раздел файла службы [Install] , добавив зависимость WantedBy=default.target , а затем включите и запустите службу org.cups.cupsd.service .

Между GNU/Linux и Windows

Сервер Linux — клиент Windows

После настройки сервера установите драйвера для принтера на компьютере под управлением Windows. Если принтер сервера CUPS настроен на использование собственных драйверов вместо raw (raw — когда cups просто передает на принтер полученное задание для печати без какой-либо обработки), вы можете просто выбрать общий драйвер postscript для клиента Windows (например, ‘HP Color LaserJet 8500 PS’ либо ‘Xerox DocuTech 135 PS2’, либо ‘Microsoft PS Class driver’).

Общий доступ с помощью Bonjour

Службы печати Bonjour позволяет клиентам Windows легко подключаться к серверам печати Unix с включенным обнаружением.

Общий доступ с помощью IPP

Internet Printing Protocol является широко поддерживаемым стандартом среди операционных систем, который также прост в настройке. Он имеет функцию переадресации портов, туннелирования и т.д.

Читайте также:  Windows приложение для htc

Сначала, настройте сервер как описано в разделе #Внутри систем GNU/Linux.

На компьютере с Windows, перейдите в Панель управления > Просмотр устройств и принтеров и выберите в контекстном меню ‘Добавить принтер’. Если у вас Windows 10, нажмите кнопку «Принтер, который я хочу, не указан». Далее, выберите ‘Выбрать общий принтер по имени’ и тип расположения принтера:

(Где hostname — это имя хоста или IP-адрес сервера GNU/Linux, а printer_name — это имя подключенного принтера. Вы также можете использовать полное доменное имя сервера, если оно есть, но вам может потребоваться установить ServerAlias my_fully_qualified_domain_name в /etc/cups/cupsd.conf , чтобы это заработало).

Общий доступ с помощью Samba

Samba — реализация протокола обмена файлами Windows и принтерами, даже самых старых.

Обратите внимание, что общий доступ с помощью Samba обычно более сложный для настройки и сопровождения.

Для настройки Samba на сервере Linux, отредактируйте файл /etc/samba/smb.conf , это даст возможность предоставить общий доступ к принтерам. Файл smb.conf может содержать примерно следующее:

Этого должно быть достаточно для организации совместного доступа, но все-таки рекомендуется добавить для принтера отдельную запись:

Учтите, что при таких настройках, должна существовать учетная запись с правами доступа к принтеру. Для публичного принтера установите guest ok в yes, и удалите строку valid users. Для добавления учетных записей, создайте действующую учетную запись GNU/Linux, а затем установите на Samba-сервере пароль. Например:

Затем перезапустите демон Samba:

Естественно, имеется множество дополнительных настроек сервера печати Samba, поэтому, для получения дополнительной информации, следует обратиться к справочной документации Samba и CUPS. Образцы и примеры можно посмотреть в файле smb.conf.example .

Сервер Windows — клиент Linux

smb://BEN-DESKTOP/HP Color LaserJet CP1510 series PCL6

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

Общий доступ с помощью LPD

В Windows 7, 8 и 10 имеется интегрированный LPD-сервер, то, возможно, будет намного проще использовать именно его, поскольку не придется для клиента устанавливать Samba, а на сервере — можно будет обойтись без сложных настроек. Это можно включить в разделе Службы печати и документов, находящего в Панель управления -> Программы -> Включение или отключение компонентов Windows. В свойствах принтера должен быть включен общий доступ. Используйте общее имя без особых символов, таких как пробел, запятые и др.

Затем, принтер можно будет добавить в CUPS просто выбрав протокол LPD. Адресс принтера будет выглядеть следующим образом:

Перед добавлением вам, скорее всего, понадобиться установить для своей модели принтера соответствующий драйвер. Драйвера Generic PostScript или RAW тоже должны работать.

Общий доступ с помощью IPP

Как и в предыдущем случае, для организации общего доступа к принтерам протокол IPP является предпочтительным, но он работает только с версиями Windows Server. Версия Windows Server (например Server 2016) включаюет поддержку IPP (функции «Службы печати и документов», служба «Интернет-печати»). Клиентские версии (например, Windows 10) включают поддержку только клиента IPP и не поддерживают совместный доступ через IPP.

Общий доступ с помощью Samba

Гораздо проще использовать стандартные возможности Windows по предоставлению общего доступа к принтерам с помощью Samba. Ручная настройка практически не требуется и все можно выполнить через бэкенд CUPS. Однако, как было замечено выше, в Windows могут возникнуть проблемы с аутентификацией и ограничением доступа.

На стороне сервера необходимо разрешить общий доступ к принтеру и убедится, что клиентские машины имеют к этому принтеру доступ.

В следующем разделе будут описаны настройки клиента с обоими (cupsd и smbd) запущенными демонами.

Настройка через веб-интерфейс

Samba CUPS бэк-енд должен быть включен по умолчанию, но если этого не происходит — введите следующую команду и перезапустите CUPS.

Затем, просто зайдите в веб-интерфейс CUPS и добавьте новый принтер. В качестве устройства выберите «Windows Printer via SAMBA».

Для местоположения устройства, выберите:

Или, если пароля нет:

Убедитесь, что пользователь действительно имеет доступ к принтеру на компьютере Windows, и выберите соответствующие драйверы. Если компьютер находится в домене, убедитесь, что в имени пользователя присутствует домен:

Ручная настройка

При ручной настройке: остановите демон CUPS и добавьте свой принтер в /etc/cups/printers.conf , который, к примеру, может выглядеть так:

Перезапустите демон CUPS и распечатайте тестовую страницу.

Поиск URI для серверов печати Windows

Иногда имя хоста Windows (усеченно) меньше предстоящего точного URI устройства (расположение устройства) (Sometimes Windows is a little less than forthcoming about exact device URIs (device locations)). Если возникли проблемы с указанием правильного расположения устройства в CUPS, выполните следующую команду, чтобы вывести список всех общих ресурсов, доступных для определенного имени пользователя windows:

В этом списке будет отображаться только общие URI для определенного имени пользователя Windows в локальной подсети локальной сети, если Samba настроен и работает правильно. Команда должна вернуть что-то вроде этого:

Здесь требуется первая часть последней строки — ресурс, соответствующий описанию принтера. Поэтому для печати на принтер EPSON Stylus введите:

Удаленное управление

Однажды сервер настроенный, как описано в #Внутри систем GNU/Linux, может также быть настроенным так, чтобы им можно было управлять удаленно. Добавьте разрешенные хосты в блок в /etc/cups/cupsd.conf , используя тот же синтаксис, что и в #Ручная настройка. Обратите внимание, что доступны три уровня доступа:

Читайте также:  Windows список пользователей консоль

Чтобы дать удаленным хостам доступ к одному из этих уровней, добавьте оператор Allow в этот уровень. Оператор Allow может принимать одну или несколько форм, перечисленных ниже:

Отрицательный оператор также может быть использован. Например, чтобы предоставить полный доступ ко всем хостам на локальных сетевых интерфейсах, отредактируйте /etc/cups/cupsd.conf :

The factual accuracy of this article or section is disputed.

Вам также может потребоваться добавить:

Это должно помочь избежать ошибки: 426 — Upgrade Required when using the CUPS web interface from a remote machine.

Kerberos

Kerberos может использоваться для аутентификации пользователей, обращающихся к удаленному серверу CUPS. Это предполагает, что на вашем компьютере есть keytab, и ему понадобится билет для «HTTP». Вместо этого http://localhost:631 вы должны использовать https://host.example.co.uk:631 т.к. требуется шифрование для auth (следовательно, https), и требуется полное имя хоста, чтобы Kerberos/Negotiate могли работать. Кроме того, сервер должен быть настроен в /etc/cups/cupsd.conf , чтобы использовать DefaultAuthType Negotiate .

Если вы используете поддержку NSS в Samba winbind, вы можете добавить имя группы AD в /etc/cups/cups-files.conf — в следующем примере sysadmin может быть группой AD:

Решение проблем

Общие советы по устранению неполадок смотрите в CUPS/Решение проблем.

Не удается отправить на печать из приложений GTK

Если ты получил сообщение getting printer information failed (ошибка получения информации о принтере), когда пытался отправить на печать из приложения GTK, тогда добавь эту строку в свой /etc/hosts :

Ошибки разрешений в Windows

Некоторые пользователи исправили ошибки ‘NT_STATUS_ACCESS_DENIED’ (Windows клиенты), используя несколько иной синтаксис:

Источник

Сетевая печать из Ubuntu в Windows

Сетевая печать из Linux в Windows

настройка сетевой печати из Ubuntu в Windows

Windows принтер — Ubuntu

1. Устанавливаем стандартным образом принтер в Windows.
2. Проверяем печать.
3. Делаем общий доступ к данному принтеру.
4. В Ubuntu: Система -> Администрирование -> Печать
5. В открывшемся окне «Печать» кнопка «Добавить»: Сетевой принтер -> Windows Printer via Samba. Кнопка «Browse» открывает окно с выбором сети, компьютера и принтера.

Ubuntu принтер — Ubuntu (без Samba)

Если у Вас куплен принтер Hewlett Packard, желательно обновить пакет Hewlett-Packard’s Linux Imaging and Printing software (HPLIP). Инструкция по установке.Чтобы избежать проблем с печатью графики, советую поменять драйвер, устанавливаемый по умолчанию на pcl3.

1. Устанавливаем принтер в Ubuntu (192.168.0.1): Система -> Администрирование -> Печать
2. В открывшемся окне «Печать»: кнопка «Добавить». Система определяет подключенный к компьютеру принтер и устанавливает его. Если этого не произошло, обратитесь к документации по установке Вашего конкретного принтера.
3. Делаем общий доступ к данному принтеру. В окне «Печать» меню Сервер -> Settings. Ставим галки в пунктах:
-Show printers shared by other systems
-Pablish shared printers connected to this system
4. Нажимаем на установленный принтер и проверяем галки Shared

Теперь установим сетевой принтер на Ubuntu (192.168.0.2): Система -> Администрирование -> Печать
5. В открывшемся окне «Печать»: кнопка «Добавить».
6. В открывшемся окне «Печать» кнопка «Добавить»: Сетевой принтер -> Проткол сетевой печати (ipp). В поле «Host» пишем: http://192.168.0.1:631/printers/Laserjet-2300 . Вместо «Laserjet-2300» пишем название Вашего принтера (точно так, как назван на компьютере 192.168.0.1). Поле «Queue» оставляем пустым. Нажимаем на кнопку «Verify» для проверки доступности принтера.

Ubuntu принтер — Windows

1. Устанавливаем принтер в Ubuntu (192.168.0.1): Система -> Администрирование -> Печать
2. В открывшемся окне «Печать»: кнопка «Добавить». Система определяет подключенный к компьютеру принтер и устанавливает его. Если этого не произошло, обратитесь к документации по установке Вашего конкретного принтера.
3. Делаем общий доступ к данному принтеру. В окне «Печать» меню Сервер -> Settings. Ставим галки в пунктах:
-Show printers shared by other systems
-Pablish shared printers connected to this system
4. Нажимаем на установленный принтер и проверяем галки Shared

Теперь установим сетевой принтер на Windows (192.168.0.2): Пуск -> Настройка -> Принтеры и факсы.
В открывшемся окне «Принтеры и факсы»: «Установка принтера» -> Далее -> Сетевой принтер или принтер подключенный к другому компьютеру -> Подключиться к принтеру в Интернете, в домашней сети или в интрасети. В поле вводим http://192.168.0.1:631/printers/Laserjet-2300 . Вместо «Laserjet-2300» пишем название Вашего принтера (точно так, как назван на компьютере 192.168.0.1).

Данная статья внесена в Ubuntu Wiki по-русски: Предоставление общего доступа к принтеру

Проблемы при печати в Ubuntu linux

У пользователей Ubuntu подсоединённых по локальной сети к Windows машине с общим принтером часто возникают серьёзные проблемы при печати и эта заметка должна помочь справится с ними.

Давайте рассмотрим ситуацию, пусть у нас есть компьютер c Ubuntu 192.168.0.2 на нёмSamba с системой печати CUPS и он по локальной сети подключен к компьютеру с Windows XP192.168.0.1 у которого в свою очередь есть принтер LaserJet 6P на LPT1 порту, расшарен и имеет сетевое имя HPLaserJ. Нам надо печатать документы с машины Ubuntu на этом принтере.

Читайте также:  Windows 10 smokie blablabla для слабых ноутбуков

Попытаемся решить эту задачу тривиальным способом Система -> Администрирование -> Печать тамСоздать — Принтер выскакивает окошко Новый принтер -> в Укажите подключение левая панельУстройства выбираем Windows Printer via Samba жмём кнопку Обзор выбираем машину с XP 192.168.0.1 и о ужас там нет нашего расшаренного принтера! Что же делать? Можно например руками прописать в строкуsmb://[рабочая_группа/]сервер[:порт]принтер. Новички в использовании Ubuntu спросят а где им взять рабочую группу? Cервер понятно 192.168.0.1, порт где его брать? Принтер тоже вроде понятно это его расшаренное имя т.е. HPLaserJ.

И в общем получилось у такого пользователя нечто вроде

Аутентификация оставил такой пользователь Запрашивать, если требуется аутентификация

вроде всё, но если нажать кнопку Проверить то связь с принтером отсутствует и значит введённые нами значения не верны! И как бы мы не изгалялись и не рвали свою жопу на фашистский знак связи нет с принтером и не будет и как быть? Чтобы больше не видеть

при попытке отправить задание на печать!

Решения есть два!

Первое пригодно для случая когда на виндовз машинке есть пользователь Guest, т.есть включена запись гостя.

Тогда всё сводится к тому что в строку

Аутентификация -> Ввести параметры аутентификации -> Имя пользователя guest Пароль не вписываем жмём проверить, о ура ура принтер подключен!! Жмём кнопку Далее указываем производителя принтера HP ещё далее выбираем драйвер для LserJet 6P и т.д.
Не забываем после установки зайти в свойства принтера Управление доступом и там задать Разрешить печать всем, кроме указанных пользователей!

Решение второе пригодно для случая когда на виндовз машинке нет пользователя Guest, т.есть выключена запись гостя.

Тогда всё сводится к тому, что в строку smb:// записываем WORKGROUP/192.168.0.1/HPLaserJ

Аутентификация -> Ввести параметры аутентификации -> Имя пользователя winpolzovatel на машине192.168.0.1 Пароль пароль winpolzovatelя и если проверить даёт положительный результат дальше действуем по известной схеме.

Правда бывают моменты, когда и этих действий недостаточно, что же тогда?

Тогда собираем свою волю в кулак и поступаем следующим образом.
Для начала проверяем действительно ли на Windows машине рабочая група WORKGROUP если нет выясняем какая на самом деле и ставим такую же на машине с Ubuntu для этого в терминале

Теперь открываем браузер Firefox и пишем 127.0.0.1:631 в строке адресса жмём Enter попадаем Common UNIX Printing System
здесь жмём Add Printer указываем
Name: HPLaserJet6P
(May contain any printable characters except «/», «#», and space)
Location: HPLaserJet 6P Windows Comp
(Human-readable location such as «Lab 1»)
Description: Printer который меня замучал
(Human-readable description such as «HP LaserJet with Duplexer»)

Далее Device for HPLaserJet6P
Device: Windows Printer via Samba

Далее Device URI for HPLaserJet6P

Для первого случае есть guest

Device URI:smb://guest@192.168.0.1/HPLaserJ

для второго случая нет guest или guest не пашет ка нужно или авторизация через домен
используем формулу 🙂

для нашего случая

далее выбираем имя производителя на странице Make/Manufacturer for HPLaserJet6P это в нашем случаеHP

далее драйвер модели на странице Model/Driver for HPLaserJet6P — понятно что это драйвера HPLaserJet6P

далее выскакивает окно аутентификации проверяющее вас на принадлежность sudo вводите данные суперпользователя Ubuntu и пароль

Printer HPLaserJet6P has been added successfully.

Переходим на вкладку Printers и печатаем тестовую страницу — Print Test Page

Сетевая печать из Linux на Windows принтер используя SAMBA

Задача: есть принтер, подключённый к машине 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. Далее в строке адреса пишем:

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

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

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

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

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

Источник

Оцените статью