Warum bekomme ich 400 Bad Request in Ubuntu 9.10 Cups Server?

10390
aaron

Ich habe einen Cups-Server, der auf Ubuntu 9.10 in meinem Heimnetzwerk ausgeführt wird. Im Moment kann ich darauf zugreifen 192.168.1.101:631, aber wenn ich versuche, auf zuzugreifen myservername.local:631, bekomme ich eine 400 Bad Request. Hier ist der relevante Abschnitt von meinem aktuellen 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> 

Ich bekomme folgendes in /var/log/cups/error_log:

E [03 / Jan / 2010: 18: 33: 41 -0600] Anforderung von "192.168.1.100" unter Verwendung eines ungültigen Hosts: Feld "myservername.local: 631"

Was benötige ich, um sowohl den Tassen - Server zugreifen zu können, zu tun, 192.168.1.101:631und myservername.local:631?

1
Nun, es ist ein alter Beitrag, ich hoffe, Sie haben gelernt, die Kapitale und das "Ich" seitdem richtig zu verwenden. peterh vor 7 Jahren 0

5 Antworten auf die Frage

3
Adam Luchjenbroers

Ab Cups 1.3.10 versucht der Server nicht, beim Start nach seinem eigenen Hostnamen zu suchen. Das alte Verhalten kann durch Hinzufügen wiederhergestellt werden

HostNameLookups on 

In Ihre cupsd.conf-Datei. Weitere Informationen finden Sie in diesem Gentoo- Fehlerbericht sowie in den Versionshinweisen zu CUPS 1.3.10 .

Möglicherweise möchten Sie auch die Direktiven ServerNameund ServerAliasconfig betrachten. Weitere Informationen finden Sie auf der Manpage ( man cupsd.confoder hier online verfügbar ).

Nein, ich habe versucht, Listen zu *: 631 und einige andere Einstellungen einzustellen, aber keine hat funktioniert aaron vor 14 Jahren 0
Wenn Sie "ping myservername.local" ausführen, kann die IP-Adresse dadurch aufgelöst werden? Adam Luchjenbroers vor 14 Jahren 0
ja, es pingt bei myservername.local, und ich weiß, dass der cups-Server die Anfrage b / c erhält, die im Protokoll angezeigt wird (siehe die Fehlermeldung, die ich der obigen Frage hinzugefügt habe) aaron vor 14 Jahren 0
Aha, seit Cups 1.3.10 versucht es nicht mehr, standardmäßig nach dem lokalen Hostnamen zu suchen. Fügen Sie Ihrer Konfigurationsdatei `HostNameLookups On` hinzu, um das alte Verhalten wieder herzustellen. (http://bugs.gentoo.org/show_bug.cgi?id=266678) Adam Luchjenbroers vor 14 Jahren 0
leider funktioniert das auch nicht. Interessanterweise, wenn ich HostNameLookups mit `Listen *: 631` hinzufüge, reagiert der Server nicht einmal, jedoch kann ich HostNameLookups mit` Listen myservername.local: 631` haben, und er verhält sich wie zuvor aaron vor 14 Jahren 0
Anscheinend musste ich nur weiter unten in diesem Link lesen, den Sie gepostet haben. Ich musste lediglich 'ServerAlias ​​*' hinzufügen. Danke für die Hilfe! aaron vor 14 Jahren 0
2
Kurt Pfeifle

Aus Ihrer ersten Frage scheint es, als hätten Sie (unter anderem) eine cupsd.confVariante ausprobiert, die folgende Aussagen enthält:

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 

Dieser hat sicherlich NICHT funktioniert und wahrscheinlich den cupsdStart des Daemons verhindert . Weil die Listen localhost:631Anweisung es an den 127.0.0.1:631Socket gebunden hat . Ein paar Millisekunden später beim Start hätte die Listen *:631Anweisung die Bindung an alle verfügbaren Sockets an Port 631 verlangt: in Ihrem Fall mindestens 127.0.0.1:631(wieder) und 192.168.1.101:631. Beim Versuch, zu binden, ein zweites Mal zu 127.0.0.1:631, cupsdwürde die Buchse bereits belegt finden, melden Sie einen Fehler und Ausfahrt.

Lektion: Wenn Sie mehrere Listen: ...Direktiven verwenden cupsd.conf, stellen Sie sicher, dass Sie sich nicht überlappen.

1

Aktivieren des Druckens mit CUPS vom Mac aus - Wie druckt mein Mac jetzt auf einem Drucker, der an einen Computer angeschlossen ist, auf dem Ubuntu 9.10 ausgeführt wird!

Nach vielen Fehltritten folgte ich diesen Schritten und der Drucker begann endlich mit CUPS und dem obigen Setup zu arbeiten. Als relativer Noob zu Ubuntu und Linux weiß ich nicht, welche dieser Schritte die magischen waren. Es ist wahrscheinlich, dass einige dieser Schritte geändert oder weggelassen werden können, aber sie funktionierten für mich und hoffentlich auch für Sie.

An den parallelen Anschluss des Linux-Computers angeschlossener Drucker wurde installiert, ausgeführt und über das lokale Netzwerk von CUPS aus freigegeben ( http: // localhost: 631 in die Firefox-Adressleiste eingegeben).

Auf dem Linux-Rechner habe ich ifconfig von der Terminal-App ausgeführt. um die lokale IP-Adresse zu ermitteln (beginnt mit 192.168.xx.x) (Ihre xx.x wird unterschiedliche Nummern haben).

Von der Mac-Safari-Programmleiste aus ging ich zur URL des CUPS-Ports 631 der Linux-Maschine (192.168.xx.x: 631), wobei xx.x Zahlen für die lokale Adresse sind, die mithilfe von ifconfig oben ermittelt wurden.

Dadurch wurde das CUPS-System auf dem Linux-Computer (der auf dem Bildschirm des Mac-Computers angezeigt wurde) aufgerufen.

Ich ging dann zur Registerkarte Drucker auf dem Linux-Rechner (durch Safari auf dem Mac) und kopierte den Speicherort des Druckers in die Zwischenablage ( http: //192.168.xx.x: 631 / drucker / Hewlett-Packard-HP-LaserJet) -1100 ).

Ich habe dann Port 631 auf dem Mac-Computer ( http: // localhost: 631 ) geöffnet, wodurch das CUPS-System auf dem Mac angezeigt wird. (Wenn Sie das Mac CUPS-System nicht aufrufen können, suchen Sie an anderer Stelle nach, um dies herauszufinden.)

Ich ging zum Drucker hinzufügen auf dem Mac CUPS-System.

Auf dem Mac gab ich dem hinzugefügten Drucker den Namen HP_LaserJet_1100 und „schnitt die Position aus und fügte sie sowohl in die Position als auch in die Beschreibungsfelder ein.

Für das Gerät habe ich das IPP- oder Internet Printing Protocol (http) verwendet.

Bei der Geräte-URI wurde der von der Linux-Maschine kopierte Speicherort erneut eingefügt.

Auf dem nächsten Bildschirm habe ich die richtige Marke und das richtige Modell für den Fahrer ausgewählt.

Hat funktioniert! Hoffentlich erspart dies jemandem die Zeit, die ich brauchte, um diese Nadel einzufädeln.

1
user30553

it is intentional behaviour that CUPS rejects requests addressed to the FQDN of the host when received over the local loopback interface.

Solution: don't make the FQDN of the host resolve to 127.0.0.1, but instead to the correct external IP address for that FQDN.

Das stimmt nicht Was Sie *** wirklich vermeiden müssen, ist mehrere "Listen ..." - Anweisungen mit *** überlappenden *** Sockets. Was mit CUPS "legal" ist, besteht darin, zwei (oder mehr) separate "Listen ..." - Anweisungen zu haben, eine mit "Listen 127.0.0.1: 631", eine andere mit "Listen 192.168.1.101: 631". Diese überlappen sich nicht. Was sich *** immer überlappen wird, ist die Verwendung von Platzhalteranweisungen wie "Listen *: 631" und das Hinzufügen spezifischer Anweisungen wie "Listen 192.168.1.101: 631". Kurt Pfeifle vor 13 Jahren 0
0
aaron

Die folgenden Einstellungen für die cupsd.conf-Datei erlaubten mir das Drucken entweder mit der IP-Adresse oder dem Hostnamen des Cups-Servers:

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> 

anscheinend habe ich die ServerAlias *Zeile vermisst