目標\問題
目的は、エラーメッセージを克服してCUPSテストページを印刷することです。
「BrotherPrinter」プリンタが見つかりません。
エラーメッセージの根本原因を特定できるテストは何ですか?ネットワーク上のプリンタを「認識」できるかどうかを確認するためにカップで実行できるPingに似たテストはありますか?
背景
投稿の下部に表示されるエラーメッセージのスクリーンショット
Raspbian Buster(OSMC)のRaspberry Pi 3B +にインストールされているCUPS Raspberry piは、USB経由でプリンタに接続されていません。
CUPSのインストール/設定
sudo apt install cups
sudo usermod -a -G lpadmin osmc
sudo cupsctl --remote-any
sudo systemctl restart cups
観察結果
テスト結果を入手
osmc@osmc:~$ はgetent hosts BrotherPrinter
何も返しません。
osmc@osmc:~$getent hosts BrotherPrinter.local
戻り値:
192.168.8.101 BrotherPrinter.local
Brother HL2280DWはCUPSで構成されています。カップリターン:
現在の接続: lpd://BrotherPrinter/BINARY_P1
BrotherPrinter.local ping が正常に返されます。
ping BrotherPrinter.local
PING BrotherPrinter.local (192.168.8.101): 56 data bytes
64 bytes from 192.168.8.101: seq=0 ttl=255 time=3.895 ms
ベストアンサー1
CUPS では「BrotherPrinter」が見つからないと表示されますが、ping
コマンドは「BrotherPrinter.local」から応答を取得できます。
それでは、「BrotherPrinter」と「BrotherPrinter.local」は異なると見なすことができますか?
テスト1:ホスト名の確認
テストするには、次の2つのコマンドを使用します。
getent hosts BrotherPrinter
getent hosts BrotherPrinter.local
別の回答を得ると、ホスト名解決に問題があるはずです。
CUPSのプリンタ接続URLを変更すると、この問題を解決できますlpd://BrotherPrinter.local/BINARY_P1
。
または、システム内のすべてのプログラムがmDNSを使用してドメイン部分なしですべてのホスト名を解決するようにしたい場合mdns4
。hosts:
/etc/nsswitch.conf
(getent hosts
DNSサーバー接続が含まれている場合と含まれていない可能性がある構成済みの通常の手順とまったく同じことを実行して、ホスト名解決をテストします。nslookup
コマンドは、DNSサーバーに明示的に接続するか、類似またはdig
特殊なDNSテストツールです。)
.local
マルチキャストDNS(mDNS)で使用するために予約されている特別なドメインサフィックス。ファイルhosts:
の行に or が/etc/nsswitch.conf
含まれているが or が含まれていない場合は、接尾辞が使用されている場合にのみ mDNS を使用してホスト名を解決します。サフィックスのない名前は通常のDNSサーバーによって照会されます。mdns_minimal
mdns4_minimal
mdns
mdns4
.local
.local
ルーターまたはインターネットサービスプロバイダの一般的なDNSサーバーに要求すると、グローバル.local
インターネットにはそのようなドメインがまったく存在しないという信頼できるデータが返される可能性が高くなります。ドメイン名は、マルチキャストDNSを使用してローカルネットワークセグメントで解決する必要があるためです.local
。パブリックDNSサーバーに接続する代わりに。
テスト2:lpd://接続
両方の名前が同じ正しいIPアドレス(コマンドに応じて192.168.8.101)で解決された場合、BrotherPrinter
問題は別の場所にあります。次のステップは、使用することを選択した実際の印刷プロトコルとの接続をテストすることです。ここでは、接続URLタイプを使用してCUPSを設定しました。これは、CUPSがTCPポート#515を使用してプリンタに接続しようとすることを意味します。BrotherPrinter.local
ping
lpd://
指定されたポートへのTCP接続を確立し、デフォルトのTCP接続が正常に確立されたかどうかを示すプログラムを使用してこれをテストできます。このタイプのテストでは、telnet
netcat( ) などのコマンドがよくnc
使用されます。
ホスト名解決の追加変数を削除するには、まずプリンタのIPアドレスを使用してテストできます。
telnet 192.168.8.101 515
または
nc -v 192.168.8.101 515
telnet
コマンドが「接続済み」を報告したり、「192.168.8.101ポート515(tcp)に接続成功!」などのメッセージが表示された場合は、nc
LPDプロトコル用のTCPポートに接続したときにプリンタが応答しています。どちらのコマンドもCtrl+を押して接続が切断されるまで、プリンタの接続を維持しますC。
同様のエラーメッセージでコマンドがすぐに終了した場合、Connection refused
プリンタはLPDプロトコル接続を許可しません。対応する印刷プロトコルをサポートしていないか、プリンタ設定でサポートが無効になっている可能性があります。
コマンドが一時的に中断され、最終的にエラーメッセージでConnection timed out
終了する場合、最も一般的な原因は、ファイアウォールがシステムからプリンタに転送されるTCPパケット、またはプリンタからシステムに転送されるTCP応答パケット、またはその両方をブロックしているためです。 。 。 (ファイアウォールは通常、エラーメッセージと一緒に接続を即座に終了させるエラー応答を送信しません。ファイアウォールConnection refused
は単にパケットを停止し、接続がタイムアウトするようにします。)