GNU/Linux >> Linux の 問題 >  >> Ubuntu

UbuntuでCUPSプリントサーバーをセットアップする(Bonjour、IPP、Samba、AirPrint)

このチュートリアルでは、Ubuntuコンピューターに接続されているプリンターを同じネットワーク上のWindows、macOS、およびiOSクライアントと共有する方法を示します。 CUPS (Common Unix Printing System)は、Linux、FreeBSD、およびmacOSのデフォルトの印刷システムです。 Linuxデスクトップ環境には専用のプリンタ構成ユーティリティがある場合がありますが、それらはすべて内部でCUPSを使用します。

CUPSプリンターは、次のようないくつかのプロトコルを使用してネットワーク上で共有できます。

  • Bonjour + IPP :Bonjourは、mDNS / DNS-SD(マルチキャストDNS / DNSサービス検出)とも呼ばれ、コンピューターがローカルネットワーク上のサービスを検索できるようにします。 IPP(インターネット印刷プロトコル)はトランスポートプロトコルです。
  • SMB :別名Samba、主にWindowsクライアントとファイルやプリンターを共有するために使用されます。
  • AirPrint :iPhone、iPad、およびmacOSクライアントがWi-Fi経由で印刷できるようにします。

各プロトコルには長所と短所があります。まず、CUPSをインストールして構成する方法を説明します。次に、上記の3つのプロトコルを介してCUPSプリンターを共有する方法を学習します。 3つの方法すべてを使用してプリンタを共有することをお勧めします。そうすれば、ユーザーは最小限の労力でローカルネットワーク上で利用可能なプリンタを見つけることができます。

ステップ1:UbuntuにCUPSをインストールして構成する

Ubuntuデスクトップ版にはCUPSがプリインストールされています。 Ubuntu Server Editionを使用している場合は、次のコマンドを実行して、デフォルトのUbuntuリポジトリからCUPSをインストールする必要があります。

sudo apt install cups

次に、CUPSを開始します。

sudo systemctl start cups

起動時に自動起動を有効にします。

sudo systemctl enable cups

ステータスを確認してください:

systemctl status cups

サンプル出力:

次に、Nanoなどのコマンドラインテキストエディタを使用して、CUPSのメイン構成ファイルを編集します。

sudo nano /etc/cups/cupsd.conf

まず、ローカルネットワーク上の共有プリンターを表示する必要があります。次の行を見つけます。

Browsing Off

に変更

Browsing On

そのため、同じネットワーク内の他のコンピューターは、Ubuntuコンピューターに接続されているプリンターを見ることができます。

デフォルトでは、CUPSWebインターフェースはlocalhost:631でのみ使用できます。 。 Ubuntu Server Editionを実行している場合は、利用可能なすべてのネットワークインターフェイスでCUPSをリッスンさせて、他のコンピューターからCUPSWebインターフェイスにアクセスできるようにすることもできます。次の行を見つけます。

Listen localhost:631

に変更

Port 631

したがって、CUPSはすべてのネットワークインターフェイスでリッスンします。次に、次の行を見つけます。

<Location />
  Order allow,deny
</Location>

上記の設定では、ローカルホストからのみCUPSWebインターフェイスにアクセスできます。同じネットワーク内の他のコンピューターからのアクセスを許可するには、Allow @LOCALを追加します 以下のような構成に。

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

/adminにも追加します ローカルネットワークからのリモート管理を可能にするディレクトリ。

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

次のように特定のIPアドレスを許可することもできます:

<Location />
  Order allow,deny
  Allow 192.168.0.101
</Location>

ファイルを保存して閉じます。次に、変更を有効にするためにCUPSを再起動します。

sudo systemctl restart cups

UbuntuでUFWファイアウォールを有効にしている場合は、同じネットワーク内のクライアントがUbuntuボックスのポート631にアクセスできるようにする必要があることに注意してください。たとえば、プライベートネットワークは192.168.0.0〜192.168.0.255のネットワーク範囲を使用しているため、次のコマンドを実行します。

sudo ufw allow in from 192.168.0.0/24 to any port 631

CUPS Webインターフェースは、https://IP-address-of-Ubuntu-box:631で入手できます。 。この記事ではウェブインターフェースを使用する必要はありませんが、ウェブインターフェースを使用する場合は、ユーザーアカウントをlpadminに追加する必要があります。 CUPSWebインターフェースを変更するためにグループ化します。

sudo adduser your_username lpadmin

ステップ2:Ubuntuにプリンター用のドライバーをインストールする

Ubuntuにドライバーをインストールして、プリンターを認識して使用できるようにする必要があります。 HPプリンターをお持ちの場合は、次のコマンドでドライバーを簡単にインストールできます。

sudo apt install hplip

printer-driver-gutenprintもインストールすることをお勧めします パッケージ。Canon、Epson、HP、および互換性のあるプリンター用のCUPSドライバーを提供します。

sudo apt install printer-driver-gutenprint

他のプリンターがある場合は、openprinting.orgでドライバーを見つけることができます。

