UbuntuをCUPSでプリントサーバーにする:小規模オフィス向けの安定した印刷ソリューション

Ubuntu tutorial - IT technology blog
Ubuntu tutorial - IT technology blog

なぜUbuntuをプリントサーバーとして使うのか?

オフィスでUSBケーブルを持ってプリンターまで走り回る光景はお馴染みかもしれませんが、非常に面倒なものです。3〜5万円もする新しいネットワークプリンター(Network Printer)を購入する代わりに、古いMini PCやUbuntuを搭載したRaspberry Piをプリントサーバーとして活用できます。

私はこのシステムを、古いHP LaserJet 1020を使用して15人規模のオフィスに導入しました。6ヶ月以上経過しても、システムは再起動なしでスムーズに動作しています。Mini PCの消費電力はわずか10〜15W程度で、プリンターを共有するためだけにWindows PCを24時間稼働させる(通常100W以上消費)よりもはるかに経済的です。Ubuntu Serverは非常に軽量で、集中管理が可能であり、Windows、macOS、Linuxとの互換性も抜群です。

UbuntuへのCUPSのインストール

以下の手順は、Ubuntu 22.04および24.04の両方で適用可能です。まず、プリンターをサーバーのUSBポートに接続し、デバイスが認識されていることを確認してください。

ソフトウェアリポジトリを更新し、CUPS(Common Unix Printing System)パッケージをインストールします:

sudo apt update
sudo apt install cups -y

以下のコマンドでサービスのステータスを確認します:

sudo systemctl status cups

緑色の文字で active (running) と表示されていれば、サービスは準備完了です。管理を容易にするために、現在のユーザーを lpadmin グループに追加することをお勧めします。これにより、root権限を使わずにプリンター設定を変更できるようになります:

sudo usermod -aG lpadmin $USER

Web UI経由のリモート管理権限の解放

デフォルトでは、CUPSはインストールされたマシン自体(localhost)からのみ管理インターフェースへのアクセスを許可しています。ディスプレイのないUbuntu Serverの場合、ローカルネットワーク内の他のPCのブラウザからアクセスできるようにリモート管理権限を解放する必要があります。

メインの設定ファイルを編集します:

sudo nano /etc/cups/cupsd.conf

CUPSがすべてのIPアドレスでリスンし、LAN内の子機からのアクセスを許可するように、以下のパラメータを探して変更してください:

# Listen localhost:631 を以下に変更:
Listen 0.0.0.0:631

# <Location /> および <Location /admin> セクションに Allow @LOCAL 行を追加:
<Location />
  Order allow,deny
  Allow @LOCAL
</Location>

<Location /admin>
  Order allow,deny
  Allow @LOCAL
</Location>

Ctrl + Oで保存し、Ctrl + Xで終了します。サービスを再起動して変更を適用します:

sudo systemctl restart cups

UFWファイアウォールを有効にしている場合は、ポート631を開放するのを忘れないでください:

sudo ufw allow 631/tcp

Webインターフェース経由でのプリンター追加

ネットワーク内の別のPCを使用し、ブラウザで https://[<a href="https://itfromzero.com/ja/linux/ubuntu-ja-linux/ubuntu%e3%81%a7netplan%e3%82%92%e3%83%9e%e3%82%b9%e3%82%bf%e3%83%bc%e3%81%99%e3%82%8b%ef%bc%9a%e5%9b%ba%e5%ae%9aip%e8%a8%ad%e5%ae%9a%e3%81%8b%e3%82%89%e3%83%97%e3%83%ad%e3%83%95%e3%82%a7%e3%83%83.html">UbuntuサーバーのIP</a>]:631 にアクセスします。セキュリティ証明書に関する警告が表示されますが、「詳細設定」を選択してアクセスを続行してください。

  1. Administration タブにアクセスし、Add Printer をクリックします。
  2. 求められたら、Ubuntuマシンのユーザー名とパスワードを入力します。
  3. リストからUSBポートに接続されている正しいプリンター名を選択し、Continue をクリックします。
  4. 分かりやすい名前(例:Ke_Toan_HP)を付けます。スペースや記号は避けてください。Share This Printer のチェックボックスをオンにします。
  5. 適切なドライバーを選択します。正確なモデルが見つからない場合は、以下の一般的なドライバーパッケージを追加でインストールしてください:
sudo apt install hplip printer-driver-all -y

個人用PCからの接続

Windowsの場合

WindowsはCUPSのIPPプロトコルを非常に良くサポートしています。サーバー側が正しく設定されていれば、通常、各クライアントPCに個別のドライバーをインストールする必要はありません。

  1. 設定 > Bluetooth とデバイス > プリンターとスキャナー を開きます。
  2. デバイスの追加 を選択し、プリンターが一覧にない場合 をクリックします。
  3. 共有プリンターを名前で選択する を選びます。
  4. パスを入力します:http://[UbuntuサーバーのIP]:631/printers/[プリンター名]

LinuxおよびmacOSの場合

システムがローカルネットワーク内のプリンターを自動的に検出します。プリンター設定画面に移動し、「追加」を押してUbuntuから共有されているプリンターを選択するだけで完了です。

システムを安定して運用するための注意点

実際の経験から、プリントサーバーをしばらく運用すると、以下のような小さなトラブルが発生することがあります:

  • 用紙詰まりエラー(Paused): 用紙切れや紙詰まりが発生すると、CUPSは印刷キューを一時停止(Pause)することがよくあります。ハードウェアの問題を解決した後、Web UIにアクセスし、プリンターを選択して「Resume Printer」をクリックして再開する必要があります。
  • IPアドレスの固定: Ubuntu Serverには静的IPを設定してください。IPが変わると、すべてのクライアントPCからの接続が即座に切断されます。
  • ログの確認: 印刷できない場合は、ログファイルを読み取って正確な原因を特定してください:
tail -f /var/log/cups/error_log

自前でプリントサーバーを構築することは、予算の節約になるだけでなく、柔軟な管理も可能にします。古いPCと数分の設定だけで、オフィス全体の印刷課題を根本的に解決できます。

Share: