概要
cupsサーバの設定記録.ブラウザ経由でのプリンタの追加などがhttps経由でないと出来なくなったみたい.そのためCUI/CLIでプリンタの管理を行うための記録.cupsサーバに関する情報のみとする.
- Ubuntu Server上でcupsサーバを動かすことを考えているが,サーバの設定には言及しない.
- クライアントの設定も多様(当研究室で使用しているLTSPサーバなら設定ファイルに一行加えるだけ)なので,クライアントの設定についても言及しない.
インストール・設定
例として使用するサーバ情報
- FQDN
- cups.mylab.ac.jp
- サーバの名前
- cups
- サーバが所属するドメイン
- mylab.ac.jp
- サーバの名前
- cups.mylab.ac.jp
- IP
- 192.168.0.1/24
- IP
- 192.168.0.1
- ネットワークアドレス
- 192.168.0.0
- ネットマスク
- 255.255.255.0
- IP
- 192.168.0.1/24
インストール
$ sudo apt install cups
設定
編集対象ファイルは以下の通り.
- /etc/cups/cupsd.conf
変更点・重要な部分のみ記載.
cupsd.conf
Listen *:631
ServerAlias cups.mylab.ac.jp
BrowseLocalProtocols all
<Location />
Allow 192.168.0.0/24
</Location>
<Location /admin>
Allow 192.168.0.0/24
</Location>
<Location /admin/conf>
Allow 192.168.0.0/24
</Location>
- ServerAlias
- cupsのFQDNとあっていないとブラウザ経由でアクセスした時にBad Requestとなる
- BrowseLocalProtocols all
- 印刷プロトコル全てブラウズ可能とする
- <Location /{,admin,admin/conf}>Allow *</Location>
- ブラウザ経由でのアクセス制限
- CUI/CLIで設定するから一部無用かもしれない
起動・自動起動設定
$ sudo systemctl start cups
$ sudo systemctl enable cups
ブラウザ経由でcup.mylab.ac.jp
にアクセスして起動確認.
ページ上部の「プリンター」をクリックすると管理しているプリンタ一覧を見ることができる(が,もちろんまだ空).
運用
プリンタ管理コマンド
プリンタ管理コマンドlpadmin
を使用.基本的な使い方は以下の通り.
- プリンタの追加・設定
- lpadmin -p プリンタ名 + オプション
- 指定されたプリンタ名の登録が無ければプリンタの追加となる
- 指定されたプリンタ名が既に登録されていれば設定の変更となる
- オプション
- -E
- 使用可能にしてジョブ受付を開始する
- -d, -p , -xの前に付けると暗号化してサーバに接続する
- -L "文字例"
- 設置場所を文字列情報として登録する
- -v device-uri
- プロトコルの設定を行う
- -P ppdファイル
- 設定に使用するppdファイルを指定する
- -E
- lpadmin -p プリンタ名 + オプション
- デフォルトプリンタの指定
- lpadmin -d プリンタ名
- 指定されたプリンタ名が登録されていなければならない
- lpadmin -d プリンタ名
- プリンタの削除
- lpadmin -x プリンタ名
- 指定されたプリンタ名が登録されていなければならない
- 対応するppdファイルも削除される
- lpadmin -x プリンタ名
プリンタの追加
説明用の例を以下の通りとする.
- プリンタのIP
- 192.168.0.2
- プリンタのppdファイル名
- printer.ppd
- メーカーからダウンロードし/root/bin/以下に保存
- printer.ppd
- プリンタの登録名
- myprinter
- プリンタの設置場所
- "うちの部屋"
- 別に設置場所を登録しなくてもいいけど例として...
- "うちの部屋"
LPD/LPRプロトコルの場合
$ sudo lpadmin -p myprinter -E -L "うちの部屋" -v lpd://192.168.0.2/8080 -P /root/bin/printer.ppd
確認
ブラウザ経由で「プリンター」の一覧を見ると登録されている.
またppdファイルも/etc/cups/ppd/myprinter.ppdとしてprinter.ppdがコピーされている.
各種情報
印刷プロトコル
- LPD/LPR (Line Printer Daemon protocol / Line Printer Remote protocol)
- リモートプリンタに印刷ジョブを送信するためのもの.
- AppSocket
- RAW, JetDirect, Windows TCPmonとも呼ぶ.
- IPP(Internet Printer Protocol)
- ローカルまたはインターネット上で実行できるもので,一番新しくとりあえずおすすめ
- dnssd
- Mac用?