Por que eu recebo 400 Bad Request no Ubuntu 9.10 cups server?

1

Eu tenho um servidor cups rodando no Ubuntu 9.10 na minha rede doméstica. No momento, posso acessá-lo em 192.168.1.101:631 , mas quando tento acessá-lo em myservername.local:631 , recebo um 400 Bad Request . Aqui está a seção relevante do meu atual 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>

Eu recebo o seguinte em /var/log/cups/error_log :

E [03/Jan/2010:18:33:41 -0600] Request from "192.168.1.100" using invalid Host: field "myservername.local:631"

O que preciso fazer para acessar o servidor cups em 192.168.1.101:631 e myservername.local:631 ?

    
por aaron 03.01.2010 / 23:29

5 respostas

3

A partir do Cups 1.3.10, o servidor não tenta procurar seu próprio nome de host na inicialização. O comportamento antigo pode ser restaurado adicionando

HostNameLookups on

Para o seu arquivo cupsd.conf. Mais informações estão disponíveis neste Relatório de bugs do Gentoo , bem como no CUPS 1.3.10 Notas de versão .

Você também pode querer examinar as diretivas ServerName e ServerAlias config. Veja a página do manual ( man cupsd.conf ou disponível on-line aqui ) para obter mais informações.

    
por 04.01.2010 / 01:11
2

A partir de sua pergunta inicial, parece que você tentou (entre outros) uma variação em cupsd.conf contendo as seguintes declarações:

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

Este certamente terá NOT funcionando e, provavelmente, terá impedido que o daemon cupsd seja inicializado. Porque, a instrução Listen localhost:631 irá vinculá-lo ao soquete 127.0.0.1:631 . Alguns milissegundos depois em sua inicialização, a instrução Listen *:631 teria solicitado a ligação a todos os soquetes disponíveis na porta 631: ou seja, no seu caso, pelo menos, 127.0.0.1:631 (novamente) e 192.168.1.101:631 . Ao tentar vincular uma segunda vez a 127.0.0.1:631 , cupsd encontraria o soquete ocupado já, registre um erro e saia.

Lição: Se você usar várias diretivas Listen: ... em cupsd.conf , verifique se não há sobreposição.

    
por 01.07.2010 / 11:47
1

Ativando a impressão usando o CUPS do Mac - Como meu Mac agora imprime em uma impressora conectada a uma máquina que executa o Ubuntu 9.10!

Após MUITOS passos errados, eu segui estes passos e a impressora finalmente começou a trabalhar usando o CUPS e a configuração acima. Como um noob relativo ao Ubuntu e ao Linux, não sei quais desses passos foram os mágicos que funcionaram. É provável que algumas dessas etapas possam ser alteradas ou omitidas, mas funcionaram para mim e, espero, também para você.

A impressora conectada à porta paralela da máquina Linux foi instalada, executada e configurada para ser compartilhada na rede local a partir do CUPS ( link digitado a barra de localização do firefox).

Na máquina Linux, executei ifconfig no aplicativo terminal. para descobrir o endereço IP local (começa com 192.168.xx.x) (Seu xx.x será números diferentes).

Na barra de localização do programa Safari do Mac, eu fui para a url da porta CUPS 631 (192.168.xx.x: 631) da máquina Linux, onde xx.x são números para o endereço local descoberto usando ifconfig acima.

Isso trouxe o sistema CUPS na máquina Linux (que foi exibida na tela da máquina Mac).

Eu fui então para a aba de impressoras na máquina Linux (através de safari no Mac) e copiei o local da impressora na área de transferência ( link ).

Eu, então, abri a porta 631 na máquina Mac ( link ), que traz o sistema CUPS no Mac. (Se isso não trouxer o sistema Mac CUPS, procure outro lugar para descobrir isso).

Eu fui para adicionar impressora no sistema Mac CUPS.

No Mac, dei à impressora adicionada um nome de HP_LaserJet_1100 e “recortei e colei o local nos campos de localização e descrição.

Para o dispositivo, usei o protocolo de impressão IPP ou internet (http).

Para o URI do dispositivo, colei novamente o local copiado da máquina Linux.

Selecionei a marca e o modelo adequados para o driver na próxima tela.

Trabalhou! Espero que isso salve outra pessoa a hora ou duas que me levou para enfiar essa agulha.

    
por 26.01.2010 / 06:14
1

é um comportamento intencional que o CUPS rejeita solicitações endereçadas ao FQDN do host quando recebidas por meio do interface de loopback.

Solução: não faça o FQDN do host resolver para 127.0.0.1, mas sim para o endereço IP externo correto para esse FQDN.

    
por 08.03.2010 / 21:05
0

As seguintes configurações do arquivo cupsd.conf permitiram que eu imprimisse usando o IP ou o nome do host do servidor 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>

aparentemente estava faltando a linha ServerAlias *

    
por 04.01.2010 / 05:13