1

У меня есть сервер чашек, работающий на Ubuntu 9.10 в моей домашней сети. Прямо сейчас я могу получить к нему доступ в 192.168.1.101:631 , но когда я пытаюсь получить к нему доступ по адресу myservername.local:631 , я получаю 400 Bad Request неверных запросов . Вот соответствующий раздел из моего текущего cupsd.conf:

ServerName 192.168.1.101

# Only listen for connections from the local machine.
Listen localhost:631
Listen /var/run/cups/cups.sock

# any of the below 'Listen' directives all yield the same result
Listen 192.168.1.101:631
#Listen *:631
#Listen myservername.local:631

# Show shared printers on the local network.
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseLocalProtocols CUPS dnssd
BrowseAddress 192.168.1.255

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Restrict access to the server...
<Location />
  Order deny,allow
  Deny from All
  Allow from 127.0.0.1
  Allow from 192.168.1.*
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order deny,allow
  Deny from All
  #Allow from 127.0.0.1
  #Allow from 192.168.1.*
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order deny,allow
  Deny from All
  #Allow from 127.0.0.1
  #Allow from 192.168.1.*
</Location>

Я получаю следующее в /var/log/cups/error_log:

E [03/Jan/2010: 18: 33: 41 -0600] Запрос от «192.168.1.100» с использованием недопустимого поля Host: myservername.local: 631

Что мне нужно сделать, чтобы получить доступ к серверу cups по адресу 192.168.1.101:631 и myservername.local:631?

5 ответов5

3

Начиная с Кубка 1.3.10, сервер не пытается искать свое имя хоста при запуске. Старое поведение можно восстановить, добавив

HostNameLookups on

В ваш файл cupsd.conf. Дополнительная информация доступна в этом отчете об ошибках Gentoo, а также в заметках о выпуске CUPS 1.3.10.

Вы также можете обратиться к директивам конфигурации ServerName и ServerAlias . Смотрите man-страницу (man cupsd.conf или доступна онлайн здесь) для получения дополнительной информации.

2

Исходя из вашего первоначального вопроса, вы, возможно, попробовали (среди прочего) вариант cupsd.conf содержащий следующие утверждения:

ServerName 192.168.1.101

# Only listen for connections from the local machine.
Listen localhost:631
Listen /var/run/cups/cups.sock

# any of the below 'Listen' directives all yield the same result
#Listen 192.168.1.101:631
Listen *:631
#Listen myservername.local:631

Этот, безусловно, НЕ сработает и, вероятно, предотвратит запуск демона cupsd . Потому что оператор Listen localhost:631 свяжет его с сокетом 127.0.0.1:631 . Через несколько миллисекунд после запуска оператор Listen *:631 запросил бы привязку ко всем доступным сокетам на порту 631: то есть, в вашем случае, как минимум 127.0.0.1:631 (снова) и 192.168.1.101:631 . При попытке связать второй раз с 127.0.0.1:631 , cupsd обнаружит, что сокет уже занят, зарегистрирует ошибку и завершит работу.

Урок: Если вы используете несколько директив Listen: ... в cupsd.conf , убедитесь, что они не перекрываются.

1

это преднамеренное поведение, когда CUPS отклоняет запросы, адресованные полному доменному имени хоста при получении через локальный интерфейс обратной связи.

Решение: не разрешайте полное доменное имя хоста разрешать до 127.0.0.1, а вместо этого используйте правильный внешний IP-адрес для этого полного доменного имени.

1

Включение печати с использованием CUPS с Mac - Как мой Mac теперь печатает на принтере, подключенном к машине с Ubuntu 9.10!

После МНОГО ошибок, я выполнил эти шаги, и принтер, наконец, начал работать, используя CUPS и настройки выше. Как относительный нуб к Ubuntu и Linux, я не знаю, какие из этих шагов были волшебными, которые работали. Вполне вероятно, что некоторые из этих шагов можно изменить или пропустить, но они сработали для меня и, надеюсь, также для вас.

Принтер, подключенный к параллельному порту на компьютере с Linux, был установлен, запущен и настроен для совместного использования по локальной сети из CUPS (http://localhost:631, введенный в адресную строку firefox).

На машине Linux я запустил ifconfig из приложения терминала. узнать локальный IP-адрес (начинается с 192.168.xx.x) (у вашего xx.x будут разные номера).

В строке местоположения программы Mac Safari я перешел по URL-адресу CUPS-порта Linux-машины 631 (192.168.xx.x:631), где xx.x - это числа для локального адреса, обнаруженного с помощью ifconfig выше.

Это подняло систему CUPS на машине Linux (которая отображалась на экране машины Mac).

Затем я перешел на вкладку принтеры на компьютере с Linux (через Safari на Mac) и скопировал местоположение принтера в буфер обмена (http://192.168.xx.x:631/printers/Hewlett-Packard-HP-LaserJet -1100).

Затем я открыл порт 631 на компьютере Mac (http://localhost:631), который вызывает систему CUPS на Mac. (Если он не запускает систему Mac CUPS, посмотрите в другом месте, чтобы выяснить это).

Я пошел, чтобы добавить принтер в системе Mac CUPS.

На Mac я дал добавленному принтеру имя HP_LaserJet_1100 и «вырезал и вставил местоположение в поля местоположения и описания.

Для устройства я использовал IPP или протокол интернет-печати (http).

Для Device URI я снова вставил местоположение, скопированное с машины Linux.

Я выбрал подходящую марку и модель для водителя на следующем экране.

Работал! Надеюсь, это сэкономит кому-то еще час или два, которые понадобились мне, чтобы заправить иглу.

0

Следующие настройки файла cupsd.conf позволили мне печатать, используя либо IP, либо имя хоста сервера cups:

ServerName myservername
ServerAlias *

# Only listen for connections from the local machine.
Listen localhost:631
Listen /var/run/cups/cups.sock
Listen myservername.local:631

# Show shared printers on the local network.
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseLocalProtocols CUPS dnssd
BrowseAddress 192.168.1.255

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Restrict access to the server...
<Location />
  Order deny,allow
  Deny from All
  Allow from 127.0.0.1
  Allow from 192.168.1.*
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order deny,allow
  Deny from All
  #Allow from 127.0.0.1
  #Allow from 192.168.1.*
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order deny,allow
  Deny from All
  #Allow from 127.0.0.1
  #Allow from 192.168.1.*
</Location>

по-видимому, я пропустил ServerAlias *

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .