Проблема
В офисе со смешанным парком устройств (старые USB принтеры, современные сетевые МФУ, ноутбуки на Windows, Linux и macOS) организация централизованной печати превращается в головную боль. Каждый принтер требует отдельной настройки на каждом компьютере. Драйверы для разных ОС несовместимы. При замене или перемещении устройства приходится перенастраивать всех пользователей. Без единой точки управления печатью поддержка превращается в бесконечную рутину. «У меня не печатает», «принтер не найден», «документ ушёл в неизвестном направлении».
Выход это выделенный сервер печати на Linux с системой CUPS (Common UNIX Printing System). Он принимает задания от любых устройства в сети и направляет их на нужные принтеры, избавляя от необходимости настраивать каждый клиент отдельно.
Решение
CUPS (Common UNIX Printing System) это стандартный менеджер печати в Linux, который также поддерживает клиентов Windows, macOS и мобильных устройств по протоколам IPP и SMB/CIFS. Он позволяет централизованно управлять очередями печати, разграничивать доступ и вести журнал заданий. Для Windows клиентов, у которых нет встроенной поддержки IPP, потребуется Samba. Она сделает CUPS принтеры видимыми как обычные сетевые принтеры Windows.
В этой статье мы настроим на Ubuntu Server 24.04 LTS следующие компоненты.
Установку и базовую настройку CUPS.
Веб интерфейс для удалённого управления принтерами.
Подключение принтеров по USB и по сети.
Расшаривание принтеров для Windows клиентов через Samba.
Управление драйверами и устранение типичных проблем.
Вот пошаговая инструкция, как развернуть CUPS.
1. Предварительные требования
Убедитесь, что сервер соответствует минимальным требованиям.
Ubuntu Server 24.04 LTS (или Debian 12) с правами суперпользователя.
Постоянный (статический) IP адрес в локальной сети.
Открытый порт TCP 631 для CUPS.
Не менее 2 ГБ ОЗУ и 10 ГБ свободного места на диске.
2. Установка CUPS
Подключаемся к серверу и устанавливаем пакеты.
text
sudo apt update
sudo apt install cups cups-client cups-filters cups-ipp-utils system-config-printer -y
3. Настройка CUPS
После установки нужно разрешить доступ к веб интерфейсу из локальной сети и настроить права администраторов. CUPS управляется через веб интерфейс на порту 631.
3.1. Разрешаем удалённое управление и печать
По умолчанию CUPS принимает команды только с локального хоста. Чтобы разрешить доступ с других компьютеров, отредактируйте /etc/cups/cupsd.conf.
text
sudo nano /etc/cups/cupsd.conf
Найдите строку Listen localhost:631 и измените её на.
text
Listen 0.0.0.0:631
Если нужен доступ только из определённой подсети, укажите её адрес. Добавьте разрешения для локальной сети.
text
<Location />
Order allow,deny
Allow localhost
Allow 192.168.1.0/24
</Location>
<Location /admin>
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
Allow 192.168.1.0/24
</Location>
Сохраните изменения и перезапустите службу.
text
sudo systemctl restart cups
3.2. Добавление пользователя в группу администраторов
Для управления принтерами через веб интерфейс пользователь должен состоять в группе lpadmin.
text
sudo usermod -a -G lpadmin $USER
4. Настройка брандмауэра
Открываем порт 631 для CUPS и, опционально, 5353 для Avahi (автообнаружение принтеров).
text
sudo ufw allow 631/tcp
sudo ufw allow 5353/udp
sudo ufw reload
5. Добавление принтеров через веб интерфейс
Откройте браузер и перейдите по адресу http://<IP-адрес_сервера>:631. Перейдите во вкладку Administration и нажмите Add Printer.
Система запросит логин и пароль пользователя, входящего в группу lpadmin. Далее вы увидите список доступных принтеров.
Локальные USB принтеры отобразятся автоматически, если подключены напрямую.
Сетевые принтеры можно найти через «Find Network Printer» или добавить вручную, указав протокол и IP адрес (например, ipp://192.168.1.50:631/ipp/port1).
Выбрав принтер, укажите его имя, описание и местоположение. CUPS попытается подобрать драйвер автоматически. Если автоматический выбор не подходит, выберите PPD файл или укажите производителя и модель из списка. После добавления принтера обязательно распечатайте тестовую страницу.
6. Расшаривание принтеров для Windows клиентов через Samba
Windows не поддерживает IPP «из коробки», но может подключаться к принтерам через протокол SMB и CIFS. Для этого настроим Samba.
6.1. Установка и настройка Samba
text
sudo apt install samba smbclient -y
Создайте резервную копию конфигурационного файла и отредактируйте его.
text
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo nano /etc/samba/smb.conf
В секции [global] задайте имя рабочей группы (должно совпадать с настройками ваших Windows компьютеров) и включите расшаривание принтеров.
text
[global]
workgroup = WORKGROUP
server string = Print Server
security = user
map to guest = Bad User
load printers = yes
printing = cups
printcap name = cups
[printers]
comment = All Printers
path = /var/spool/samba
browseable = yes
guest ok = yes
writable = no
printable = yes
printer admin = root, @lpadmin
Сохраните файл, перезапустите службы и проверьте доступность принтеров.
text
sudo systemctl restart smbd nmbd
smbclient -L localhost -N
6.2. Подключение принтера на Windows клиенте
На компьютере с Windows откройте «Панель управления» → «Устройства и принтеры» → «Добавление принтера». Выберите «Искомый принтер отсутствует в списке» → «Выбрать общий принтер по имени» и введите UNC путь: \\<IP-адрес_сервера>\<имя_принтера>. Если принтер не отображается, проверьте сетевую доступность сервера и настройки Samba.
7. Управление драйверами
Для корректной работы принтеров, особенно МФУ, часто требуются специальные драйверы. Самый простой способ получить их установить пакеты производителя.
Для принтеров HP.
text
sudo apt install hplip
Для принтеров Epson.
text
sudo apt install printer-driver-escpr
Для принтеров Brother. Скачайте драйверы с официального сайта.
Универсальные драйверы. Если точный драйвер отсутствует, попробуйте драйвер Generic или Text Only. Они дают базовую функциональность, но не поддерживают цветную печать и сканирование.
8. Мониторинг и ведение логов
CUPS хранит все задания в веб интерфейсе (вкладка Jobs), а также в системных логах.
text
sudo journalctl -u cups -f
sudo tail -f /var/log/cups/error_log
Для отслеживания успешных и неудачных печатей можно включить подробное логирование через веб интерфейс (Server → Settings → Save debugging information).
Устранение распространённых проблем
ПроблемаВероятная причинаРешениеНе удаётся войти в веб интерфейсПользователь не входит в группу lpadminДобавьте пользователя в группу и перезапустите сеанс: sudo usermod -a -G lpadmin $USERПринтер не отображается в WindowsSamba не настроена или служба не запущенаПроверьте sudo systemctl status smbd. Убедитесь, что в smb.conf разрешён гостевой доступWindows запрашивает пароль при подключенииВ smb.conf отключён гостевой доступИзмените map to guest = Bad User и guest ok = yes в секции [printers]Ошибка «Filter failed» при печатиНеподходящий драйвер или отсутствует PPD файлСмените драйвер принтера в веб интерфейсе CUPS. Попробуйте универсальный драйверПринтер не добавляется через веб интерфейсНеправильный URI или недоступность принтера по сетиПроверьте подключение к принтеру: ping <IP-адрес> или telnet <IP-адрес> 9100Печать зависает в очередиНеисправность принтера или отсутствие бумагиПроверьте статус принтера через веб интерфейс. Удалите зависшее задание и очистите очередьНет звука при завершении печатиНе настроены уведомления CUPSВ веб интерфейсе: Server → Settings → Notifications
Итог
Мы развернули централизованный принт-сервер на базе CUPS, который позволяет управлять всеми принтерами и МФУ офиса из единой точки. Настройка принт-сервера на Linux избавляет от необходимости настраивать каждое устройство на каждом компьютере. Централизует учёт и контроль печати. Решает проблему совместимости между разными ОС.
При подключении Windows клиентов через Samba сотрудники могут отправлять задания на печать так же, как если бы принтер был подключён напрямую. А благодаря веб интерфейсу вы можете добавлять новые принтеры и отслеживать состояние очередей из любой точки сети