web-dev-qa-db-ja.com

ubuntu 9.10カップサーバーで400の不正なリクエストを受け取るのはなぜですか?

ホームネットワークのubuntu9.10でcupsサーバーを実行しています。現在、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」からのリクエスト:フィールド「myservername.local:631」

192.168.1.101:631myservername.local:631の両方でcupsサーバーにアクセスできるようにするには、何をする必要がありますか?

1
aaron

Cups 1.3.10以降、サーバーは起動時に自身のホスト名を検索しようとしません。追加することで古い動作を復元できます

HostNameLookups on

あなたのcupsd.confファイルに。詳細については、 Gentooバグレポート および CUPS 1.3.10リリースノート を参照してください。

ServerNameおよびServerAlias構成ディレクティブを調べることもできます。マンページを参照してください(man cupsd.confまたはオンラインで入手可能 ここ )詳細については。

3

最初の質問から、次のステートメントを含む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

これは確かに[〜#〜] not [〜#〜]動作し、おそらく、 cupsdデーモンの起動から。なぜなら、Listen localhost:631ステートメントはそれを127.0.0.1:631ソケットにバインドしているからです。起動の数ミリ秒後、Listen *:631ステートメントはポート631で使用可能なすべてのソケットへのバインドを要求します。つまり、あなたの場合、少なくとも127.0.0.1:631(再び)と192.168.1.101:6312回目127.0.0.1:631にバインドしようとすると、cupsdはソケットが占有されていることを検出しますすでに、エラーをログに記録して終了します。

レッスン:Listen: ...で複数のcupsd.confディレクティブを使用する場合は、重複がないことを確認してください。

2
Kurt Pfeifle

ローカルループバックインターフェイスを介して受信されたときに、CUPSがホストのFQDNにアドレス指定された要求を拒否するのは意図的な動作です。

解決策:ホストのFQDNを127.0.0.1に解決せず、代わりにそのFQDNの正しい外部IPアドレスに解決します。

1
user30553

MacからCUPSを使用して印刷を有効にする– Ubuntu 9.10を実行しているマシンに接続されたプリンターにMacを印刷する方法!

多くのミスステップの後、私はこれらのステップに従い、プリンターはついにCUPSと上記のセットアップを使用して動作を開始しました。 UbuntuとLinuxの相対的な初心者として、私はこれらのステップのどれがうまくいった魔法のステップであったかわかりません。これらの手順の一部は変更または省略できる可能性がありますが、私にとって、そしてうまくいけば、あなたにとってもうまくいきました。

Linuxマシンのパラレルポートに接続されたプリンターがインストールされ、実行され、CUPSからローカルネットワーク経由で共有されるように設定されました( http:// localhost:631 Firefoxのロケーションバーに入力されました)。

Linuxマシンで、ターミナルアプリからifconfigを実行しました。ローカルIPアドレス(192.168.xx.xで始まる)を検出します(xx.xは異なる番号になります)。

MacのSafariプログラムのロケーションバーから、LinuxマシンのCUPSポート631(192.168.xx.x:631)のURLに移動しました。xx.xは、上記のifconfigを使用して検出されたローカルアドレスの番号です。

これにより、Linuxマシン(Macマシンの画面に表示されていた)でCUPSシステムが起動しました。

次に、Linuxマシンの[プリンター]タブに移動し(Macのサファリ経由)、プリンターの場所をクリップボードにコピーしました( http://192.168.xx.x:631/printers/Hewlett-Packard -HP-LaserJet-11 )。

次に、Macマシンでポート631を開き( http:// localhost:631 )、MacでCUPSシステムを起動します。 (Mac CUPSシステムが起動しない場合は、他の場所を調べてこれを見つけてください)。

MacCUPSシステムのAddPrinterに行きました。

Macでは、追加したプリンターにHP_LaserJet_1100という名前を付け、「場所を切り取って、場所と説明の両方のフィールドに貼り付けました。

デバイスには、IPPまたはインターネット印刷プロトコル(http)を使用しました。

デバイスURIについては、Linuxマシンからコピーした場所をもう一度貼り付けました。

次の画面で、ドライバーに適したメーカーとモデルを選択しました。

働いた!うまくいけば、これは私がその針を通すのにかかった1、2時間他の誰かを救うでしょう。

1
Charlie

次のcupsd.confファイル設定により、cupsサーバーのIPまたはホスト名を使用して印刷できました。

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 *行がありませんでした

0
aaron