ОкружениеLink to Окружение

ВопросLink to Вопрос

Как настроить сканирование по сети с использованием сканера, подключенного локально к другому компьютеру?

ОтветLink to Ответ

Настройка сканированияLink to Настройка сканирования

Настройка сервераLink to Настройка сервера

  1. Установить необходимые пакеты:

    sudo apt install sane sane-utils --yes
    CODE
  2. Подключить устройство по USB и убедиться, что оно корректно определяется и работает, например, с помощью утилиты "Сканирование" (fly-scan).
  3. Внести изменения в конфигурационный файл /etc/sane.d/saned.conf, добавив строку с указанием подсети, в которой будет доступно устройство. Например:

    10.0.0.0/24
    CODE

    Для использования только на локальном компьютере указать localhost.

  4. Запустить службу saned:

    sudo systemctl start saned.socket
    CODE
  5. Убедиться, что служба запущена корректно:

    sudo systemctl status saned.socket
    CODE
  6. Включить автоматический запуск службы при загрузке ОС:

    sudo systemctl enable saned.socket
    CODE

Настройка клиентаLink to Настройка клиента

  1. Установить необходимые пакеты:

    sudo apt install sane sane-utils --yes
    CODE
  2. Убедиться, что в конфигурационном файле /etc/sane.d/dll.conf присутствует строка:
    net
    CODE
  3. Внести изменения в конфигурационный файл /etc/sane.d/net.conf, добавив строку c IP-адресом сервера saned. Например:

    10.0.0.100
    CODE

    Для подключения к серверу, развернутому на локальном компьютере, указать значение localhost.

  4. Выполнить поиск устройства:

    scanimage -L
    CODE

    Пример обнаруженного устройства:

    device `net:10.0.0.100:kyocera_wc3_usb:libusb:001:006' is a Kyocera ECOSYS M2235dn
    CODE

    где

    • net — бэкенд, используемый для подключения устройства по сети;

    • kyocera_wc3_usb — бэкенд, используемый для подключения устройства к серверу.

Настройка доступа к сканирующим устройствамLink to Настройка доступа к сканирующим устройствам

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

Настройка сервераLink to Настройка сервера

  1. Перечислить в конфигурационном файле /etc/sane.d/saned.users учетные данные для доступа к бэкенду в следующем формате:
    user:password:backend
    CODE
    где
    • <user> — имя пользователя;
    • <password> — пароль пользователя; 
    • <backend> — бэкенд локально подключенного устройства. Например:
      ivanov:12345678:kyocera_wc3_usb
      CODE
  2. Перезапустить службу saned:
    sudo systemctl reload saned.socket
    CODE

Настройка клиентаLink to Настройка клиента

Со стороны клиента не требуется дополнительных настроек. При выполнении сканирования на устройстве с сервера saned будет выполнен запрос учетных данных для доступа к бэкенду устройства. Например:

  • в консольном фронтенде scanimage:
    scanimage -d 'net:10.0.12.47:kyocera_wc3_usb:libusb:001:002' --format=jpeg > scan.jpeg
    Authentication required for resource net:10.0.12.47:kyocera_wc3_usb. Enter username:
    CODE
  • через утилиту "Сканирование" ( fly-scan ):

Авторизацию можно автоматизировать, указав учетные данные на клиентской стороне в файле, расположенном в пользовательском каталоге /home/<username>/.sane/pass. По умолчанию файл не существует:

  1. Создать каталог:
    mkdir -p ~/.sane
    CODE
  2. Создать файл ~/.sane/pass со следующим содержимым:
    user:password:backend
    CODE
    где
    • <user> — имя пользователя;
    • <password> — пароль пользователя;
    • <backend> — имя устройства (DeviceURI) в формате <net:saned_server:backend_name>. Например:
      ivanov:12345678:net:10.0.12.47:kyocera_wc3_usb
      CODE
  3. Установить права на файл (для ограничения доступа к незашифрованным данным для всех пользователей, кроме владельца):
    chmod 0600 ~/.sane/pass
    CODE
  4. Использовать параметр --accept-md5-only для безопасной передачи учетных данных по сети от клиента к серверу. Например:
    scanimage -d 'net:10.0.12.47:kyocera_wc3_usb:libusb:001:002' --accept-md5-only --format=jpeg > scan.jpeg
    CODE

Служба saned не поддерживает одновременное использование несколькими клиентами одного устройства в один момент. Подобное событие будет сопровождаться информационными сообщениями вида:

окт 03 10:42:15 alse181 systemd[1]: saned.socket: Too many incoming connections (1), dropping connection.
CODE