--- modified: 2023-05-24T03:05:02.280Z title: 使用 CUPS 搭建 Linux 打印服务器 --- # 使用 CUPS 搭建 Linux 打印服务器 ## 1. 搭建基本环境 安装软件包: ```bash # Manjaro sudo pacman -S cups avahi nss-mdns ``` Avahi 可用于网络服务的自动发现,Edit the file /etc/nsswitch.conf and change the hosts line to include mdns_minimal [NOTFOUND=return] before resolve and dns: ```bash hosts: mymachines mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] files myhostname dns ``` 使能 Avahi 发现服务。 ```bash sudo systemctl start avahi-daemon.service sudo systemctl enable avahi-daemon.service ``` 创建并编辑 /etc/systemd/system/cups.socket.d/override.conf 文件,内容如下: ```bash [Socket] ListenStream=631 ``` 使能 CUPS 服务: ```bash sudo systemctl start cups sudo systemctl enable cups # Sharing via Line Printer Daemon protocol sudo systemctl start cups-lpd.socket sudo systemctl enable cups-lpd.socket ``` ## 2. 配置 CUPS 服务 通过浏览器访问服务器 631 端口进入 CUPS 管理页面,配置 CUPS 服务,进入 Administration->Server 点击 Advanced 按钮,勾选: - Share printers connected to this system - Allow printing from the Internet - Advertise web interface - Allow users to cancel any job (not just their own) - Preserve job history 根据实际需求选择是否勾选 Allow remote administration。 以上配置实际上开启了 Internet Printing Protocol 共享打印服务和 DNS-SD 广播。如果使能了 cups-lpd.socket 也同时开启了 Line Printer Daemon Protocol 共享打印服务。另外 CUPS 还支持通过 Samba 协议来共享打印。 如果无法通过浏览器来访问 CUPS 配置,则可以通过修改 /etc/cups/cupsd.conf 文件的方式来配置 CUPS。 ## 3. 安装打印机 可以通过 CUPS 页面安装打印机,也可以在服务器上直接安装。CUPS 支持本地打印机也支持网络打印机。 ### 3.1. Linux 安装 HP 打印机驱动 需要安装 HPLIP 程序,该程序支持 Windows、Mac 和多个 Linux 分版。 ```bash # Manjaro sudo pacman -S hplip # 安装打印机插件 sudo hp-plugin ``` 之后在打印机配置面板中添加打印机,选择对应型号即可。添加完打印机后,在 CUPS Web 页面 Printers 中可以看到该打印机。 ## 4. Windows 系统连接 CUPS 共享打印服务 ### 4.1. 自动搜索共享打印机 如果开启了系统防火墙或杀毒软件的防火墙,请暂时关闭防火墙或允许相关服务通过防火墙,否则容易导致 Windows 无法添加 CUPS 共享打印机。需要使用共享打印的计算机与打印服务器需要处在同一局域网内。 在搜索中输入“打印机”,进入 Windows 系统打印机和扫描仪页面,点击“加号”按钮自动搜索网络打印机,点击该打印机型号则自动安装驱动并添加打印机。 ### 4.2. 手动添加共享打印机 如果无法搜索到打印机,可以通过浏览器访问服务器 631 端口进入 CUPS 管理页面,点击 Printers 进入到具体的打印机页面,然后从浏览器地址栏复制地址(例如:)。 在 Windows 打印机和扫描仪中点击“我需要的打印机不在列表中”,选择“使用 IP 地址或主机名添加打印机”,选择添加的设备类型为“IPP设备”,将复制的地址连接粘贴到“主机名或 IP 地址”栏中,点击下一步等待安装完成即可。 ## 外部参考资料 1. [CUPS/Printer sharing](https://wiki.archlinux.org/title/CUPS/Printer_sharing) 2. [Avahi](https://wiki.archlinux.org/title/Avahi) 3. [配置和使用 CUPS 打印服务器](https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/9/html-single/configuring_and_using_a_cups_printing_server/index#using-samba-to-print-to-a-windows-print-server-with-kerberos-authentication_configuring-printing)