CUPS共享打印机服务

本文档详细介绍了如何在CentOS 6.0系统上安装和配置CUPS打印服务,并通过Samba实现远程共享打印。步骤包括安装CUPS和Samba,修改CUPS配置以允许远程访问,添加打印机,设置无认证共享,以及测试和查看打印日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统版本

CentOS Linux release 6.0 (Final)

1、安装yum

mount /dev/cdrom /mnt
rpm -ivh /mnt/Packages/yum-3.2.27-14.el6.centos.noarch.rpm

2、安装wget

rpm -ivh /mnt/Packages/wget-1.12-1.4.el6.i686.rpm

3、备份yum配置文件

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

4、下载yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

5、yum makecache生成缓存

yum makecache

6、关闭防火墙

service iptables stop
chkconfig iptables off 开机不启动防火墙
chkconfig --list | grep iptables
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
<think>我们注意到用户的问题是关于在Windows Server 2019上部署CUPS以实现打印机共享。但是,CUPS(Common UNIX Printing System)是一个为类Unix系统设计的打印系统,它并不原生支持在Windows上运行。然而,我们可以通过其他方式在Windows Server 2019上实现打印机共享,或者通过虚拟机在Windows Server上运行一个Linux系统来安装CUPS,然后共享打印机。 根据引用[4],我们可以了解到一种方案:在Windows Server上安装虚拟机,然后在虚拟机中安装Linux并配置CUPS,最后通过CUPS共享打印机。同时,引用[4]也提到了在Windows Server上启用打印服务器角色和共享打印机的基本步骤。 因此,我们可以提供两种方案: 1. 直接使用Windows Server 2019自带的打印服务器功能来共享打印机(无需CUPS)。 2. 在Windows Server 2019上通过虚拟机(如Hyper-V)安装Linux,然后在Linux中安装和配置CUPS,以实现更广泛的共享(包括跨平台设备)。 由于用户明确要求使用CUPS,我们将重点放在第二种方案上。 ### 步骤概述 1. 在Windows Server 2019上启用Hyper-V角色,创建虚拟机并安装Linux(如Ubuntu Server)。 2. 在Linux虚拟机中安装CUPS和必要的驱动程序。 3. 配置CUPS允许网络访问,并添加打印机(可以是连接到Windows Server的物理打印机,也可以是网络打印机)。 4. 在CUPS共享打印机,并确保防火墙设置允许打印服务。 5. 客户端(Windows、macOS、Linux、手机等)通过IPP协议连接CUPS共享打印机。 ### 详细步骤 #### 1. 启用Hyper-V并安装Linux虚拟机 - 在Windows Server 2019上,打开“服务器管理器”,点击“添加角色和功能”。 - 选择“基于角色或基于功能的安装”,然后选择当前服务器。 - 在“服务器角色”中,勾选“Hyper-V”,按照向导完成安装。 - 创建新的虚拟机,分配足够资源(内存、硬盘等)。 - 为虚拟机安装Linux操作系统(例如Ubuntu Server 22.04 LTS)。 #### 2. 在Linux虚拟机中安装CUPS - 更新系统包列表: ```bash sudo apt update ``` - 安装CUPS和samba(用于Windows共享,可选): ```bash sudo apt install cups samba ``` - 安装Gutenprint驱动程序(支持多种打印机): ```bash sudo apt install printer-driver-gutenprint ``` - 如果需要PDF虚拟打印机,可以安装cups-pdf: ```bash sudo apt install cups-pdf ``` #### 3. 配置CUPS - 编辑CUPS配置文件`/etc/cups/cupsd.conf`,修改以下部分以允许网络访问: ```bash # 监听所有网络接口 Listen *:631 # 允许来自所有网络的访问 <Location /> Order allow,deny Allow all </Location> # 同样,为/admin、/admin/conf等位置设置Allow all ``` - 重启CUPS服务: ```bash sudo systemctl restart cups ``` #### 4. 添加打印机 - 将物理打印机连接到Windows Server主机,然后通过Hyper-V将USB打印机传递给虚拟机(如果打印机是USB连接的)。或者,如果打印机是网络打印机,则虚拟机可以直接访问。 - 打开CUPS的Web管理界面:在浏览器中访问`http://<虚拟机IP>:631`。 - 点击“Administration”选项卡,然后点击“Add Printer”。 - 按照向导选择打印机(可能是通过USB、网络或Windows共享打印机)。 - 如果打印机连接在Windows主机上,并且已经共享,则可以通过Samba协议添加。在CUPS中添加打印机时,选择“Windows Printer via SAMBA”,然后输入地址:`smb://<Windows_Server_IP>/<共享打印机名称>`(注意:共享打印机名称中的空格用%20代替)。 - 或者,按照引用[4]的方法,使用Windows共享打印机的地址:`http://<Windows_Server_IP>/printers/<共享打印机名称>/.printer`(需要替换空格为%20)。 - 安装打印机驱动:在驱动列表中搜索合适的驱动(如引用[4]提到的,对于EPSON R330,可以选择T50驱动)。 #### 5. 配置防火墙 - 确保Linux虚拟机的防火墙允许IPP(端口631)和可能的Samba端口(如果使用Samba共享): ```bash sudo ufw allow 631/tcp ``` #### 6. 客户端连接 - **Windows客户端**:添加打印机,选择“网络打印机”,输入URL:`http://<虚拟机IP>:631/printers/<CUPS打印机名称>`(引用[2]的方法)。 - **macOS和iOS**:通常会自动发现网络打印机,或者手动添加IPP打印机,地址同上。 - **Android**:可以使用PrintHand等应用,输入IPP地址添加打印机(引用[4])。 ### 注意事项 - 虚拟机网络模式:建议使用桥接模式,使虚拟机与宿主机在同一局域网,方便客户端访问。 - 驱动兼容性:如果找不到打印机驱动,可以尝试安装其他驱动程序包,或者从打印机厂商网站下载PPD文件。 ### 相关问题 1. 如何将USB打印机传递给Hyper-V虚拟机? 2. 在CUPS中如何安装厂商特定的打印机驱动? 3. 除了CUPS,还有哪些方法可以在Windows Server上实现跨平台打印机共享?</think>### 在Windows Server 2019上部署CUPS共享打印机的配置方法 CUPS(Common UNIX Printing System)本身是类Unix系统的打印服务,但可以通过虚拟机在Windows Server 2019上实现打印机共享。以下是详细步骤: --- ### **1. 启用Windows打印服务器角色** - 打开 **服务器管理器** → **添加角色和功能** - 在 **服务器角色** 中勾选 **打印和文件服务** → **打印服务器** - 完成安装后,共享目标打印机: ```powershell # 检查打印机共享状态 Get-Printer -Name "打印机名称" | Format-List Shared # 启用共享 Set-Printer -Name "打印机名称" -Shared $true ``` > 确保打印机属性中已开启共享[^4] --- ### **2. 部署Linux虚拟机运行CUPS** #### (1) 创建虚拟机(以Hyper-V为例) - 启用Hyper-V角色: ```powershell Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All ``` - 创建Ubuntu Server虚拟机(建议22.04 LTS) #### (2) 在Linux中安装CUPS ```bash # 更新系统 sudo apt update && sudo apt upgrade -y # 安装CUPS及驱动 sudo apt install cups printer-driver-gutenprint samba -y # 启动服务 sudo systemctl enable cups --now ``` #### (3) 配置CUPS - 编辑配置文件: ```bash sudo nano /etc/cups/cupsd.conf ``` - 修改关键参数: ```conf Listen *:631 # 监听所有端口 <Location /> Allow all # 允许所有网络访问 </Location> ``` - 重启服务: ```bash sudo systemctl restart cups ``` --- ### **3. 连接Windows共享打印机CUPS** 1. 获取Windows共享打印机地址: ``` http://Windows_Server_IP/printers/打印机名称/.printer ``` > 空格需替换为`%20`(例如:`EPSON%20R330`)[^4] 2. 在CUPS Web界面添加打印机: - 访问 `https://虚拟机IP:631/admin`(需使用HTTPS) - 选择 **Add Printer** - 连接方式选 **Internet Printing Protocol (ipp)** - 输入共享地址:`ipp://Windows_Server_IP/printers/打印机名称` 3. 安装驱动程序: - 在驱动列表搜索打印机型号(如无国内型号,选国外同系列驱动) - 或手动上传PPD文件 --- ### **4. 客户端连接配置** - **Windows客户端**: - 添加打印机 → 输入URL: ``` http://虚拟机IP:631/printers/CUPS中的打印机名称 ``` - **macOS/iPhone**: - 自动发现网络打印机或手动添加IPP - **Android**: - 使用PrintHand等APP,输入上述IPP地址[^4] --- ### **5. 防火墙与权限配置** | 方向 | 协议/端口 | 用途 | |------------|-----------|-----------------------| | 入站规则 | TCP 631 | CUPS打印服务 | | 入站规则 | TCP 445 | SMB文件共享(可选) | | 出站规则 | TCP 80 | 软件更新 | > 在Windows防火墙和Linux防火墙(`sudo ufw allow 631/tcp`)中同时放行 --- ### **故障排查** 1. **打印机自动出测试页** - 禁用macOS系统打印对话框,改用第三方应用打印[^3] 2. **连接失败** - 检查虚拟机网络模式(需桥接模式) - 验证CUPS配置中`Allow all`是否生效 3. **驱动不兼容** - 安装通用驱动:`sudo apt install foomatic-db` --- ### 相关问题 1. 如何将USB打印机透传给Hyper-V虚拟机? 2. 除CUPS外,Windows Server还有哪些跨平台打印方案? 3. 如何监控CUPS打印队列及管理用户权限? > 提示:可通过Docker容器简化CUPS部署,参考`docker pull olbat/cupsd`镜像[^4] [^1]: CUPS服务器涉及Ubuntu系统的两个软件包 [^2]: Windows客户端通过HTTP连接CUPS打印机 [^3]: macOS连接CUPS时自动出测试页的解决方案 [^4]: 虚拟机桥接网络及手机连接配置方法
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值