PR
PR

【Ubuntu】CUPSでプリンタサーバーを構築する方法

記事内に広告が含まれています。

Ubuntu 24.04 LTSを使用して、ローカルネットワーク内にあるクライアントから印刷できるプリンタサーバーを、CUPSを使って構築する方法をご紹介します。

プリンタサーバーの核となるCUPSとは?

CUPS (Common UNIX Printing System) は、LinuxやmacOSなどのUNIX系オペレーティングシステムで標準的に利用されている印刷システムです。

CUPSを利用することで、Ubuntuをプリンタサーバーとして機能させることができます。

基本的な仕組みとしては、サーバーとなるUbuntuにプリンタを登録し、他のコンピューターからの印刷ジョブを受け付けて、登録されたプリンタで印刷を行います。

CUPSのインストール

aptを使ってCUPSをUbuntuにインストールします。

$ sudo apt update
$ sudo apt install cups

cpusの起動と自動起動設定を行います。

$ sudo systemctl start cups
$ sudo systemctl enable cups

インストール後、CUPSサービスが正常に動作しているか確認します。

$ sudo systemctl status cups
* cups.service - CUPS Scheduler
     Loaded: loaded (/usr/lib/systemd/system/cups.service; enabled; preset: enabled)
     Active: active (running) since Sun 2025-04-20 00:00:01 JST; 13h ago
TriggeredBy: * cups.socket
             * cups.path
       Docs: man:cupsd(8)
   Main PID: 21444 (cupsd)
     Status: "Scheduler is running..."
      Tasks: 1 (limit: 9378)
     Memory: 932.0K (peak: 3.0M swap: 1.4M swap peak: 1.4M)
        CPU: 30ms
     CGroup: /system.slice/cups.service
             `-21444 /usr/sbin/cupsd -l

Apr 20 00:00:01 xxx systemd[1]: Starting cups.service - CUPS Scheduler...
Apr 20 00:00:01 xxx systemd[1]: Started cups.service - CUPS Scheduler.

「Active: active (running)」と表示されていれば正常に起動しています。

リモートアクセスを許可するためのCUPS設定

初期状態では、CUPSの設定はlocalhostからしか行えません。

他のコンピューターからWebインターフェースを通じて管理できるように、CUPSの設定ファイル「/etc/cups/cupsd.conf」をテキストエディタ編集します。

$ sudo cp -p /etc/cups/cupsd.conf /etc/cups/cupsd.conf_$(date "+%Y%m%d_%H%M%S")
$ sudo vi /etc/cups/cupsd.conf

編集内容

ファイルの編集内容は以下のとおりです。

  • Listen localhost:631をPort 631に変更
  • Browsing OffをBrowsing Onに変更
  • <Location />ディレクティブにAllow @LOCALを追加
  • <Location /admin>ディレクティブにAllow @LOCALを追加

Listen localhost:631をPort 631に変更

「Listen localhost:631」という行を探し、行頭に「#」を付けてコメントアウトし、「Port 631」という行を追加します。

これにより、すべてのインターフェースからの接続を受け付けるようになります。

# Listen localhost:631
Port 631

Browsing OffをBrowsing Onに変更

「Browsing Off」の行頭に「#」を付けてコメントアウトし、「Browsing On」という行を追加します。

これにより、ネットワーク上にプリンタ情報がブロードキャストされます。

#Browsing Off
Browsing On

<Location />ディレクティブにAllow @LOCALを追加

「Order allow,deny」の次に「Allow @LOCAL」を追記し、ローカルネットワークからのアクセスを許可します。

「@LOCAL」は「127.0.0.1」「[::1](IPv6のループバック)」および「サーバと同じネットワーク」からのアクセスを許可する設定です。

# 変更前
<Location />
  Order allow,deny
</Location>
  
# 変更後
<Location />
  Order allow,deny
  Allow @LOCAL
</Location>

<Location /admin>ディレクティブにAllow @LOCALを追加

「Order allow,deny」の次に「Allow @LOCAL」を追記し、ローカルネットワークからのアクセスを許可します。

# 変更前
<Location /admin>
  Order allow,deny
</Location>

# 変更後
<Location /admin>
  Order allow,deny
  Allow @LOCAL
</Location>

※より厳密にアクセスを制御したい場合は、「Allow from 192.168.1.0/24」といったのように特定のIPアドレス範囲を指定することもできます。

設定反映

cupsを再起動して設定を反映させます。

$ sudo systemctl restart cups

TCP/UDP 631番ポート通信許可設定

ファイアウォール (ufw) を有効にしている場合は、CUPSが使用するポート (TCP/UDP 631) での通信を許可する必要があります。

$ sudo ufw allow 631

lpadminグループにユーザー登録

CUPSのWebインターフェースでプリンタを登録する際には認証が必要です。

この認証には、「lpadmin」グループに所属しているUbuntuのユーザーアカウント(ユーザー名とパスワード)を使用するので、認証に使用したいユーザを以下のコマンドで「lpadmin」グループに追加します。

$ sudo usermod -aG lpadmin ユーザー名

avahi-daemonインストール

iOSやAndroidデバイスなどが、このプリンタサーバーをネットワーク上で自動的に発見できるようにするため、「avahi-daemon」をインストールします。

これは、ローカルネットワーク内でサービス(プリンタ共有など)を通知・発見するためのデーモンです。

$ sudo apt install avahi-daemon

インストール後、avahi-daemonの起動と自動起動設定を行います。

$ sudo systemctl start avahi-daemon
$ sudo systemctl enable avahi-daemon

UDP 5353番ポート通信許可設定

ファイアウォールが有効になっている場合は、avahi-daemonが通信に使用するUDPの5353番ポートの通信許可設定を行います。

$ sudo ufw allow 5353/udp

CUPSへのプリンタ登録

Webブラウザで「http://サーバーのIPアドレス:631」に接続して、CUPSのWebインターフェースにアクセスします。

あとは、以下の手順でプリンターを追加してください。

  1. 「管理」をクリック
  2. 「プリンター」セクションにある「プリンターの追加」ボタンをクリック
  3. ログインの認証(ユーザー名とパスワード)を求められた場合は、lpadminグループに追加したUbuntuのユーザーアカウント情報を入力しログインボタンをクリック
  4. 追加したいプリンタを選択し「続ける」ボタンをクリック
  5. 新しいプリンターの追加セクションで、プリンターの「名前」「説明」「場所」を入力し、「このプリンターを共有する」にチェックをいれて「続ける」ボタンをクリック
  6. 適切なプリンタの「メーカー」と「モデル」を選択し「プリンターの追加」ボタンをクリック
  7. 正常にプリンターがされた場合は、その旨のメッセージが表示されます

適切なモデルが見つからない場合

プリンターを追加する際に適切な「モデル」が一覧にない場合は、以下の方法を試してみてください。

  • プリンタメーカーのウェブサイトからドライバをダウンロードしてインストール
  • PPD(PostScript Printer Description)ファイルをダウンロードしてきて、「ファイルを選択」ボタンをクリックしてアップロード
  • 「Generic」(汎用)ドライバや「Raw Queue」(ドライバ処理をクライアントに任せる)を選択

PPDファイルについて

Mac用のプリンタドライバに

テストプリント

プリンターの登録が完了しましたら、テストプリントを行って正常に印刷できるか試してみてください。

上部メニューの「プリンター」をクリックし表示された画面の、「キュー名」部分に表示されているプリンターをクリックします。

プリンターの詳細情報が表示された画面が表示されるので、左側のメニューから「テストページの印刷」を選択します

これでテストページの印刷が始まります。

コメント

タイトルとURLをコピーしました