如果您的企業在網絡中有多台需要打印的個人計算機,那麼我們需要一個稱為打印服務器的設備。 打印服務器充當 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
放 BrowseLocalProtocols
到 dnsd
協議(支持 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 打印服務器。 請在評論部分告訴我們您的反饋和建議。