ドライバーをインストールした後、UbuntuコンピューターのUSBポートにプリンターを再接続する必要がある場合があります。ドライバーが正しく機能しているかどうかをテストするには、Ubuntuでテキストファイルを作成します。

echo "LinuxBabe is awesome!" > file.txt

次に、次のコマンドを実行して、コマンドラインからこのテキストファイルを印刷します。

lp file.txt

これは非常に基本的な方法なので、今は印刷品質について心配する必要はありません。

ステップ3:Bonjour/IPPプロトコルを介してCUPSプリンターを共有する

Avahiデーモンのインストール

CUPSは、mDNS(マルチキャストDNS)およびDNS-SD(DNSサービスディスカバリ)プロトコル(Bonjourとも呼ばれます)を介して、ネットワーク上での存在をアナウンスできます。そのためには、avahi-daemonをインストールして実行する必要があります 、これはApple Bonjourサービスに類似したサービスであり、コンピュータがローカルネットワーク上の共有デバイスとサービスを自動的に検出できるようにします。

sudo apt install avahi-daemon

avahi-daemonを起動します。

sudo systemctl start avahi-daemon

起動時に自動起動を有効にします。

sudo systemctl enable avahi-daemon

AvahiデーモンはUDPポート5353でリッスンします。ファイアウォールで開きます。

sudo ufw allow 5353/udp

IPPドライバーレス印刷

Bonjourは、ローカルネットワーク上でプリンターをアドバタイズするために使用されます。クライアントとCUPSサーバーが相互に通信できるようにするには、IPP(インターネット印刷プロトコル)が必要です。 IPPの利点は、クライアントが自分のデバイスにドライバーをインストールしなくても共有プリンターを使用できることです。 CUPSはそのままIPPをサポートしているため、IPPを介してCUPSプリンターを共有するために他に何もする必要はありません。

ステップ4:クライアントコンピューターにプリンターを追加する

macOSおよびLinuxクライアント

macOSおよびほとんどのLinuxデスクトップディストリビューションにはデフォルトの印刷システムとしてCUPSがインストールされているため、UbuntuボックスでBonjour / IPPを介したプリンター共有を有効にすると、同じネットワーク内のmacOSおよびLinuxユーザーがプリンターを自動的に使用できます。アプリケーション(ワードプロセッサ、電子メールリーダー、フォトエディタ、およびWebブラウザ)で印刷オプションをクリックすると、プリンタが自動的に使用可能になります。プリンタを明示的に追加する必要はありません。魔法です。

Linuxコンピュータがプリンタを見つけられない場合は、システムにippfindがない可能性があります。 指図。次のコマンドを実行して、DebianベースのLinuxディストリビューションにインストールします。

sudo apt install cups-ipp-utils

CentOS 8では、次のコマンドを実行します。

sudo dnf install cups-ipptool

次に、クライアントコンピューターでCUPSを再起動します。

sudo systemctl restart cups

ウィンドウ

Windows10にはIPPクライアントが付属しています。 プリンタと入力します 左下の検索バーでプリンタとスキャナーを開きます 。次に、プリンタまたはスキャナーを追加をクリックします ボタン。ローカルネットワーク上で利用可能なプリンタをスキャンします。

ご覧のとおり、HPDeskjetプリンターが見つかりました。見つかったプリンタを選択し、デバイスの追加をクリックします 。すぐにプリンタリストに追加されます。

この方法でプリンタを追加できない別のバージョンのWindowsを使用している場合は、BonjourPrintサービスをインストールできます。インストールしたら、Bonjourプリンターウィザードを起動します。ローカルネットワーク上で利用可能なプリンターを自動的にスキャンします。スクリーンショットからわかるように、HPプリンターが見つかりました。

[次へ]をクリックしてから、このプリンターのドライバーを選択する必要があります。デフォルトでシステムにインストールされているMicrosoftIPPクラスドライバを選択できます。

[次へ]をクリックすると、プリンタがWindowsシステムに追加されます。

Linuxでのプリンタの手動追加

何らかの理由でプリンタが表示されない場合は、手動で追加できます。デスクトップLinuxにBonjour共有プリンターを追加するには、システム設定またはアプリケーションメニューでプリンター構成ユーティリティを検索します。 追加をクリックします ボタンをクリックして新しいプリンタを追加します。

次に、[ネットワークプリンター]をクリックすると、ローカルネットワークで利用可能なプリンターが自動的にスキャンされます。ご覧のとおり、HPDeskjetプリンターが見つかりました。 転送をクリックします ボタン。

次に、プリンタに名前と説明を付けることができます。私は単にデフォルト値を受け入れます。 適用をクリックします これで完了です。

macOSに手動でプリンタを追加する

macOSにBonjour共有プリンターを追加するには、システム環境設定に移動します ->プリンターとスキャナー 。プラス(+)ボタンをクリックして、プリンタを追加します。

