Cups не открывается в браузере
Первичный (основной) механизм для печати и сервисов печати в Ubuntu - это Общая система печати UNIX (Common UNIX Printing System - CUPS). Данная система печати - это свободный, доступный и переносимый слой, который стал новым стандартом печати для большинства дистрибутивов Linux.
CUPS управляет заданиями печати и обеспечивает сетевую печать с использованием стандарта IPP (интернет протокол печати), поддерживая огромный список принтеров от матричных до лазерных и любых других. CUPS также поддерживает PostScript описание принтеров (PPD) и автоопределение сетевых принтеров, а также простую настройку и администрирование через web интерфейс.
Установка
Для установки CUPS на ваш Ubuntu компьютер просто используйте sudo для выполнения команды apt-get, передав ей названия пакетов в качестве параметра. Полная установка CUPS содержит много зависимостей, но они все могут быть определены в одной команде. Введите следующее в терминале для установки CUPS:
После аутентификации вас по паролю, пакеты должны загрузиться и установиться без ошибок. В заключении установки сервер CUPS будет запущен автоматически.
При необходимости решения проблем, вы можете получить доступ к ошибкам сервера CUPS через файл журнала /var/log/cups/error_log. Если журнал ошибок не дает достаточно информации для решения какой-либо проблемы, уровень журналирования CUPS можно повысить изменением директивы LogLevel в файле настроек (описывается ниже) до debug или даже debug2 со стандартного info, что будет сохранять в журнал абсолютно все. Если вы проведете такое изменение, не забудьте вернуть все обратно после решения проблемы, чтобы избежать излишнего разрастания файла журнала.
Настройка
Прежде чем редактировать файл настроек, вам стоит сделать копию оригинального файла и защитить ее от записи, чтобы у вас были оригинальные настройки в качестве руководства, которые можно восстановить при необходимости.
Скопируйте и защитите от записи файл /etc/cups/cupsd.conf.original с помощью следующих команд в терминале:
2. Listen: В Ubuntu по умолчанию установленный CUPS сервер слушает только интерфейс обратной петли по адресу 127.0.0.1. Чтобы заставить CUPS сервер прослушивать актуальный IP адрес сетевого адаптера, вы должны указать сетевое имя или пару IP адрес/порт добавочной директивой Listen. Например, если ваш сервер находится в локальной сети с IP адресом 192.168.10.250 и вы хотите сделать его доступным для других систем в этой подсети, отредактируйте /etc/cups/cupsd.conf, добавив директиву Listen, как показано ниже:
В приведенном примере вы можете закомментировать или удалить ссылки на адрес обратной петли (127.0.0.1), если вы не хотите, чтобы cupsd прослушивал этот интерфейс, а только Ethernet интерфейсы локальной сети. Чтобы разрешить прослушивать все сетевые интерфейсы, назначенные определенному сетевому имении, включая обратную петлю, вы можете создать такую запись Listen для имени (например) socrates:
или опустить директиву Listen и использовать вместо нее Port:
Для дополнительных примеров по директивам в файле настройки CUPS, смотрите ассоциированную страницу системного руководства, введя в терминале следующую команду:
Всякий раз, как вы внесли изменения в файл настроек /etc/cups/cupsd.conf, вам потребуется перезапустить сервер CUPS вводом следующей команды в терминале:Web интерфейс
Чтобы выполнить административную задачу через web интерфейс, вы должны либо разрешить учетную запись root на своем сервере, либо авторизоваться как пользователь из группы lpadmin. По соображениям безопасности CUPS не авторизует пользователей с пустыми паролями.
Чтобы добавить пользователя в группу lpadmin, выполните в терминале следующую команду:
Дальнейшая документация доступна через закладку Documentation/Help web интерфейса.
Любой браузер? Если запустить другую ОС, ошибка повторится? Если подключиться netcat'ом или telnet'ом, будет также пустота?
покажите
netstat -lan| grep 631
$ netstat -lan| grep 631
tcp 0 0 192.168.1.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp6 0 0 ::1:631 . * LISTEN udp 0 0 0.0.0.0:631 0.0.0.0:*
Печать с учетом информации о местоположении Нет Нет Нет
//Забыл — на винфак!
amorpher, Я в глубине души понимаю, но никак не могу себе представить, что именно этой версии мешает отображать вебку cups и webmin. Не очень хотелось бы менять предустановленную лицензию hp на ultimate пиратский. Линуксы на личных компах, к несчастью, не рассматриваются в силу особенностей аудитории :(
что именно этой версии мешает отображать вебку cups и webmin.
>ЖАДНОСТЬ ЖжОшь. :))
Может в регедите какой костыль есть, но это опять же — на винфак :)
Уверен на 99,99%, что дело в обрезанном хоуме.
Похоже на то, большое спасибо! Если у кого какие будут мысли, пишите, буду благодарен!
Возможность смены фонового рисунка рабочего стола Нет (Windows 7 starter)
Кто будет юзать дерьмецо в котором нельзя убрать скучные обои?
Бизинесс же, йоу ;)
После долгого обдумывания ситуации и вдумчивом изучении известных неисправленных багов семерки решил я таки проблему. Дело, и правда, было в винде, однако переустановка на ultimate не изменила ситуации. Может кому поможет.
Все эти проблемы наблюдались только по WiFi, при соединении машины проводом к роутеру проблемы исчезали. Все проблемы наблюдались только в windows7. Xp, ubuntu работали как по проводу, так и по wifi нормально во всех отношениях.
Источник проблемы: семерка некорректно автоматически выставляет mtu у беспроводных соединений.
Существует два способа настройки принтера на машине с Альтом:
- утилита 'Настройка принтера' (URL) - system-config-printer
- веб-интерфейс CUPS (Common UNIX Printing System) - cups
Содержание
Запуск утилиты либо через меню Menu -> Администрирование -> Настройки принтера , либо в консоли команда system-config-printer .
Если в меню данного ярлыка не нашли и команда в консоли не найдена, то необходимо доустановить данный пакет:
- См. п.1 настройки локального принтера.
- Далее в списке устройств слева разверните закладку "Сетевой принтер".
- Через несколько секунд отобразятся все найденные сетевые принтеры, выбирайте нужный и нажимайте кнопку "Далее".
- Если же в данном списке необходимого принтера нет - выберите пункт "Поиск сетевого принтера" и введите в поле "Сервер" справа IP-адрес устройства. Затем - кнопка "Найти"
- Далее с п.3 настройки локального принтера.
Чаще всего помогает его смена (через свойства принтера) на один из следующих:
- См. п.1 настройки локального принтера.
- В строку адреса введите URI устройства (закладка "Введите адрес") в формате указанном выше.
- Далее с п.3 настройки локального принтера.
- См. п.1 настройки локального принтера.
- Далее в списке устройств слева разверните закладку "Сетевой принтер".
- Внизу открывшегося списка выберите "Хост или принтер LPD/LPR".
- Введите адрес принт-сервер в поле "Сервер" и имя принтера в поле "Очередь".
- Далее с п.3 настройки локального принтера.
Если в меню данного ярлыка не нашли и страница в браузере не открывается, то необходимо доустановить пакет cups .
Чтобы добавить принтер, необходимо перейти на вкладку "Администрирование" и нажать кнопку "Добавить принтер". В открывшемся списке в разделе "Установленные принтеры" представлен список всех доступных для подключения локальных и "программных" устройств печати; ниже раздел "Найденные сетевые принтеры" - для автоматической настройки имеющихся в сети устройств и раздел "Другие сетевые принтеры", в котором необходимо вручную выбрать тип искомого принтера (подробнее смотрите выше).
Ничем не отличается от настройки сетевого принтера, за исключением того, что принтер не знает, к какому WiFi подключаться, а заставить его это сделать без специального приложения под Android или Windows сложно.
Однако многие принтеры поддерживают WiFi Direct. Для принтера это значит, что он сам раздаст тебе какой-то вайфай (только к себе), после чего надо к нему подключиться и настроить настоящий вайфай.
- SSID сети, которую раздаёт принтер по WiFi Direct
- Ключ (пароль) этой сети
- (возможно) IP-адрес, который принтер получит после настройки
- Нажать на кнопку WPS 10 сек (не больше и не меньше).
- **Не** включать WPS.
- Приедет распечатка настроек. Если приехало что-то иное, значит, держали кнопку дольше или меньше.
- В сетевых настройках в разделе Wi-Fi Direct:
- IP Address: адрес принтера (у меня 192.168.3.1)
- SSID: это принтер сам раздаёт сеть, у меня DIRECT-GDM2020 Series
- Network key: пароль от принтерного вайфая
Теперь можно снова распечатать странички с настройками (10 секунд кнопки WPS), там будет полученный по DHCP адрес принтера
В принципе, принтер себя по avahi анонсирует, CUPS его увидит
Но можно и avahi-browse -ltr _ipp._tcp, там будет адрес
Установите следующие пакеты:
Запустите hp-plugin с ключом i:
Следуйте инструкциям. Будьте готовы ввести пароль суперпользователя.
hp-plugin скачивает актуальный плагин с сервера HP и устанавливает его в систему (см. также Hplip).
Скачайте данный архив, распакуйте его командой gunzip linux-brprinter-installer-2.2.2-2.gz и запустите скрипт от рута, через пробел укажите модель принтера:
Далее следуйте инструкциям на экране, на предпоследнем этапе необходимо будет указать, есть ли у Вас URI устройства, и если укажите, что есть, предложит выбрать из найденных или ввести вручную. На последнем этапе (если это МФУ) - будет настроена возможность сканирования.
Итак. Предположительно, сервис печати CUPS — это мощное решение, позволяющее организовать централизованное управление принтерами в компании. Так оно и есть, но в процессе настройки потребуется провести некоторое время в поисках решения в Google множества мелких неочевидных проблем, особенно, если ваша необходимость выходит за рамки стандартных мануалов по настройке.
В статье будет описана установка принтсервера CUPS на Ubuntu Server в сети с работающим доменом Active Directory, хотя его наличие совершенно не обязательно и инструкции по настройке взаимодействию с ним можно будет смело пропустить, его настройка, а также настройка клиентских машин Linux и Windows для взаимодействия с данным принт-сервером.
Настройка принтсервера
В первую очередь мы настроим принтсервер, а точнее, настроим административный доступ на него, затем настроим печать на него, а затем опишем настройку клиентских машин.
Заходим на принтсервер любым удобным способом и обновим на нем пакеты:
Далее проверим, установлен ли CUPS на сервере:
Если вывод выглядит как то так:
то CUPS установлен, если вывода нет — устанавливаем CUPS:
Теперь настроим административный доступ к веб-интерфейсу CUPS. Все файлы конфигурации находятся по пути /etc/cups/. Для начала, на всякий случай сделаем резервные копии основных файлов конфигурации CUPS:
Впрочем, если вы этого не сделали — не беда, образцы данных файлов по умолчанию лежат по пути /usr/share/cups. Также нужно упомянуть, что вы можете проверить любые добавленные опции в файлы конфигурации CUPS с помощью команды:
Если вы что-то напутали, опечатались или использовали опцию, которая уже не поддерживается CUPS'ом, то вывод команды отразит данные ошибки.
Но приступим наконец к настройке. После любых изменений файлов в папке /etc/cups/ для получения эффекта необходимо перезапускать сервис CUPS:
А если вы отредактировали файл /etc/cups/cups-browsed.conf, то за него отвечает отдельный сервис cups-browsed, который тоже нужно перезапустить:
Первой незакомментированной опцией является
Она определяет минимальную информативность логов CUPS. Лог-файлы CUPS находятся по пути /var/log/cups/. На время установки, настройки и отладки принтсервера будет разумным перевести логгирование в debug-режим. Для этого изменим warn на debug2:
По умолчанию CUPS слушает входящие подключения только от localhost, то бишь на loopback интерфейсе. Чтобы убедится в этом, можете выполнить команду
Одна из строк будет выглядеть приблизительно так:
Либо же вы можете разрешить CUPS'у слушать подключения со всех адресов
Следующий момент настройки — это обнаружение сетевых и расшаренных принтеров.
На мой взгляд эта опция так и должна остаться выключенной, так как она определяет, будет ли рассылаться широковещательная информация по сети о подключенных к принтсерверу принтерах. А они ведь будут подключены к ней все. И соответственно у всех клиентских машин будут отображаться сразу все принтера. Наш принтсервер должен искать и обнаруживать все принтера в сети, но не рассылать их бездумно по всей сети.
Далее идут настройки аутентификации:
Определяет права доступа к веб-интерфейсу CUPS, а также к его административной части. Чтобы пользователь user имел право на администрирование CUPS, его нужно добавить в системную группу lpadmin:
Вообще, группы, которым позволен административный доступ к CUPS, определяются в файле конфигурации cups-files.conf в блоке
Если вы хотите добавить некой группе пользователей Linux права на администрирование принтсервера, например printadmins, то просто добавьте их через пробел к lpadmin. Если группа доменная, то это немного сложнее и будет описано позже.
Теперь перейдем к блоку <Location />:
Order allow,deny означает, что запрещены подключения отовсюду, если специально не указано разрешение. То есть нужно добавлять IP-адреса, подсети, хосты или хосты по маске (.example.com) в виде "Allow from [разрешенный адрес]*":
Для полной уверености и отладки, можно оставить, пока не настроите все остальное, такую констукцию, которая позволит печать отовсюду:
Приступим к настройке административного доступа к CUPS на принтсервере. Определитесь, с какого/каких IP и/или подсетей вы собираетесь подключаться к CUPS, и добавить их по аналогии с блоком <Location />:
Еще, по желанию, можно добавить язык интерфейса по умолчанию. Список доступных языков можно посмотреть с помощью команды:
Если нужная вам локализация, например ru, есть, то добавьте строчку в /etc/cups/cupsd.conf:
Самым простым способом это можно сделать так:
Если вы хотите, чтобы принтсервер примимал любые обращения, или не хотите заморачиваться, то можно добавить это:
Еще нужно взглянуть внутрь файла /etc/cups/cups-browsed.conf. Этот файл управляет тем, как принтсервер будет искать принтеры в сети и проводить широковещательную рассылку своих принтеров. Я предлагаю совершенно отключить опцию рассылки. Принтсервер будет искать принтера в сети, но с него принтеры на клиентские машины будут подключатся вручную. Ниже будет описано, почему. Пока же мы находим строку BrowseRemoteProtocols dnssd cups:
На этом настройку принтсервера приостанавливаем и переходим к настройке клиентких машин Windows и Linux. Требования к ним такие — позволять посылать на себя задания печати принтсерверу, и посылать задания на печать именно (и только) на принтсервер в случае необходимости печати на сетевой принтер.
Теперь выполним аналогичную операцию на клиентской машине Linux c именем хоста linux1. Вообще, данная часть будет куда объемнее, так как у клиентской машины есть свой сервис CUPS и его тоже нужно настроить во многом так же, как и принтсервер, за исключением его подчиненной роли в организации печати.
Исправление ошибки обращения к CUPS через loopback по имени хоста
В большинстве инструкций по введению Linux в домен одним из пунктов является приведение файла /etc/hosts приблизительно к такому виду:
Почему то CUPS не в силах ассоциировать обращение через 127.0.1.1, то есть через Loopback интерфейс, с именем хоста.
Исправляется эта ошибка двумя способами. Если в вашей сети IP адреса статичные, то в файле /etc/hosts исправьте 127.0.1.1 на IP адрес внешнего сетевого интерфейса клиентской машины, например:
Либо же, раз уж вы вводите Linux в домен, то это предполагает, что в вашей сети работает DHCP и DNS сервер Active Directory. В таком случае просто закомментируйте данную строчку:
Разницы в работоспособности или проблем от данного действия пока обнаружено не было.
Настройка адресов прослушивания подключений к CUPS у клиентских машин Linux
Заходим на linux1 любым удобным способом. Редактируем файл /etc/cups/cupsd.conf:
Находим, добавляем или изменяем в нем строки:
Настройка адресов прослушивания подключений к CUPS
В предыдущем блоке мы настроили возможность подключения к CUPS. Теперь перейдем к настройке разрешений на доступ к печати, а также к административным страницам сервиса CUPS на хосте linux1. Вновь открываем, если закрыли, файл /etc/cups/cupsd.conf и переходим к редактированию блоков <Location />, <Location /admin>, <Location /admin/conf>, <Location /admin/log>:
Настройка раздачи и получения широковещательной рассылки сетевых принтеров
Еще у клиетской машины Linux, в данном случае linux1, необходимо отредактировать файл /etc/cups/cups-browsed.conf:
Настройка административного доступа
Еще пару слов по поводу административного доступа, как на WEB-интерфейс CUPS на принтсервере, так и на любой клиентской машине Linux. Даже при условии наличия 30-50 компьютеров нужно унифицировать авторизацию на CUPS, а не держать в голове или еще где пароли каждой машины. И это важно на всех Linux машинах, ведь чтобы добавить принтер на сервер, его сперва нужно установить локально. Я вижу несколько путей.
Первый — на каждой системе Linux создать пользователя printeradmin (например) и добавить в группу lpadmin:
Второй вариант практически идентичен и предлагает создать группу в системе, например, printersadmins, добавить туда требуемого администратора CUPS (printeradmin, user):
Затем нужно найти в файле /etc/cups/cups-files.conf строку
и добавить через пробел одну или несколько групп пользователей с правом администрировать CUPS.
И наконец, третий вариант. Сделать администраторами принтсервера и CUPS'ов клиентских машин доменную группу пользователей. Для этого принтсервер и клиентские машины Linux должны быть присоединены к домену AD. Есть несколько методов подключения Linux к домену Windows, но, насколько я знаю, основные это подключение с помощью winbind и с помощью SSSD(realmd). Описание данных методов не входит в статью, поэтому остановлюсь только на моментах которые касаются конкретно CUPS'а.
Настройка использования доменных групп пользователей для администрирования CUPS
Каждый метод присоединения к системе централизованной авторизации в Linux создает специальный файл-"трубу" (pipe), сквозь который приложения могут посмотреть список пользователей домена. Чтобы так мог сделать CUPS, нужно разрешить ему использовать pipe в AppArmor'е для аутентификации пользователей. AppArmor — модуль безопасности Linux по управлению доступом. Ограничивает определенные программы набором перечисленных в его политиках файлов. Чтобы добавить CUPS'у право использовать пользователей и группы домена через winbindd, нужно добавить в файл /etc/apparmod.d/local/usr.sbin.cupsd такую строку:
Если Linux введен в домен через SSSD, то необходимо указать расположение его pipe в /etc/apparmod.d/local/usr.sbin.cupsd, добавив туда строку:
К тому же, в случае с SSSD это позволяет пройти аутентификацию (узнать кто заходит), но чтобы пройти авторизацию (узнать есть ли право у пользователя управлять CUPS) необходимо также добавить в файл конфигурации SSSD /etc/sssd/sssd.conf строку:
Это, условно выражаюсь, дает CUPS'у право "заглядывать" в SSSD.
К тому же, в силу того, что CUPS теперь зависит от сервиса SSSD, нужно указать CUPS'у что он должен запускаться после SSSD, иначе он будет отваливаться при включении и его будет необходимо каждый раз включать вручную.
Добавим CUPS'у указание грузиться после SSSD. Отредактируем файл сервиса cups.service по пути /lib/systemd/system/, добавив инструкцию After в секцию [Unit]:
Таким образом CUPS настроен на Basic авторизацию через домен, то есть авторизацию с помощью ввода логина и пароля доменного пользователя с правом администрирования CUPS.
Авторизация может быть настроена и иначе, но принцип (pipe-файл) в целом универсален и есть шанс настроить и для LDAP, FreeIPA и прочих служб каталогов по аналогии.
Установка принтера в Linux
Теперь, когда сервер и клиенские машины Linux настроены, к некоторым из них присоединены принтеры, а также есть машины на Windows, которым и с которых нужно печатать, и вся эта система должна быть стабильной и в случае, если на одном из ПК необходимо заменить принтер, то это не должно повлечь за собой перенастройку доброй половины всех ПК, если не всех. К тому же нужно как можно меньше проблем с драйверами. И это вполне возможно.
Группы принтеров (Classes)
Выше мы описывали подключение Canon-MF4400 c хоста windows1 через протокол LPD. Принтер все еще подключен и его статус можно посмотреть на странице http://cupsserver:631/printers/Canon-MF4400 . А теперь обратим пристальное внимание на главную страницу администрирования cupsserver http://cupsserver:631/admin . На этой странице есть кнопка "Добавить группу" [Add Class]. Нажмем на нее. В ней вы увидите поля "Название", "Описание", "Расположение", аналогичные таким же при настройке обычного принтера. В нижнем же блоке вы увидите список всех подключенных к принтсерверу принтеров. Выберите Canon-MF4400 или любой который хотите, затем в поле "Название" впишите, например printer-windows1, "Описание" и "Расположение" на ваше усмотрение, и нажмите "Добавить группу".
Главная прелесть данного метода в том, что если на любом из ПК заменяется принтер, заменяется сам компьютер, или то и другое сразу, то это никак не влияет на тех, кто был к ним подключен через группу на принтсервере. Единственная настройка производится на принтсервере — к принтсерверу подключается новый принтер, затем из группы, в которой состоял старый принтер, он удаляется, и добавляется новый принтер на замену старому. И никаких дополнительных настроек на любом количестве ПК, только на принтсервере и собственно ПК на котором меняли принтер. Драйвера "IPP Everywhere" и "MS Publisher Imagesetter" содержат большое количество настроек бумаги, печати и т.д., так что нет проблем настроить нужный вид печати через них.
Заключение
Тема слишком обширна, чтобы изложить сколько-нибудь подробно, и даже так статья вышла крайне объемной. Любые уточнения, указания на ошибки, нераскрытые вопросы и советы, данные в комментариях к данной статье, будут приняты во внимание и в случае необходимости включены в статью.
Читайте также: