如何在 Ubuntu 20.04 上設置 CUPS 打印服務器

如果您的企業在網絡中有多台需要打印的個人計算機,那麼我們需要一個稱為打印服務器的設備。 打印服務器充當 PC 和打印機之間的中介,它接受來自 PC 的打印作業並將它們發送到各自的打印機。

CUPS 是類 Unix 操作系統中用於打印和打印服務的主要機制。 它可以讓計算機充當打印服務器。

在本教程中,我們將學習如何 設置 CUPS 打印服務器Ubuntu 20.04.

先決條件

  • 與打印機建立網絡連接的 Ubuntu 服務器 20.04 機器
  • 用於訪問打印機的客戶端 Ubuntu 桌面版或服務器版

1. 在 Ubuntu 上安裝 CUPS

CUPS 是包括 Ubuntu 在內的大多數 Linux 發行版中的標準打印系統。 它支持打印作業、隊列、網絡打印(使用 IPP)、支持多種打印機、網絡打印機的自動檢測、Web 管理等。

首先,獲取您的 Ubuntu 系統更新:

$ sudo apt update

CUPS 默認安裝在 Ubuntu 桌面版中。 要在 Ubuntu 服務器版上安裝 cups,請在終端上輸入以下命令:

$ sudo apt install cups

啟動cups守護進程:

$ sudo systemctl start cups

驗證守護進程是否正在運行:

$ sudo systemctl status cups

輸出:

●cups.service – CUPS Scheduler Loaded:已加載(/lib/systemd/system/cups.service;已啟用;供應商預設:已啟用) Active:自 Sun 2021-08-15 01:31:30 WAT 起處於活動狀態(運行); 53 分鐘前 TriggeredBy: ● cups.socket ● cups.path 文檔:man:cupsd(8) 主 PID:971 (cupsd) 狀態:“調度程序正在運行…” 任務:1(限制:18958)內存:26.3M …

此外,啟用 cups 守護程序以在啟動時啟動:

$ sudo systemctl enable cups

2. 在 Ubuntu 上配置 CUPS