ローカルネットワーク上で利用可能なプリンタを自動的にスキャンします。ご覧のとおり、HPDeskjetプリンターが見つかりました。

追加をクリックします ボタンをクリックすると、プリンタリストに表示されます。

ステップ5:Sambaを介してCUPSプリンターを共有する

Sambaは、UnixおよびLinux用の無料のオープンソースSMB / CIFSプロトコル実装であり、ローカルエリアネットワーク内のUnix/LinuxマシンとWindowsマシン間でファイルおよび印刷を共有できます。これは主に、ファイルとプリンタをWindowsクライアントと共有するために使用されます。

UbuntuにSambaをインストールするには、ターミナルで次のコマンドを実行するだけです。

sudo apt install samba samba-common-bin

Sambaサービスが実行されているかどうかを確認するには、次のコマンドを発行します。

systemctl status smbd

systemctl status nmbd

これら2つのサービスを開始するには、次のコマンドを発行します。

sudo systemctl start smbd

sudo systemctl start nmbd

次に、メインの構成ファイルを編集します。

sudo nano /etc/samba/smb.conf

spoolssdを有効にすることをお勧めします プリンタを共有するときのサービス。これにより、印刷ジョブが多い場合にSambaがより効率的になります。 [global]に次の2行を追加するだけです spoolssdを有効にするセクション サービス。

 rpc_server:spoolss = external
 rpc_daemon:spoolssd = fork

次に、ファイルの最後に移動すると、[printers]が表示されます。 セクション。 Nanoテキストエディタでは、Ctrl+Wを押すと、ファイルの最後にジャンプできます。 、次にCtrl+Vを押します 。次の2行を見つけます。

browseable = no
guest ok = no

それらを

に変更します
browseable = yes
guest ok = yes

ファイルを保存して閉じます。次に、Sambaを再起動します。

sudo systemctl restart smbd nmbd

WindowsでのSamba共有プリンターの追加。

ファイルエクスプローラーを開き、\\192.168.0.110のようなアドレスバーにUbuntuコンピューターのIPアドレスを入力します 。これで、プリンタが一覧表示されます。

プリンタをダブルクリックして、Windowsシステムに追加します。次に、[OK]ボタンをクリックして、インストールするドライバーを選択します。ドライバをインストールすると、プリンタがWindowsシステムに追加されます。

ステップ6:AirPrintを介してCUPSプリンターをiOSクライアントと共有する

AirPrintを使用すると、iPhone、iPad、およびmacOSクライアントは、クライアントデバイスにドライバーソフトウェアをインストールしなくても、Wi-Fi経由で印刷できます。 CUPSはAirPrintをサポートしていますが、avahi-daemon デフォルトでは、ローカルネットワークでAirPrintサービスをアナウンスしません。 .serviceを作成する必要があります /etc/avahi/services/内のファイル 次のコマンドを使用したPythonスクリプトを使用したプリンタのディレクトリ。私のプリンタのモデルはDeskJet2130シリーズです。自分のモデル名に置き換えてください。

sudo nano /etc/avahi/services/AirPrint-DeskJet-2130-series.service

ファイルに次の行を追加します。

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">AirPrint DeskJet-2130-series @ %h</name>
  <service>
    <type>_ipp._tcp</type>
    <subtype>_universal._sub._ipp._tcp</subtype>
    <port>631</port>
    <txt-record>txtvers=1</txt-record>
    <txt-record>qtotal=1</txt-record>
    <txt-record>Transparent=T</txt-record>
    <txt-record>URF=none</txt-record>
    <txt-record>rp=printers/DeskJet-2130-series</txt-record>
    <txt-record>note=HP DeskJet 2130 series</txt-record>
    <txt-record>product=(GPL Ghostscript)</txt-record>
    <txt-record>printer-state=3</txt-record>
    <txt-record>printer-type=0x2900c</txt-record>
    <txt-record>pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,image/urf,text/html,text/plain,application/vnd.adobe-reader-postscript,application/vnd.cups-pdf</txt-record>
  </service>
</service-group>

ファイルを保存して閉じます。 Avahiデーモンを再起動します。

sudo systemctl restart avahi-daemon

これで、同じネットワーク内のiOSクライアントとmacOSクライアントがプリンターを使用できるようになります。次のスクリーンショットは、iPhoneがAirPrintプリンターを正常に検出したことを示しています。


Ubuntu
  1. Ubuntu /DebianLAMPサーバーをセットアップする方法

  2. Ubuntu20.04でリバースプロキシとしてNginxを設定する方法

  3. ネットワーク接続なしで18.04サーバーをインストールしますか?

  1. Ubuntu18.04にSquidプロキシサーバーをセットアップしてインストールする方法

  2. Ubuntu18.04でOpenVPNサーバーをセットアップする方法

  3. Ubuntu20.04でNginxサーバーブロックを設定する方法

  1. Ubuntu14.04LTSでのSambaサーバー構成

  2. Ubuntu14.10へのSambaサーバーのインストール

  3. Ubuntu15.10へのSambaサーバーのインストール