ホームネットワークの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:631
とmyservername.local:631
の両方でcupsサーバーにアクセスできるようにするには、何をする必要がありますか?
Cups 1.3.10以降、サーバーは起動時に自身のホスト名を検索しようとしません。追加することで古い動作を復元できます
HostNameLookups on
あなたのcupsd.confファイルに。詳細については、 Gentooバグレポート および CUPS 1.3.10リリースノート を参照してください。
ServerName
およびServerAlias
構成ディレクティブを調べることもできます。マンページを参照してください(man cupsd.conf
またはオンラインで入手可能 ここ )詳細については。
最初の質問から、次のステートメントを含む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:631
。 2回目を127.0.0.1:631
にバインドしようとすると、cupsd
はソケットが占有されていることを検出しますすでに、エラーをログに記録して終了します。
レッスン:Listen: ...
で複数のcupsd.conf
ディレクティブを使用する場合は、重複がないことを確認してください。
ローカルループバックインターフェイスを介して受信されたときに、CUPSがホストのFQDNにアドレス指定された要求を拒否するのは意図的な動作です。
解決策:ホストのFQDNを127.0.0.1に解決せず、代わりにそのFQDNの正しい外部IPアドレスに解決します。
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時間他の誰かを救うでしょう。
次の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 *
行がありませんでした