可以使用 Web 界面配置 CUPS(可在 https://localhost:631/admin) 或通過文件 /etc/cups/cupsd.conf 中包含的指令。 讓我們來看看如何配置 CUPS 配置文件來設置打印機服務器。

首先,通過保存默認配置的副本來備份配置文件。 這是以防萬一出現問題並且您想撤消操作。

$ sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.copy

使用您喜歡的編輯器打開原始文件並更改以下內容。

要讓 CUPS 偵聽所有網絡接口,請禁用顯示的行 Listen localhost:631 (在“僅偵聽來自本地機器的連接”部分下)並添加行 Port 631 如下:

#Listen localhost:631
Port 631

確保指令 Browsing On 已啟用以顯示本地網絡上的共享打印機(在“顯示本地網絡上的共享打印機”部分中):

Browsing On

BrowseLocalProtocolsdnsd 協議(支持 Bonjour),默認情況下它是啟用的。

BrowseLocalProtocols dnssd

在“限制對服務器的訪問”部分下添加 Allow @LOCAL 允許從網絡中的其他計算機訪問。

#Restrict access to the server
<Location />
Order allow,deny
Allow @LOCAL
<Location>

在“限制訪問 admin 頁的添加 /admin 允許從另一台計算機訪問的目錄 admin 頁。

#Restrict access to the admin pages.
<Location /admin>
Order allow,deny
Allow @LOCAL
<Location>

Save 和 close 文件。 然後重新啟動 cups 守護程序以使更改生效:

$ sudo systemctl restart cups

如果您更喜歡使用 CUPS Web 界面進行配置,建議使用 root 或在 lpadmin 組中通過身份驗證的用戶。

將用戶添加到 lpadmin 組,類型:

$ sudo usermod -aG lpadmin username

3. 安裝您的打印機驅動程序

大多數 HP 打印機默認在 Linux 上工作。 HP 驅動程序稱為 hplip,已安裝在大多數 Linux 發行版上。

注意:在安裝驅動程序之前,請嘗試啟動 CUPS 服務,看看它是否會自動檢測到打印機。

如果未安裝,請使用以下命令安裝 HP 驅動程序:

$ sudo apt install hplip

您可以在以下位置找到更多打印機驅動程序 openprinting.org.

4. 安裝 Bonjour 以共享 CUPS 打印機

我們已經指示 cups 守護程序使用 Bonjour (DNSSD) 協議在網絡上打印可發現的服務。

對於打印機服務發現,您需要安裝具有 mDNS/DNS-SD 服務發現的 avahi-daemon。 avahi-daemon 是一個 Bonjour 服務器,它將在網絡上廣播您的計算機信息。 它允許 CUPS 在沒有特定配置的情況下發布/發現在本地網絡上運行的服務和主機。

要在 Ubuntu 上安裝 avahi-daemon,請輸入:

$ sudo apt install avahi-daemon

要啟動 avahi-daemon,請輸入:

$ sudo systemctl start avahi-daemon

現在您可以在啟動時啟用 avahi-daemon:

$ sudo systemctl enable avahi-daemon

驗證正在運行的 avahi-daemon:

$ sudo sytemctl status avahi-daemon

輸出顯示 192.168.43.105 作為網絡上的服務端點之一:

● avahi-daemon.service – Avahi mDNS/DNS-SD Stack Loaded:已加載(/lib/systemd/system/avahi-daemon.service;已啟用;供應商預設:已啟用) Active:自 2021-08 日起處於活動狀態(運行)- 15 09:45:44 瓦特; 11s 前 TriggeredBy: ● avahi-daemon.socket Main PID:11518 (avahi-daemon) 狀態:“avahi-daemon 0.8 正在啟動”。 任務:2(限制:18958)內存:1.0M … Aug 15 09:45:44 user-HP-EliteBook-Folio-9470m avahi-daemon[11518]: 在 wlo1.IPv4 上為 192.168.43.105 註冊新的地址記錄。 … 8 月 15 日 09:45:45 user-HP-EliteBook-Folio-9470m avahi-daemon[11518]: 服務器啟動完成。 主機名為 user-HP-EliteBook-Folio-9470m.local。

解鎖端口

如果您啟用了防火牆,請確保允許客戶端的機器與 CUPS 端口 631 通信。

假設 ufw 是您的防火牆程序:

$ sudo ufw allow 631/tcp

以及 avahi-daemon 的 UDP 端口 5353:

$ sudo ufw allow 5353/udp

在客戶端計算機上添加打印機

讓我們檢查如何在使用 CUPS 打印服務器共享的客戶端 Ubuntu 機器上添加遠程打印機。

要解釋來自 CUPS 打印服務器的 Bonjour 廣播,客戶端可以使用 cups-browsed(它是 CUPS 的一個組件 – 支持 IPP)或 avahi-client(默認安裝)。 打印管理需要 IPP,幫助客戶端計算機在不安裝任何驅動程序的情況下使用共享打印機。

cups-browsed 守護進程會自動在網絡中查找共享打印機,通常您不必添加打印機。

如果您的客戶端是 Ubuntu 服務器版本,請確保安裝(大多數 Linux 發行版 CUPS 已預裝)、啟用、啟動 cups。

$ sudo apt install cups
$ sudo systemctl start cups && sudo systemctl enable cups

如果遠程打印機沒有自動發現,則手動添加。

按您的窗口鍵並轉到設置 > 打印機。

單擊添加按鈕。

點擊添加按鈕

添加打印服務器的 IP 地址或名稱,然後單擊“查找”按鈕。

查找網絡打印機

從列表中選擇打印機,然後單擊前進按鈕。

從列表中選擇打印機

為您的打印機提供簡短說明,然後單擊應用按鈕。

提供您選擇的打印機名稱

您可以使用 lp 命令從命令行運行測試打印並觀看魔術:

$ lp document.txt

結論

在本教程中,我們學習瞭如何在 Ubuntu 20.04 上設置 CUPS 打印服務器。 請在評論部分告訴我們您的反饋和建議。