CUPS 印刷サーバーの設定および使用
CUPS サーバーとして動作するようにシステムを設定し、プリンター、印刷キュー、印刷環境を管理する
概要
- AirPrint™ および IPP Everywhere™ プリンター
- プリンターアプリケーションを備えたネットワークおよびローカル USB プリンター
- 従来の PostScript Printer Description (PPD) ベースのドライバーを備えたネットワークおよびローカル USB プリンター
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 CUPS のインストールと設定
CUPS を使用してローカルホストから印刷できます。このホストを使用してネットワーク内でプリンターを共有し、プリントサーバーとして機能させることもできます。
手順
cups
パッケージをインストールします。dnf install cups
# dnf install cups
Copy to Clipboard Copied! CUPS をプリントサーバーとして設定する場合は、
/etc/cups/cupsd.conf
ファイルを編集し、次の変更を加えます。CUPS をリモートで設定する場合、またはこのホストをプリントサーバーとして使用する場合は、CUPS がリッスンする IP アドレスとポートを設定します。
Listen 192.0.2.1:631 Listen [2001:db8:1::1]:631
Listen 192.0.2.1:631 Listen [2001:db8:1::1]:631
Copy to Clipboard Copied! デフォルトでは、CUPS は
localhost
インターフェイス (127.0.0.1
および::1
) でのみリッスンします。IPv6 アドレスは角括弧で囲んで指定します。重要信頼できないネットワーク (インターネットなど) からのアクセスを許可するインターフェイスをリッスンするように CUPS を設定しないでください。
<Location/>
ディレクティブで IP 範囲を許可することで、サービスにアクセスできる IP 範囲を設定します。<Location /> Allow from 192.0.2.0/24 Allow from [2001:db8:1::1]/32 Order allow,deny </Location>
<Location /> Allow from 192.0.2.0/24 Allow from [2001:db8:1::1]/32 Order allow,deny </Location>
Copy to Clipboard Copied! <Location /admin>
ディレクティブで、CUPS 管理サービスにアクセスできる IP アドレスと範囲を設定します。<Location /admin> Allow from 192.0.2.15/32 Allow from [2001:db8:1::22]/128 Order allow,deny </Location>
<Location /admin> Allow from 192.0.2.15/32 Allow from [2001:db8:1::22]/128 Order allow,deny </Location>
Copy to Clipboard Copied! この設定では、IP アドレス
192.0.2.15
および2001:db8:1::22
を持つホストのみが管理サービスにアクセスできます。オプション: Web インターフェイスで設定ファイルとログファイルへのアクセスを許可する IP アドレスと範囲を設定します。
<Location /admin/conf> Allow from 192.0.2.15/32 Allow from [2001:db8:1::22]/128 ... </Location> <Location /admin/log> Allow from 192.0.2.15/32 Allow from [2001:db8:1::22]/128 ... </Location>
<Location /admin/conf> Allow from 192.0.2.15/32 Allow from [2001:db8:1::22]/128 ... </Location> <Location /admin/log> Allow from 192.0.2.15/32 Allow from [2001:db8:1::22]/128 ... </Location>
Copy to Clipboard Copied!
firewalld
サービスを実行し、CUPS へのリモートアクセスを設定する場合は、firewalld
で CUPS ポートを開きます。firewall-cmd --permanent --add-port=631/tcp firewall-cmd --reload
# firewall-cmd --permanent --add-port=631/tcp # firewall-cmd --reload
Copy to Clipboard Copied! 複数のインターフェイスを持つホストで CUPS を実行する場合は、必要なネットワークにアクセスを制限することを検討してください。
cups
サービスを有効にして起動します。systemctl enable --now cups
# systemctl enable --now cups
Copy to Clipboard Copied!
検証
ブラウザーを使用して、
http://<hostname>:631
にアクセスします。Web インターフェイスに接続できれば、CUPS は動作しています。Administration
タブなどの一部の機能では、認証と HTTPS 接続が必要であることに注意してください。デフォルトでは、CUPS は HTTPS アクセスに自己署名証明書を使用するため、認証時の接続はセキュアではありません。
第2章 CUPS サーバーでの TLS 暗号化の設定
CUPS は TLS 暗号化接続をサポートしており、デフォルトでは、サービスは認証を必要とするすべてのリクエストに対して暗号化接続を強制します。証明書が設定されていない場合、CUPS は秘密鍵と自己署名証明書を作成します。これで十分なのは、ローカルホスト自体から CUPS にアクセスする場合だけです。ネットワーク経由でセキュアに接続するには、認証局 (CA) によって署名されたサーバー証明書を使用します。
暗号化がない場合や自己署名証明書を使用している場合、中間者 (MITM) 攻撃によって次のような機密データが漏洩する可能性があります。
- Web インターフェイスを使用して CUPS を設定する場合の管理者の認証情報
- ネットワーク経由で印刷ジョブを送信する際の機密データ
前提条件
- CUPS が設定されている。
- 秘密鍵の作成 が完了していて、その秘密鍵に対するサーバー証明書が CA から発行されている。
- 中間証明書をサーバー証明書に追加している (サーバー証明書を検証するために中間証明書が必要な場合)。
- CUPS にはサービスが鍵を読み取るときにパスワードを入力するオプションがないため、秘密鍵はパスワードで保護されません。
証明書の正規名 (
CN
) またはサブジェクト代替名 (SAN) フィールドが、次のいずれかと一致する。- CUPS サーバーの完全修飾ドメイン名 (FQDN)
- DNS によってサーバーの IP アドレスに解決されるエイリアス
- 秘密鍵とサーバー証明書ファイルが、Privacy Enhanced Mail (PEM) 形式を使用している。
- クライアントが CA 証明書を信頼している。
- FIPS モードが有効になっている場合、クライアントは Extended Master Secret (EMS) 拡張機能をサポートしているか、TLS 1.3 を使用している。EMS を使用しない TLS 1.2 接続は失敗します。詳細は、Red Hat ナレッジベースソリューション TLS extension "Extended Master Secret" enforced を参照してください。
手順
/etc/cups/cups-files.conf
ファイルを編集し、次の設定を追加して自己署名証明書の自動作成を無効にします。CreateSelfSignedCerts no
CreateSelfSignedCerts no
Copy to Clipboard Copied! 自己署名証明書と秘密鍵を削除します。
rm /etc/cups/ssl/<hostname>.crt /etc/cups/ssl/<hostname>.key
# rm /etc/cups/ssl/<hostname>.crt /etc/cups/ssl/<hostname>.key
Copy to Clipboard Copied! オプション: サーバーの FQDN を表示します。
hostname -f
# hostname -f server.example.com
Copy to Clipboard Copied! 秘密鍵とサーバー証明書を
/etc/cups/ssl/
ディレクトリーに保存します。次に例を示します。mv /root/server.key /etc/cups/ssl/server.example.com.key mv /root/server.crt /etc/cups/ssl/server.example.com.crt
# mv /root/server.key /etc/cups/ssl/server.example.com.key # mv /root/server.crt /etc/cups/ssl/server.example.com.crt
Copy to Clipboard Copied! 重要CUPS では、秘密鍵に
<fqdn>.key
、サーバー証明書ファイルに<fqdn>.crt
という名前を付ける必要があります。エイリアスを使用する場合は、ファイルに<alias>.key
および<alias>.crt
という名前を付ける必要があります。root
ユーザーのみがこのファイルを読み取ることができるように、秘密鍵にセキュアなパーミッションを設定します。chown root:root /etc/cups/ssl/server.example.com.key chmod 600 /etc/cups/ssl/server.example.com.key
# chown root:root /etc/cups/ssl/server.example.com.key # chmod 600 /etc/cups/ssl/server.example.com.key
Copy to Clipboard Copied! 証明書は、セキュアな接続を確立する前のクライアントとサーバー間の通信の要素であるため、どのクライアントも認証なしで証明書を取得できます。したがって、サーバー証明書ファイルに厳密なパーミッションを設定する必要はありません。
SELinux コンテキストを復元します。
restorecon -Rv /etc/cups/ssl/
# restorecon -Rv /etc/cups/ssl/
Copy to Clipboard Copied! オプション: 証明書の
CN
フィールドと SAN フィールドを表示します。openssl x509 -text -in /etc/cups/ssl/server.example.com.crt
# openssl x509 -text -in /etc/cups/ssl/server.example.com.crt Certificate: Data: ... Subject: CN = server.example.com ... X509v3 extensions: ... X509v3 Subject Alternative Name: DNS:server.example.com ...
Copy to Clipboard Copied! サーバー証明書の
CN
または SAN フィールドにサーバーの FQDN とは異なるエイリアスが含まれている場合は、ServerAlias
パラメーターを/etc/cups/cupsd.conf
ファイルに追加します。ServerAlias alternative_name.example.com
ServerAlias alternative_name.example.com
Copy to Clipboard Copied! この場合、以降の手順で FQDN の代わりに代替名を使用します。
デフォルトでは、CUPS は、Web インターフェイスの
/admin
ページで管理タスクを実行する場合など、タスクで認証が必要な場合にのみ暗号化接続を強制します。CUPS サーバー全体の暗号化を強制するには、
/etc/cups/cupsd.conf
ファイル内のすべての<Location>
ディレクティブにEncryption Required
を追加します。次に例を示します。<Location /> ... Encryption Required </Location>
<Location /> ... Encryption Required </Location>
Copy to Clipboard Copied! CUPS を再起動します。
systemctl restart cups
# systemctl restart cups
Copy to Clipboard Copied!
検証
-
ブラウザーを使用して、
https://<hostname>:631/admin/
にアクセスします。アクセスするには、ブラウザーが CA 証明書を信頼している必要があります。接続が成功すれば、CUPS で TLS 暗号化が正しく設定されています。 -
サーバー全体の暗号化を必須とするように設定した場合は、
http://<hostname>:631/
にアクセスします。この場合、CUPS はUpgrade Required
というエラーを返します。
トラブルシューティング
cups
サービスのsystemd
ジャーナルエントリーを表示します。journalctl -u cups
# journalctl -u cups
Copy to Clipboard Copied! HTTPS プロトコルを使用した Web インターフェイスへの接続に失敗した後、ジャーナルに
Unable to encrypt connection: Error while reading file
というエラーが含まれている場合は、秘密鍵とサーバー証明書ファイルの名前を確認します。
第3章 Web インターフェイスで CUPS サーバーを管理するための管理権限の付与
デフォルトでは、sys
、root
、および wheel
グループのメンバーは、Web インターフェイスで管理タスクを実行できます。しかし、他の特定のサービスもこれらのグループを使用します。たとえば、wheel
グループのメンバーは、デフォルトで sudo
を使用して root
権限でコマンドを実行できます。CUPS 管理者が他のサービスで予期しない権限を取得しないようにするには、CUPS 管理者専用のグループを使用します。
前提条件
- CUPS が設定されている。
- 使用するクライアントの IP アドレスに、Web インターフェイスの管理領域にアクセスする権限がある。
手順
CUPS 管理者用のグループを作成します。
groupadd cups-admins
# groupadd cups-admins
Copy to Clipboard Copied! Web インターフェイスでサービスを管理する必要があるユーザーを、
cups-admins
グループに追加します。usermod -a -G cups-admins <username>
# usermod -a -G cups-admins <username>
Copy to Clipboard Copied! /etc/cups/cups-files.conf
ファイルのSystemGroup
パラメーターの値を更新し、cups-admin
グループを追加します。SystemGroup sys root wheel cups-admins
SystemGroup sys root wheel cups-admins
Copy to Clipboard Copied! cups-admin
グループのみに管理アクセス権を与える必要がある場合は、パラメーターから他のグループ名を削除します。CUPS を再起動します。
systemctl restart cups
# systemctl restart cups
Copy to Clipboard Copied!
検証
ブラウザーを使用して、
https://<hostname_or_ip_address>:631/admin/
にアクセスします。注記ユーザーは HTTPS プロトコルを使用する場合のみ、Web UI の管理領域にアクセスできます。
-
管理タスクの実行を開始します。たとえば、
Add printer
をクリックします。 Web インターフェイスで、ユーザー名とパスワードの入力を求められます。続行するには、
cups-admins
グループのメンバーであるユーザーの認証情報を使用して認証します。認証が成功すると、このユーザーは管理タスクを実行できます。
第4章 プリンタードライバーを含むパッケージの概要
Red Hat Enterprise Linux (RHEL) は、CUPS 用のプリンタードライバーを含むさまざまなパッケージを提供しています。これらのパッケージの概要と、パッケージに含まれるドライバーが対応するベンダーを以下に示します。
パッケージ名 | プリンター用ドライバー |
---|---|
| Zebra、Dymo |
| Kodak |
| Brother、Canon、Epson、Gestetner、HP、Infotec、Kyocera、Lanier、Lexmark、NRG、Ricoh、Samsung、Savin、Sharp、Toshiba、Xerox など |
| Brother、Canon、Epson、Fujitsu、HP、Infotec、Kyocera、Lanier、NRG、Oki、Minolta、Ricoh、Samsung、Savin、Xerox など |
| HP |
| HP |
| Samsung、Xerox など |
パッケージによっては、同じプリンターベンダーまたはモデル用の、異なる機能を持つドライバーが含まれている場合があることに注意してください。
必要なパッケージをインストールした後、CUPS Web インターフェイスまたは lpinfo -m
コマンドを使用してドライバーのリストを表示できます。
第5章 プリンターがドライバーレス印刷をサポートしているかどうかの確認
CUPS はドライバーレス印刷をサポートしています。つまり、ハードウェア固有のソフトウェアをプリンターに提供しなくても印刷できます。ドライバーレス印刷を使用するには、プリンターからクライアントにその機能を通知し、次のいずれかの標準をプリンターで使用する必要があります。
- AirPrint™
- IPP Everywhere™
- Mopria®
- Wi-Fi Direct Print Services
ipptool
ユーティリティーを使用すると、プリンターがドライバーレス印刷をサポートしているかどうかを確認できます。
前提条件
- プリンターまたはリモートプリントサーバーが、インターネット印刷プロトコル (IPP) をサポートしている。
- ホストが、プリンターまたはリモートプリントサーバーの IPP ポートに接続できる。デフォルトの IPP ポートは 631 です。
手順
ipp-versions-supported
属性とdocument-format-supported
属性を照会し、get-printer-attributes
テストに合格することを確認します。リモートプリンターの場合は、次のように入力します。
ipptool -tv ipp://<ip_address_or_hostname>:631/ipp/print get-printer-attributes.test | grep -E "ipp-versions-supported|document-format-supported|get-printer-attributes"
# ipptool -tv ipp://<ip_address_or_hostname>:631/ipp/print get-printer-attributes.test | grep -E "ipp-versions-supported|document-format-supported|get-printer-attributes" Get printer attributes using get-printer-attributes [PASS] ipp-versions-supported (1setOf keyword) = ... document-format-supported (1setOf mimeMediaType) = ...
Copy to Clipboard Copied! リモートプリントサーバー上のキューの場合は、次のように入力します。
ipptool -tv ipp://<ip_address_or_hostname>:631/printers/<queue_name> get-printer-attributes.test | grep -E "ipp-versions-supported|document-format-supported|get-printer-attributes"
# ipptool -tv ipp://<ip_address_or_hostname>:631/printers/<queue_name> get-printer-attributes.test | grep -E "ipp-versions-supported|document-format-supported|get-printer-attributes" Get printer attributes using get-printer-attributes [PASS] ipp-versions-supported (1setOf keyword) = ... document-format-supported (1setOf mimeMediaType) = ...
Copy to Clipboard Copied!
ドライバーレス印刷が機能することを確認するには、出力で次のことを確認します。
-
get-printer-attributes
テストがPASS
を返す。 - プリンターがサポートする IPP バージョンが 2.0 以降である。
形式のリストに次のいずれかが含まれている。
-
application/pdf
-
image/urf
-
image/pwg-raster
-
-
カラープリンターの場合、前述の形式のいずれかに加えて、
image/jpeg
が出力に含まれている。
第6章 ドライバー不要の USB 印刷とスキャン
ドライバーレス印刷およびスキャンには、USB を使用して接続されたデバイス用のバリエーションがあります。これは IPP over USB
標準で対応されています。ドライバーレス印刷およびスキャンを機能させるには、ipp-usb
パッケージをインストールする必要があります。ローカルホスト上の Avahi
にデバイスを登録し、USB デバイスをネットワークデバイスとして表示します。
6.1. デバイス機能のインストールと確認
ドライバーレス印刷では、ネットワーク上でデバイスを識別し、プリントサーバーを使って印刷キューを設定することで、デバイスを使用できるようにします。その後、印刷キュー内の設定にアクセスするか、ipptool
などのツールを使用して、デバイスの機能を確認できます。
前提条件
- デバイスのファームウェアを更新する。
-
リモートプリントサーバーからプリンターをインストールするために
cups-browsed
サービスが使用されていない場合は、このサービスを停止して無効にする。この場合、BrowsePoll
サーバーは/etc/cups/cups-browsed.conf
ファイルで使用されることに注意してください。
手順
ipp-usb
パッケージをインストールします。dnf install ipp-usb
# dnf install ipp-usb
Copy to Clipboard Copied! 注記ipp-usb
パッケージは、CUPS およびsane-airscane
パッケージとともにデフォルトでインストールされます。デバイスに印刷機能があるかどうかを確認します。
デバイスが
ipp-usb
によって認識されていることを確認します。sudo ipp-usb check
# sudo ipp-usb check
Copy to Clipboard Copied! 既存の宛先の中でデバイスが CUPS によって識別されるかどうかを確認します。
ipp-usb
によって作成されたサービス名には、接尾辞_USB
が付きます。lpstat -e
$ lpstat -e Canon_MF440_Series_USB
Copy to Clipboard Copied! ipp-usb
によって作成されたサービス名には、_USB
接尾辞が付きます。たとえば、Canon_MF440_Series_USB は Canon I-Sensys MF433 という IPP-over-USB デバイスを表します。重要Canon_MF440_Series_USB が
lpstat -e
コマンドの出力には表示されるものの、アプリケーションには表示されない場合は、アプリケーションに問題を報告してください。デバイスの機能を確認します。
ipptool -tv ipp://localhost:60000/ipp/print get-printer-attributes.test lpoptions -p Canon_MF440_Series_USB -l
# ipptool -tv ipp://localhost:60000/ipp/print get-printer-attributes.test # lpoptions -p Canon_MF440_Series_USB -l
Copy to Clipboard Copied! ipptool
コマンドは、デバイスがサポートするすべての IPP 属性を返します。IPP 応答に印刷オプションが存在するにもかかわらず、lpoptions
出力には存在しない場合、一部の属性から PPD オプションが生成されているため、CUPS 側の問題です。lpoptions
ユーティリティーは、使用可能な PPD オプションを返します。
デバイスにスキャン機能があるかどうかを確認します。
sane-airscan
バックエンドがデバイスを認識しているかどうかを確認します。scanimage -L
# scanimage -L device `airscan:e0:HP LaserJet MFP M130fw' is a eSCL HP LaserJet MFP M130fw ip=127.0.0.1 Here, the HP LaserJet MFP M130fw device here is used for illustration, it does not show its real IPP-over-USB compatibility or its real options shared via AirScan from ipp-usb.
Copy to Clipboard Copied! デバイスの機能を確認します。
scanimage --help -d 'airscan:e0:HP LaserJet MFP M130fw (E700D6)'
# scanimage --help -d 'airscan:e0:HP LaserJet MFP M130fw (E700D6)'
Copy to Clipboard Copied!
6.2. 既存のクラシック印刷キューとスキャナーデバイスの移行
ipp-usb
パッケージは IPP-over-USB
デバイス用の従来の印刷およびスキャンドライバーと互換性がないため、アップグレード後にユーザーの選択に応じて手動介入する必要があります。利用可能な印刷機能とスキャン機能を確認し、デバイスに使用するサポートの種類を決定できます。
- ドライバーレス
- クラシックドライバー
手順
- ドライバーレスを使用して USB デバイスをサポートする
従来のドライバーを使用した既存の設定を USB デバイスのドライバーレスサポートに移行するには、デバイスの機能に応じて以下の手順に従います。
- デバイスに印刷機能がある場合は、これまでにデバイスにインストールされた既存のプリンターをすべて削除します。
プリンター名を検索するには、次のコマンドを実行します。
lpstat -a
# lpstat -a
Copy to Clipboard Copied! プリンターを削除します。
lpadmin -x <printer_name>
# lpadmin -x <printer_name>
Copy to Clipboard Copied! デバイスにスキャン機能がある場合は、スキャンサポートを提供する
SANE
バックエンド (例: hpaio) を無効にします。無効にする方法として、設定ファイル/etc/sane.d/dll.conf
またはディレクトリー/etc/sane.d/dll.d
内の特定のファイルでその名前をコメントアウトするか、スキャンドライバーをアンインストールします。たとえば、hpaio
スキャンバックエンドを無効にするには、次のようにします。scanimage -L sudo sed -i 's,^\s*hpaio$,#hpaio,' /etc/sane.d/dll.d/hpaio
# scanimage -L device `hpaio:/usb/laserjet_mfp_m129-m134?serial=XXXX' is a Hewlett-Packard laserjet_mfp_m129-m134 all-in-one device `airscan:e0:HP LaserJet MFP M130fw (E700D6)' is a eSCL HP LaserJet MFP M130fw (E700D6) ip=127.0.0.1 # sudo sed -i 's,^\s*hpaio$,#hpaio,' /etc/sane.d/dll.d/hpaio
Copy to Clipboard Copied! その結果、バックエンド HPAIO でサポートされているスキャンデバイスは、スキャナーのリストに表示されません。
- クラシックドライバーを使用してデバイスをサポートする
クラシックドライバーを選択するには
ipp-usb
設定でプリンターモデルを拒否する必要があります。デバイスのモデル名を検索します。
sudo ipp-usb check
# sudo ipp-usb check Configuration files: OK IPP over USB devices: Num Device Vndr:Prod Model 1. Bus 001 Device 005 04a9:2823 "Canon MF440 Series"
Copy to Clipboard Copied! ipp-usb
の quirk を作成し、/etc/ipp-usb/quirks
ディレクトリー内の新しい quirk ファイルでその名前を使用します。.conf
接尾辞が必要であることに注意してください。cat /etc/ipp-usb/quirks/canon.conf [Canon MF440 Series] blacklist = true
# cat /etc/ipp-usb/quirks/canon.conf [Canon MF440 Series] blacklist = true
Copy to Clipboard Copied! ipp-usb
サービスを再起動します。systemctl restart ipp-usb
$ systemctl restart ipp-usb
Copy to Clipboard Copied! この現象が原因で
ipp-usb
でのデバイスのサポートが拒否され、従来のドライバーが動作します。ipp-usb
によって生成されたプリンターは、既存のプリンターのリストから削除されます。
ipp-usb
パッケージを削除し、DNF 操作から除外することで、ドライバーレス USB サポートをオプトアウトできます。
第7章 レガシープリンターの設定
ドライバーレス標準をサポートしていないレガシープリンターをサポートするには、プリンターアプリケーションを使用できます。プリンターアプリケーションにレガシープリンターをインストールすると、このアプリケーションによってレガシープリンターが CUPS で使用できるようになります。
CUPS でクラシックドライバーを使用してプリンターをインストールすることは推奨されません。
プリンターアプリケーションで従来のプリンターを設定することにより、従来の CUPS ドライバーを最新の印刷アーキテクチャーで利用できます。現在、RHEL には、lprint
や legacy-print-app
など、PAPPL に基づくプリンターアプリケーションが含まれています。RHEL の現在の PAPPL ベースのプリンターアプリケーションと、そのアプリケーションがリッスンしている TCP ポートは次のとおりです。
- LPrint: 8000
- レガシープリンターアプリケーション: 8001
7.1. PAPPL ベースのプリンターアプリケーションの設定
さまざまな印刷要件を簡単かつ効果的にサポートし、従来のプリンターのインストールを準備するために、PAPPL ベースのプリンターアプリケーションを設定できます。
前提条件
- CUPS が TLS 証明書を使用して設定されている。
手順
PAPPL ベースのプリンターアプリケーションパッケージ (例:
lprint
) をインストールします。dnf install <printer_application_name>
# dnf install <printer_application_name>
Copy to Clipboard Copied! オプション: リモートホストからプリンターアプリケーションの Web インターフェイスにアクセスできるように、firewalld でポート
8000
を有効にします。firewall-cmd --permanent --add-port=8000/tcp firewall-cmd --reload
# firewall-cmd --permanent --add-port=8000/tcp # firewall-cmd --reload
Copy to Clipboard Copied! サービスを有効にして起動します。
systemctl enable --now <printer_application_name>
# systemctl enable --now <printer_application_name>
Copy to Clipboard Copied!
/etc/lprint.conf
設定ファイルでポートを確認できます。
7.1.1. Web インターフェイスを使用して PAPPL ベースのプリンターアプリケーションにレガシープリンターをインストールする
PAPPL ベースのプリンターアプリケーション Web インターフェイスを使用して、レガシープリンターをインストールできます。
前提条件
- CUPS が TLS 証明書を使用して設定されている。
- プリンターアプリケーションが設定され、実行されている。
手順
-
プリンターアプリケーションのホームページで、
Add Printer
をクリックします。 printer name
、device
、ネットワークプリンターの場合はhostname/IP address
を選択し、表示されたリストからドライバー名を選択して、Add Printer
をクリックします。自動検出オプションを使用してドライバーを検索することもできます。ドライバーの自動検出オプションを使用すると、デバイスモデルが利用可能なドライバーと大きく異なる場合、デバイスと互換性のないドライバーが見つかる可能性があります。印刷前に割り当てられたドライバーを確認し、印刷の問題を防ぐためにドライバーを手動で変更することを推奨します。
-
使用するドライバーは、
block Status
の 2 行目にあります。Print Test Page
をクリックすると機能をテストできます。
7.1.2. コマンドラインインターフェイスを使用して、PAPPL ベースのプリンターアプリケーションにレガシープリンターをインストールする
コマンドラインインターフェイスを使用して、PAPPL ベースのプリンターアプリケーションにレガシープリンターをインストールできます。
前提条件
- CUPS が TLS 証明書を使用して設定されている。
- プリンターアプリケーションが設定され、実行されている。
手順
PAPPL ベースのプリンターアプリケーションで利用可能なドライバーを検索します。
lprint drivers
# lprint drivers zpl_2inch-203dpi-dt "Zebra ZPL 2-inch/203dpi/Direct-Thermal
Copy to Clipboard Copied! プリンターをインストールします。たとえば、指定したドライバーを使用してネットワークプリンターをインストールするには、次のように入力します。
lprint add -d <printer name> -v socket://<hostname> -m zpl_2inch-203dpi-dt
# lprint add -d <printer name> -v socket://<hostname> -m zpl_2inch-203dpi-dt
Copy to Clipboard Copied!
検証
プリンターのリストにプリンターと、生データを送信するための生ソケットが表示されていることを確認します。
lprint printers
# lprint printers <printer_name> - printer - ipp://localhost/ipp/print/<printer_name> <printer_name> - raw socket - socket://localhost:9101/
Copy to Clipboard Copied!
7.2. 生成されたネットワークプリンターを CUPS の永続キューとして設定する
コマンドラインインターフェイスを使用して、専用のプリンターアプリケーションから生成されたネットワークプリンターを CUPS の永続キューとして設定できます。
次の手順では、LPrint
プリンターアプリケーションを例として使用します。ただし、同様の手順は、PAPPL ベースのすべてのプリンターアプリケーションにも適用されます。
前提条件
- CUPS が TLS 証明書を使用して設定されている。
- CUPS でプリンターを管理する権限がある。
- レガシープリンターがプリンターアプリケーションにインストールされている。
手順
生成されたネットワークプリンターが使用可能かどうかを確認します。
lpstat -e
# lpstat -e <printer_name_in_printer_application>
Copy to Clipboard Copied! プリンターアプリケーションが使用しているポートを検索します。
grep 'server-port=' /etc/lprint.conf
# grep 'server-port=' /etc/lprint.conf server-port=8000
Copy to Clipboard Copied! ポート番号
8000
を使用して永続キューをインストールします。lpadmin -p <printer_name_in_CUPS> -v ipps://localhost:8000/ipp/print/<printer_name_in_printer_application> -m everywhere -E
# lpadmin -p <printer_name_in_CUPS> -v ipps://localhost:8000/ipp/print/<printer_name_in_printer_application> -m everywhere -E
Copy to Clipboard Copied! CUPS キューがインストールされているかどうかを確認します。
lpstat -a
# lpstat -a <printer_name_in_CUPS> accepting requests since Wed 07 May 2025 02:31:04 AM EDT
Copy to Clipboard Copied!
第8章 Web インターフェイスを使用した CUPS へのプリンターの追加
ユーザーが CUPS 経由で印刷できるようにするには、事前にプリンターを追加する必要があります。ネットワークプリンターと、USB 経由などで CUPS ホストに直接接続されているプリンターの両方を使用できます。
CUPS ドライバーレス機能を使用するか、PostScript Printer Description (PPD) ファイルを使用してプリンターを追加できます。
CUPS はドライバーレス印刷を優先しており、ドライバーの使用は非推奨です。
Red Hat Enterprise Linux (RHEL) は、mDNS レスポンダーにクエリーを実行することでリクエストを解決する、Name Service Switch Multicast DNS プラグイン (nss-mdns
) を提供しません。そのため、RHEL では、mDNS を使用したローカルドライバーレスプリンターの自動検出とインストールは利用できません。この制限を回避するには、1 台のプリンターを手動でインストールするか、cups-browsed
を使用してリモートプリントサーバーで使用可能な多数の印刷キューを自動的にインストールします。
前提条件
- CUPS が設定されている。
- CUPS でプリンターを管理する権限がある。
- CUPS をプリントサーバーとして使用する場合は、ネットワーク上でデータをセキュアに送信するために TLS 暗号化を設定 している。
- プリンターがドライバーレス印刷をサポートしている (この機能を使用する場合)。
手順
ブラウザーを使用して、
https://<hostname>:631/admin/
にアクセスします。Web インターフェイスには HTTPS プロトコルを使用して接続する必要があります。使用しないと、セキュリティー上の理由から、CUPS が後のステップで認証できなくなります。
- をクリックします。
- ユーザーがまだ認証されていない場合、CUPS は管理ユーザーの認証情報の入力を求めます。許可されたユーザーのユーザー名とパスワードを入力します。
- ドライバーレス印刷を使用せず、追加するプリンターが自動的に検出された場合は、それを選択し、 をクリックします。
プリンターが検出されなかった場合は、以下を実行します。
プリンターがサポートするプロトコルを選択します。
プリンターがドライバーレス印刷をサポートしており、この機能を使用する場合は、
ipp
またはipps
プロトコルを選択します。- をクリックします。
プリンターまたはリモートプリントサーバー上のキューへの URL を入力します。
- をクリックします。
名前を入力し、必要に応じて説明と場所を入力します。CUPS をプリントサーバーとして使用し、他のクライアントが CUPS を介してこのプリンターで印刷できるようにする場合は、Share this printer も選択します。
- Make リストからプリンターの製造元を選択します。プリンターの製造元がリストにない場合は、Generic を選択するか、プリンターの PPD ファイルをアップロードします。
- をクリックします。
プリンターのモデルを選択します。
- プリンターがドライバーレス印刷をサポートしている場合は、IPP Everywhere を選択します。なお、以前にプリンター固有のドライバーをローカルにインストールしていた場合は、リストに <printer_name> - IPP Everywhere などのエントリーも含まれている可能性があります。
- プリンターがドライバーレス印刷をサポートしていない場合は、モデルを選択するか、プリンターの PPD ファイルをアップロードします。
- をクリックします。
Set printer options ページの設定とタブは、ドライバーとプリンターがサポートする機能によって異なります。このページを使用して、用紙サイズなどのデフォルトのオプションを設定します。
- をクリックします。
検証
- Web インターフェイスで Printers タブを開きます。
- プリンターの名前をクリックします。
- Maintenance リストで、Print test page を選択します。
トラブルシューティング
-
ドライバーレス印刷を使用していて印刷がうまくいかない場合は、
lpadmin
ユーティリティーを使用してコマンドラインでプリンターを追加します。詳細は、lpadmin
ユーティリティーを使用して CUPS にプリンターを追加する を参照してください。
第9章 lpadmin
ユーティリティーを使用して CUPS にプリンターを追加する
ユーザーが CUPS 経由で印刷できるようにするには、事前にプリンターを追加する必要があります。ネットワークプリンターと、USB 経由などで CUPS ホストに直接接続されているプリンターの両方を使用できます。
CUPS ドライバーレス機能を使用するか、PostScript Printer Description (PPD) ファイルを使用してプリンターを追加できます。
CUPS はドライバーレス印刷を優先しており、ドライバーの使用は非推奨です。
Red Hat Enterprise Linux (RHEL) は、mDNS レスポンダーにクエリーを実行することでリクエストを解決する、Name Service Switch Multicast DNS プラグイン (nss-mdns
) を提供しません。そのため、RHEL では、mDNS を使用したローカルドライバーレスプリンターの自動検出とインストールは利用できません。この制限を回避するには、1 台のプリンターを手動でインストールするか、cups-browsed
を使用してリモートプリントサーバーで使用可能な多数の印刷キューを自動的にインストールします。
前提条件
- CUPS が設定されている。
- プリンターがドライバーレス印刷をサポートしている (この機能を使用する場合)。
- プリンターが、ポート 631 (IPP)、9100 (ソケット)、または 515 (LPD) でデータを受信する。ポートは、プリンターへの接続に使用する方法によって異なります。
手順
CUPS にプリンターを追加します。
ドライバーレスサポートを使用してプリンターを追加するには、次のように入力します。
lpadmin -p Demo-printer -E -v ipp://192.0.2.200/ipp/print -m everywhere
# lpadmin -p Demo-printer -E -v ipp://192.0.2.200/ipp/print -m everywhere
Copy to Clipboard Copied! お使いのプリンターで
-m everywhere
オプションが機能しない場合は、-m driverless:<uri>
を試してください (例:-m driverless:ipp://192.0.2.200/ipp/print
)。ドライバーレスサポートを使用してリモートプリントサーバーのキューを追加するには、次のように入力します。
lpadmin -p Demo-printer -E -v ipp://192.0.2.201/printers/example-queue -m everywhere
# lpadmin -p Demo-printer -E -v ipp://192.0.2.201/printers/example-queue -m everywhere
Copy to Clipboard Copied! お使いのプリンターで
-m everywhere
オプションが機能しない場合は、-m driverless:<uri>
を試してください (例:-m driverless:ipp://192.0.2.200/printers/example-queue
)。ファイル内のドライバーを使用してプリンターを追加するには、次のように入力します。
lpadmin -p Demo-printer -E -v socket://192.0.2.200/ -P /root/example.ppd
# lpadmin -p Demo-printer -E -v socket://192.0.2.200/ -P /root/example.ppd
Copy to Clipboard Copied! ファイル内のドライバーを使用してリモートプリントサーバーのキューを追加するには、次のように入力します。
lpadmin -p Demo-printer -E -v ipp://192.0.2.201/printers/example-queue -P /root/example.ppd
# lpadmin -p Demo-printer -E -v ipp://192.0.2.201/printers/example-queue -P /root/example.ppd
Copy to Clipboard Copied! ローカルドライバーデータベース内のドライバーを使用してプリンターを追加するには、次の手順を実行します。
データベース内のドライバーをリスト表示します。
lpinfo -m
# lpinfo -m ... drv:///sample.drv/generpcl.ppd Generic PCL Laser Printer ...
Copy to Clipboard Copied! データベース内のドライバーへの URI を使用してプリンターを追加します。
lpadmin -p Demo-printer -E -v socket://192.0.2.200/ -m drv:///sample.drv/generpcl.ppd
# lpadmin -p Demo-printer -E -v socket://192.0.2.200/ -m drv:///sample.drv/generpcl.ppd
Copy to Clipboard Copied!
これらのコマンドでは、次のオプションを使用します。
-
-p <printer_name>
: CUPS 内のプリンターの名前を設定します。 -
-E
: プリンターを有効にします。CUPS はそのプリンターのジョブを受け付けます。このオプションは-p
の後に指定する必要があることに注意してください。詳細は、お使いのシステムの man ページでオプションの説明を参照してください。 -
-v <uri>
: プリンターまたはリモートプリントサーバーキューへの URI を設定します。 -
-m <driver_uri>
: ローカルドライバーデータベースから取得した指定のドライバー URI に基づいて PPD ファイルを設定します。 -
-P <PPD_file>
: PPD ファイルへのパスを設定します。
検証
使用可能なプリンターを表示します。
lpstat -p
# lpstat -p printer Demo-printer is idle. enabled since Fri 23 Jun 2023 09:36:40 AM CEST
Copy to Clipboard Copied! テストページを印刷します。
lp -d Demo-printer /usr/share/cups/data/default-testpage.pdf
# lp -d Demo-printer /usr/share/cups/data/default-testpage.pdf
Copy to Clipboard Copied!
第10章 Web インターフェイスを使用した CUPS プリンターのメンテナンスおよび管理タスクの実行
プリンター管理者は、場合によってはプリントサーバー上でさまざまなタスクを実行する必要があります。以下に例を示します。
- 技術者がプリンターを修理している間のプリンターの一時停止などのメンテナンスタスク
- プリンターのデフォルト設定の変更などの管理タスク
これらのタスクは、CUPS の Web インターフェイスを使用して実行できます。
前提条件
- CUPS が設定されている。
- CUPS でプリンターを管理する権限がある。
- CUPS をプリントサーバーとして使用する場合は、ネットワーク上で認証情報をプレーンテキストで送信しないように TLS 暗号化を設定 している。
- プリンターが CUPS にすでに存在する。
手順
ブラウザーを使用して、
https://<hostname>:631/printers/
にアクセスします。Web インターフェイスには HTTPS プロトコルを使用して接続する必要があります。使用しないと、セキュリティー上の理由から、CUPS が後のステップで認証できなくなります。
- 設定するプリンターの名前をクリックします。
- メンテナンスタスクを実行するか管理タスクを実行するかに応じて、リストから必要なアクションを選択します。
- ユーザーがまだ認証されていない場合、CUPS は管理ユーザーの認証情報の入力を求めます。許可されたユーザーのユーザー名とパスワードを入力します。
- タスクを実行します。
第11章 Samba を使用した Kerberos 認証による Windows プリントサーバーへの印刷
samba-krb5-printing
ラッパーを使用すると、Red Hat Enterprise Linux (RHEL) にログインした Active Directory (AD) ユーザーは、Kerberos を使用して Active Directory (AD) に対して認証して、Windows プリントサーバーに印刷ジョブを転送するローカルの CUPS プリントサーバーに印刷を出力できます。
この設定の利点は、RHEL 上の CUPS の管理者が、設定で固定ユーザー名およびパスワードを保存する必要がないことです。CUPS は、印刷ジョブを送信するユーザーの Kerberos チケットで AD に対して認証します。
Red Hat は、ローカルシステムから CUPS への印刷ジョブの送信のみをサポートしています。Samba プリントサーバー上のプリンターの再共有はサポートしていません。
前提条件
- ローカルの CUPS インスタンスに追加するプリンターが、AD プリントサーバーで共有されている。
- AD のメンバーとして RHEL ホストに参加している。
-
CUPS が RHEL にインストールされており、
cups
サービスが実行されている。 -
プリンターの PostScript Printer Description (PPD) ファイルが
/usr/share/cups/model/
ディレクトリーに保存されている。
手順
samba-krb5-printing
、samba-client
、およびkrb5-workstation
パッケージをインストールします。dnf install samba-krb5-printing samba-client krb5-workstation
# dnf install samba-krb5-printing samba-client krb5-workstation
Copy to Clipboard Copied! 必要に応じて、ドメイン管理者として認証を行い、Windows プリントサーバーで共有されるプリンターの一覧を表示します。
smbclient -L <windows_print_server> -U administrator@<AD_KERBEROS_REALM> --use-kerberos=required
# smbclient -L <windows_print_server> -U administrator@<AD_KERBEROS_REALM> --use-kerberos=required Sharename Type Comment --------- ---- ------- ... Example Printer Example ...
Copy to Clipboard Copied! 必要に応じて、CUPS モデルのリストを表示して、プリンターの PPD 名を指定します。
lpinfo -m ... samsung.ppd Samsung M267x 287x Series PXL ...
lpinfo -m ... samsung.ppd Samsung M267x 287x Series PXL ...
Copy to Clipboard Copied! 次のステップでプリンターを追加する場合は、PPD ファイルの名前が必要です。
CUPS にプリンターを追加します。
lpadmin -p "<printer_name>" -v smb://<windows_print_server>/<printer_share_name> -m samsung.ppd -o auth-info-required=negotiate -E
# lpadmin -p "<printer_name>" -v smb://<windows_print_server>/<printer_share_name> -m samsung.ppd -o auth-info-required=negotiate -E
Copy to Clipboard Copied! このコマンドでは次のオプションを使用します。
-
-p <printer_name>
は、CUPS にプリンターの名前を設定します。 -
-v <URI_to_Windows_printer>
は、Windows プリンターに URI を設定します。smb://<host_name>/<printer_share_name>
の形式を使用します。 -
-m <PPD_file>
は、プリンターが使用する PPD ファイルを設定します。 -
-o auth-info-required=negotiate
は、印刷ジョブをリモートサーバーに転送する際に CUPS が Kerberos 認証を使用するように設定します。 -
-E
はプリンターを有効にします。CUPS はそのプリンターのジョブを受け付けます。
-
検証
- AD ドメインユーザーとして RHEL ホストにログインします。
AD ドメインユーザーとして認証します。
kinit <domain_user_name>@<AD_KERBEROS_REALM>
# kinit <domain_user_name>@<AD_KERBEROS_REALM>
Copy to Clipboard Copied! ローカルの CUPS プリントサーバーに追加したプリンターにファイルを出力します。
lp -d <printer_name> <file>
# lp -d <printer_name> <file>
Copy to Clipboard Copied!
第12章 cups-browsed を使用してリモートプリントサーバーのプリンターをローカルに統合する
cups-browsed
サービスは、DNS サービス検出 (DNS-SD) と CUPS ブラウジングを使用して、共有リモートプリンターのすべて、またはフィルタリング後のサブセットを、ローカルの CUPS サービスで自動的に利用できるようにします。
たとえば、管理者はワークステーションでこの機能を使用して、信頼できるプリントサーバーのプリンターのみをアプリケーションの印刷ダイアログで使用できるようにすることができます。プリントサーバーが多数のプリンターを共有している場合、リストに表示されるプリンターの数を減らすために、参照するプリンターを特定の条件でフィルタリングするように cup-browsed
を設定することもできます。
アプリケーションの印刷ダイアログが DNS-SD などの他のメカニズムを使用してリモートプリンターのリストを表示している場合、cups-browsed
は影響を及ぼしません。また、cups-browsed
サービスは、ユーザーがリストにないプリンターに手動でアクセスすることを妨げるものではありません。
前提条件
- CUPS サービスがローカルホストで設定されている。
リモート CUPS プリントサーバーが存在する。このサーバーには次の条件が適用されます。
- サーバーが、クライアントからアクセス可能なインターフェイスでリッスンしている。
-
/etc/cups/cups.conf
ファイル内のサーバーの<Location />
ディレクティブにあるAllow from
パラメーターにより、クライアントの IP アドレスからのアクセスが許可されている。 - サーバーがプリンターを共有している。
- ファイアウォールルールにより、クライアントからサーバーの CUPS ポートへのアクセスが許可されている。
手順
/etc/cups/cups-browsed.conf
ファイルを編集し、次の変更を加えます。ポーリングするリモート CUPS サーバーごとに
BrowsePoll
パラメーターを追加します。BrowsePoll remote_cups_server.example.com BrowsePoll 192.0.2.100:1631
BrowsePoll remote_cups_server.example.com BrowsePoll 192.0.2.100:1631
Copy to Clipboard Copied! リモート CUPS サーバーが 631 とは異なるポートでリッスンする場合は、ホスト名または IP アドレスに
:_<port>_
を追加します。オプション: フィルターを設定して、ローカル CUPS サービスに表示されるプリンターを制限します。たとえば、名前に
sales_
が含まれるキューをフィルタリングするには、次のパラメーターを追加します。BrowseFilter name sales_
BrowseFilter name sales_
Copy to Clipboard Copied! さまざまなフィールド名でフィルタリングしたり、フィルターを無効にしたり、正確な値を照合したりできます。詳細は、システムの
cups-browsed.conf(5)
man ページのパラメーターの説明と例を参照してください。オプション: ポーリング間隔とタイムアウトを変更して、参照サイクルの数を制限します。
BrowseInterval 1200 BrowseTimeout 6000
BrowseInterval 1200 BrowseTimeout 6000
Copy to Clipboard Copied! プリンターが参照リストから消えるのを避けるために、
BrowseInterval
とBrowseTimeout
の両方を同じ比率で増やしてください。つまり、BrowseInterval
の値を 5 以上の整数で乗算し、その計算結果の値をBrowseTimeout
に使用します。デフォルトでは、
cups-browsed
は 60 秒ごとにリモートサーバーをポーリングし、タイムアウトは 300 秒です。ただし、キューの数が多いプリントサーバーでこれらのデフォルト値を使用すると、大量のリソースが消費される可能性があります。
cups-browsed
サービスを有効にして起動します。systemctl enable --now cups-browsed
# systemctl enable --now cups-browsed
Copy to Clipboard Copied!
検証
使用可能なプリンターをリスト表示します。
lpstat -v
# lpstat -v device for Demo-printer: implicitclass://Demo-printer/ ...
Copy to Clipboard Copied! プリンターの出力に
implicitclass
が含まれていれば、cups-browsed
サービスが CUPS でプリンターを管理しています。
第13章 systemd ジャーナルの CUPS ログへのアクセス
デフォルトでは、CUPS はログメッセージを systemd
ジャーナルに保存します。ここでは、以下の点を説明します。
- エラーメッセージ
- アクセスログエントリー
- ページログエントリー
前提条件
手順
ログエントリーを表示します。
すべてのログエントリーを表示するには、次のように入力します。
journalctl -u cups
# journalctl -u cups
Copy to Clipboard Copied! 特定の印刷ジョブのログエントリーを表示するには、次のように入力します。
journalctl -u cups JID=<print_job_id>
# journalctl -u cups JID=<print_job_id>
Copy to Clipboard Copied! 特定の期間内のログエントリーを表示するには、次のように入力します。
journalectl -u cups --since=<YYYY-MM-DD> --until=<YYYY-MM-DD>
# journalectl -u cups --since=<YYYY-MM-DD> --until=<YYYY-MM-DD>
Copy to Clipboard Copied! YYYY
は年に、MM
は月に、DD
は日に置き換えます。
第14章 systemd ジャーナルではなくファイルにログを保存するように CUPS を設定する
デフォルトでは、CUPS はログメッセージを systemd
ジャーナルに保存します。ログメッセージをファイルに保存するように CUPS を設定することもできます。
前提条件
手順
/etc/cups/cups-files.conf
ファイルを編集し、AccessLog
、ErrorLog
、およびPageLog
パラメーターを、これらのログファイルを保存するパスに設定します。AccessLog /var/log/cups/access_log ErrorLog /var/log/cups/error_log PageLog /var/log/cups/page_log
AccessLog /var/log/cups/access_log ErrorLog /var/log/cups/error_log PageLog /var/log/cups/page_log
Copy to Clipboard Copied! /var/log/cups/
以外のディレクトリーにログを保存するように CUPS を設定する場合は、このディレクトリーにcupd_log_t
SELinux コンテキストを設定します。たとえば、次のように設定します。semanage fcontext -a -t cupsd_log_t "/var/log/printing(/.*)?" restorecon -Rv /var/log/printing/
# semanage fcontext -a -t cupsd_log_t "/var/log/printing(/.*)?" # restorecon -Rv /var/log/printing/
Copy to Clipboard Copied! cups
サービスを再起動します。systemctl restart cups
# systemctl restart cups
Copy to Clipboard Copied!
検証
ログファイルを表示します。
cat /var/log/cups/access_log cat /var/log/cups/error_log cat /var/log/cups/page_log
# cat /var/log/cups/access_log # cat /var/log/cups/error_log # cat /var/log/cups/page_log
Copy to Clipboard Copied! /var/log/cups/
以外のディレクトリーにログを保存するように CUPS を設定した場合は、ログディレクトリーの SELinux コンテキストがcupd_log_t
であることを確認します。ls -ldZ /var/log/printing/
# ls -ldZ /var/log/printing/ drwxr-xr-x. 2 lp sys unconfined_u:object_r:cupsd_log_t:s0 6 Jun 20 15:55 /var/log/printing/
Copy to Clipboard Copied!
第15章 高可用性 CUPS プリントサーバー環境の設定
クライアントが中断することなくプリンターにアクセスする必要がある場合は、複数のホストに CUPS を設定し、印刷キュー参照機能を使用して高可用性を実現できます。印刷クライアントは、さまざまな印刷サーバーにより共有される印刷キューを自動的に設定します。クライアントが印刷ジョブをローカル印刷キューに送信すると、クライアント上の CUPS はジョブを印刷サーバーの 1 つにルーティングし、印刷サーバーはそのジョブを処理してプリンターに送信します。
手順
2 台以上のサーバーに CUPS をセットアップします。
- CUPS をインストールして設定します。
- TLS 暗号化を有効にします。
lpadmin
ユーティリティー または Web インターフェイス を使用して、すべての CUPS インスタンスに印刷キューを追加します。Web インターフェイスを使用する場合は、プリンターを追加するときに Share this printer オプションを選択してください。lpadmin
ユーティリティーでは、この設定がデフォルトで有効になります。重要高可用性シナリオでは、1 台のプリントサーバー上の各キューには、他のサーバー上に完全に同じ名前のキューが必要です。
lpstat -e
コマンドを使用すると、各サーバーのキュー名を表示できます。オプション: 各サーバーのキューを、異なるプリンターを参照するように設定できます。
印刷クライアントの場合は以下を行います。
/etc/cups/cups-browsed.conf
ファイルを編集し、各 CUPS 印刷サーバーのBrowsePoll
ディレクティブを追加します。BrowsePoll print_server_1.example.com:631 BrowsePoll print_server_2.example.com:631
BrowsePoll print_server_1.example.com:631 BrowsePoll print_server_2.example.com:631
Copy to Clipboard Copied! cups
サービスとcups-browsed
サービスの両方を有効にして起動します。systemctl enable --now cups cups-browsed
# systemctl enable --now cups cups-browsed
Copy to Clipboard Copied!
検証
クライアントで使用可能なプリンターを表示します。
lpstat -t
# lpstat -t ... device for Demo-printer: implicitclass://Demo-printer/ Demo-printer accepting requests since Fri 22 Nov 2024 11:54:59 AM CET printer Demo-printer is idle. enabled since Fri 22 Nov 2024 11:54:59 AM CET ...
Copy to Clipboard Copied! 出力例は、Demo-printer キューが
implicitclass
バックエンドを使用していることを示しています。その結果、cups-browsed
は、このキューの印刷ジョブを、このクライアントのBrowsePoll
ディレクティブで指定されたホストにルーティングします。
第16章 CUPS ドキュメントへのアクセス
CUPS では、CUPS サーバーにインストールされているサービスのドキュメントにブラウザーからアクセスできます。このドキュメントには次のものが含まれます。
- コマンドラインによるプリンターの管理やアカウンティングなどに関する管理ドキュメント
- man ページ
- 管理 API などのプログラミングドキュメント
- 参考資料
- Specifications
前提条件
- CUPS がインストールされ、実行されている。
- 使用するクライアントの IP アドレスに、Web インターフェイスにアクセスする権限がある。
手順
-
ブラウザーを使用して、
http://<hostname_or_ip_address>:631/help/
にアクセスします。 -
Online Help Documents
のエントリーを展開し、参照するドキュメントを選択します。