CUPS @LOCAL значение
Я получил две машины. Один с CUPS 1.5.0, а другой с CUPS 1.6.1. Две машины находятся в одной локальной сети. Я хочу полное обнаружение принтеров в сети. Если я запускаю следующую команду:
CUPS_DEBUG_LEVEL=2 /usr/lib/cups/backend/snmp 2>&1
на обеих машинах я получаю разные результаты. Результат с CUPS 1.5.0 - это результат, который я хочу получить от другой машины с CUPS 1.6.1.
Я понял проблему! Существует переменная с именем @LOCAL
в кубках. Верхняя команда равна:
CUPS_DEBUG_LEVEL=2 /usr/lib/cups/backend/snmp @LOCAL 2>&1
Проблема в том, что во втором случае (CUPS 1.6.1) значение @LOCAL
это локальный IP(192.168.3.69) машины вместо широковещательной (192.168.3.255).
Если я запускаю следующую команду на машине два, все работает отлично:
CUPS_DEBUG_LEVEL=2 /usr/lib/cups/backend/snmp 192.168.3.255 2>&1
Пожалуйста, объясните мне, как я могу настроить значение @LOCAL
переменная. Или почему CUPS 1.5.0 хорошо настраивает его при установке, а 1.6.1 - нет? (Я ничего не делал после установки, и все работало отлично)
1 ответ
Первый...
... давайте выясним, что @LOCAL
средства:
@LOCAL
Строка не совсем переменная - в контексте конфигурации CUPS (/etc/cups/cupsd.conf) она называется макросом. Есть еще макросы, которые можно использовать: @IF
, @GROUP
, @ACL
, @OWNER
а также @SYSTEM
,
@LOCAL
макрос был введен в CUPS с версией 1.1.15. Соответствующая запись CHANGELOG гласит:
- The Allow, Deny, BrowseAllow, BrowseDeny, and BrowseAddress directives now support the network interface names "@LOCAL" and "@IF(name)" for access control and browsing based on the current interface addresses instead of fixed names or IP addresses.
Другими словами: перед его внедрением в кодовую базу CUPS вам пришлось жестко закодировать текущие IP-адреса хоста в cupsd.conf
, После этого у вас была возможность просто написать @LOCAL
или же @IF(eth0)
или же @IF(wlan1)
в cupsd.conf
и CUPS будет использовать текущий IP-адрес (все локальные IP-адреса, если поле имеет несколько!), даже если он изменился. (Адреса для соединений PPP/dialup не считаются локальными IP-адресами...)
Во-вторых...
... давайте посмотрим, почему вы можете увидеть различия:
Без доступа к вашим полным CUPS и конфигурации сетевых устройств обеих ваших машин невозможно ответить на этот вопрос.
Может случиться так, что один сервер имеет больше сетевых интерфейсов и / или больше разных IP-адресов, чем другой (например, при использовании eth0:1
трюк с использованием дополнительного виртуального сетевого интерфейса).
Возможно, вы также наткнулись на ошибку в одном из двух воплощений CUPS ваших машин.