Files
obsidian-vault/personal/tech/mac-print-shared-services.md
T

6.6 KiB

type, topic, tags, created
type topic tags created
tech print
print
printer
samsung
cups
macos
2026-08-26

Печать и общие сервисы (Mac + сеть)

Проверка службы печати 2026-08-26: «не видит принтер с телефона».

Состояние на момент проверки

На Mac (admin, macOS 26.6.1, arm64) в системе зарегистрированы два принтера:

Принтер Способ подключения Статус
Samsung CLX-216x Сетевой ipp://192.168.2.197/printers/Samsung_CLX-216x_Series, драйвер Generic PostScript не pингуется в текущей сети
Samsung M2020 Series (SEC84251974A6B3) AirPrint dnssd://…_ipp._tcp.local., дефолтный, PPD Samsung M2020 Series-AirPrint не отвечает по сети

Системный дефолт: Samsung_M2020_Series__SEC84251974A6B3_ (idle, enabled 2026-07-29).

Ключевые находки

  • CUPS слушает только локально: в /etc/cups/cupsd.confListen localhost:631 + Listen /private/var/run/cupsd. Наружу (по сети, для AirPrint) служба печати НЕ отдаётся.
  • Шеринг печати выключен (SharePrinters в cupsd.conf закомментирован/неактивен; в system_profiler оба принтера Shared: No, System Printer Sharing: No).
  • Порт 631 наружу закрыт: nc -z 192.168.2.197 631 → closed.
  • Сеть Мака — 192.168.6.x (адрес 192.168.6.173, шлюз 192.168.6.1). Принтер прописан в подсети 192.168.2.x.

⚠️ Важное наблюдение (пересечение с TrueNAS)

Адрес 192.168.2.197 — это TrueNAS (truenas_admin, SSH через mallexxx.duckdns.org), НЕ сам принтер. Samsung CLX-216x физически подключён к TrueNAS (USB) и печатается через docker-контейнер cups-splix (драйвер splix). Запись ipp://192.168.2.197/printers/Samsung_CLX-216x_Series в системе Мака — результат обнаружения расшаренной печати TrueNAS на этом адресе.

НаСТОЯЩИЙ ДИАГНОЗ (2026-08-26, подтверждено SSH на TrueNAS)

Корень проблемы: cups-splix контейнер НЕ запущен на TrueNAS.

  • На TrueNAS нет ни одной работающей службы печати: lpstat/cupsd в системе не установлены, порт 631 закрыт (и локально, и снаружи).
  • Ни одного docker-контейнера по печати в docker ps нет (cup/sprint/ipp — пусто). Официальный список контейнеров (docker ps -a): immich(redis/server/postgres), modbus-bridge, mbusd, zigbee2mqtt, webdav, vless-proxy, hermes-taiga, portainer(-mcp), homeassistant, caddy, watchtower, transmission, syncthing, ser2net, rclone, nodered, mosquitto, library, inpxer, inpx-web, gitea, filebrowser. cups-splix отсутствует.
  • Образ cups-splix не собран (docker images | grep cups|splix → пусто).

Конфиг cups-splix (цел, на месте)

Папка /mnt/RED_2TB/docker/cups/: Dockerfile, docker-compose.yml, docker build.txt, data/, cache/, spool/, uld/.

docker-compose.yml:

services:
  cups-splix:
    image: cups-splix
    container_name: cups-splix
    command: ["/usr/sbin/cupsd", "-f"]
    network_mode: host
    privileged: true
    volumes:
      - /dev/bus/usb:/dev/bus/usb
      - /mnt/RED_2TB/docker/cups/data:/etc/cups
      - /mnt/RED_2TB/docker/cups/cache:/var/cache/cups
      - /mnt/RED_2TB/docker/cups/spool:/var/spool/cups
    restart: unless-stopped

Dockerfile (debian:12-slim): ставит cups-daemon cups-client cups-common printer-driver-splix avahi-utils dbus usbutils nano, пользователь cupsadmin:admin (в группе lpadmin), EXPOSE 631, CMD cupsd -f.

Как поднять (из доки, раздел «Сборка»):

cd /mnt/RED_2TB/docker/cups/
docker build -t cups-splix .
docker compose up -d   # или docker run из build.txt
# проверить: порт 631 открылся, принтер подцепился

Почему выпал

.ix-apps вызов docker data-root при пересоздании пула НЕ переносился → образы (=кеш) потеряны, перекачиваются заново. cups-splix — локальная сборка, она не «перекачается», нужно пересобрать. Конфиги целы.

РЕЗОЛЮЦИЯ (2026-08-26, выполнено)

cups-splix поднят, печать восстановлена. Шаги, фактически выполненные на TrueNAS:

cd /mnt/RED_2TB/docker/cups
docker build -t cups-splix .          # образ собран успешно (~225s), splix установлен
docker compose up -d                  # контейнер запущен
docker exec cups-splix lpstat -p -d   # printer Samsung_CLX-216x_Series ... idle, enabled
docker exec cups-splix lpstat -a      # ... accepting requests
nc -z 192.168.2.197 631               # 631 OPEN снаружи
  • Принтер подключён по USB к TrueNAS: usb://Samsung/CLX-216x%20Series?serial=9566BAGQ213134Z.&interface=1 (Bus 002 Device 008, 04e8:3425 Samsung CLX-216x).
  • CUPS-конфиг сохранился в /mnt/RED_2TB/docker/cups/data (это /etc/cups) → принтер прописан и подцепился после рестарта сам.
  • Образ собрался без ошибок → раньше его просто не запускали собирать (не поломка Dockerfile), а потеряли при восстановлении стека вместе с .ix-apps.
  • Порт 631 открыт наружу → печать доступна по сети на 192.168.2.197:631.

Условие для телефона: телефон должен быть в сети 192.168.2.x (той же, что и TrueNAS), чтобы увидеть принтер. Если телефон в другой подсети (напр. 192.168.6.x) — это сетевой вопрос, не печатный.

Полный рецепт на будущее продублирован в truenas-infrastructure.md → раздел «Печать / cups-splix».