GNU/Linux >> Linux の 問題 >  >> Cent OS

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

このチュートリアルでは、CentOS 8 / RHEL 8コンピューターに接続されているプリンターを同じネットワーク上の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:CentOS 8 /RHEL8にCUPSをインストールして構成する

CentOS 8 /RHEL8デスクトップエディションにはCUPSがプリインストールされています。 CentOS 8 / RHEL 8サーバーエディションを使用している場合は、次のコマンドを実行して、デフォルトのCentOS 8 /RHEL8リポジトリからCUPSをインストールする必要があります。

sudo dnf install cups

次に、CUPSを開始します。

sudo systemctl start cups

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

sudo systemctl enable cups

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

systemctl status cups

サンプル出力:

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

sudo nano /etc/cups/cupsd.conf

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

Listen localhost:631

次のように変更すると、CUPSはすべてのネットワークインターフェイスでリッスンします。

Port 631

次の行では、CUPSにローカルネットワーク上の共有プリンターが表示されるため、同じネットワーク内の他のコンピューターは、CentOS 8 /RHEL8コンピューターに接続されているプリンターを見ることができます。

Browsing On

次に、次の行を見つけます。

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

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

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

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

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

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

sudo systemctl restart cups

同じネットワーク内のクライアントがCentOS8/RHEL8コンピューターのポート631にアクセスできるようにする必要があります。

sudo firewall-cmd --permanent --add-port=631/tcp

変更を有効にするには、ファイアウォールをリロードします。

sudo systemctl reload firewalld

メインのcups.serviceに加えて 、cups-browsed.serviceもあります 、ローカルネットワークからプリンタをスキャンして追加するために使用されます。 CentOS 8 / RHEL 8コンピューターでローカルネットワーク上の他のプリンターを使用できるようにする場合は、このサービスを開始します。

sudo systemctl start cups-browsed

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

sudo systemctl enable cups-browsed

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

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

sudo dnf install hplip

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

sudo dnf install gutenprint-cups

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

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

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 dnf install avahi

nss-mdnsもインストールする必要があります クライアントが.localを解決するために必要なEPELリポジトリからのパッケージ ネットワーク上のドメイン。

sudo dnf install epel-release

sudo dnf install nss-mdns

avahi-daemonを起動します。

sudo systemctl start avahi-daemon

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

sudo systemctl enable avahi-daemon

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

sudo firewall-cmd --permanent --add-port=5353/udp

変更を有効にするには、ファイアウォールをリロードします。

sudo systemctl reload firewalld

IPPドライバーレス印刷

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

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

macOSおよびLinuxクライアント

macOSおよびほとんどのLinuxデスクトップディストリビューションにはデフォルトの印刷システムとしてCUPSがインストールされているため、CentOS 8 /RHEL8ボックスで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クライアントと共有するために使用されます。

CentOS 8 / RHEL 8にSambaをインストールするには、次のコマンドを実行します。

sudo dnf install samba

次に、次のコマンドを発行してsmbdを開始します およびnmbd サービス。

sudo systemctl start smb nmb

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

sudo systemctl enable smb nmb

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

systemctl status smb nmb

開始すると、smb デーモンはTCPポート139および445でリッスンします。nmbd UDPポート137および138でリッスンします。次のコマンドを実行して、ファイアウォールでこれらのポートを開きます。

sudo firewall-cmd --permanent --add-service=samba

変更を有効にするためにファイアウォールデーモンをリロードします。

sudo systemctl reload firewalld

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

sudo nano /etc/samba/smb.conf

[printers]を探す セクション。デフォルトでは、次のようになります。

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

browseableの値を変更する必要があります yesに 、したがって、同じネットワーク内のクライアントがプリンタを見つけて、guest ok = yesを追加できるようにします。 ネットワーク内の誰もがプリンタを使用できるようにします。

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = yes
        guest ok = yes

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

 rpc_server:spoolss = external
 rpc_daemon:spoolssd = fork

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

sudo systemctl restart smb nmb

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

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

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

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

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

wget https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py

実行権限を追加します。

chmod +x airprint-generate.py

このPythonスクリプトはPython2用に作成されています。 CentOS 8 /RHEL8はデフォルトでPython3を使用します。 Python2をインストールする必要があります。

sudo dnf install python2

このファイルを編集します。

nano airprint-generate.py

変更

#!/usr/bin/env python

#!/usr/bin/env python2

ファイルを保存して閉じます。次に、依存関係をインストールします。

sudo dnf install gcc python2-devel cups-devel redhat-rpm-config

カップモジュールを取り付けます。

sudo pip2 install cups pycups

次に、このスクリプトを実行します。

sudo ./airprint-generate.py -d /etc/avahi/services/

ここで、.serviceが必要です。 /etc/avahi/services/の下のファイル プリンタのディレクトリ。

ls /etc/avahi/services/

サンプル出力:

AirPrint-DeskJet-2130-series.service

Avahiデーモンを再起動します。

sudo systemctl restart avahi-daemon

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


Cent OS
  1. CentOS 6 /RHEL6でのSysLogサーバーのセットアップ

  2. RHEL 8 /CentOS8にPuppetをインストールする方法

  3. CentOS 8でDHCPサーバーをセットアップする-その方法は?

  1. CentOS7でOpenVPNサーバーをセットアップする方法

  2. CentOS 8 /RHEL8にOpenLiteSpeedWebサーバーをインストールする方法

  3. CentOS6.5でのSambaサーバー構成

  1. CentOS8にSambaサーバーをインストールする方法

  2. Ubuntu20.04でCUPSプリントサーバーを設定する方法

  3. CentOSでSambaプリントサーバーをセットアップする方法