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

97 lines
6.6 KiB
Markdown

---
type: tech
topic: print
tags: [print, printer, samsung, cups, macos]
created: 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.conf``Listen 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:**
```yaml
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:
```bash
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».