在 Linux 系统上共享局域网中 Windows 打印服务器上的打印机

本文详细介绍了如何在Linux系统中设置并使用局域网内Windows打印服务器上的打印机。步骤包括运行system-config-printer工具,设置打印机名称、描述及位置,通过SAMBA连接Windows打印服务器,指定正确的路径、工作组名、服务器名、端口和共享名,以及选择合适的打印机类型和驱动。

在 Linux 系统上共享局域网中 Windows 打印服务器上打印机的步骤:

1. 运行 system-config-printer;
2. 设定打印机名,描述和位置 (描述和位置可选);
3. 选择连接:Windows Printer via SAMBA;
4. 关键的一步:设定路径 smb://[workgroup/]server[:port]/printer
这里的 workgroup 是打印服务器所在的工作组名,server 是打印服务器的机器名 (填 IP 应该也可以),端口默认是 3128,printer 是打印服务器上打印机的共享名;
5. 选择打印机类型 (厂家);
6. 选择打印机型号和驱动程序。
要在 Linux 上部署 CUPS 打印服务器,并让 **Windows 系统能够识别并使用该打印机**,你需要正确配置 CUPS 的网络共享功能,并启用适用于 Windows 的协议支持(如 SMB 共享或 IPP)。以下是详细的步骤和解释。 --- ### ✅ 步骤 1:安装并启动 CUPS 在大多数 Linux 发行版上执行: ```bash # Ubuntu/Debian sudo apt update sudo apt install cups # CentOS/RHEL/Rocky Linux sudo yum install cups # 或者用 dnf install cups ``` 启动并启用服务: ```bash sudo systemctl enable cups sudo systemctl start cups ``` --- ### ✅ 步骤 2:配置 CUPS 允许远程访问(编辑配置文件) 编辑 CUPS 主配置文件: ```bash sudo nano /etc/cups/cupsd.conf ``` 修改或添加以下内容以允许局域网访问: ```apache # 监听所有接口(包括外部连接) Listen *:631 # 访问控制规则 <Location /> Order allow,deny Allow all </Location> <Location /printers> Order allow,deny Allow all </Location> <Location /admin> AuthType Default Require user @SYSTEM Order allow,deny Allow all </Location> # 共享所有打印机 <Policy default> JobPrivateAccess default JobPrivateValues default SubscriptionPrivateAccess default SubscriptionPrivateValues default <Limit Create-Job Print-Job Print-URI> Order deny,allow </Limit> <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document> Order deny,allow </Limit> </Policy> ``` > 💡 `Allow all` 表示允许来自本地网络的所有请求。生产环境建议细化 IP 范围(如 `Allow 192.168.1.*`)。 重启 CUPS 生效配置: ```bash sudo systemctl restart cups ``` --- ### ✅ 步骤 3:添加打印机并启用共享 1. 在浏览器中打开 CUPS Web 界面: ``` http://你的LinuxIP:631 ``` 2. 添加打印机(通过 USB、网络等方式),完成驱动设置(推荐使用通用驱动如 `Generic PostScript` 或 `HP LaserJet` 模拟)。 3. **启用打印机共享**: - 进入打印机设置页面; - 勾选 “Shared”(共享)选项; - 保存更改。 > 注意:CUPS 默认不自动将打印机发布到 SMB/Bonjour,需额外配置 Samba 才能让 Windows 自动发现。 --- ### ✅ 步骤 4:安装并配置 Samba 实现 Windows 发现打印机 为了让 Windows 能“自动看到”这台打印机(出现在“网络”或“设备和打印机”中),需要通过 **Samba** 提供打印共享服务。 #### 安装 Samba: ```bash sudo apt install samba samba-common-bin printer-driver-cups-pdf ``` #### 配置 Samba 支持打印: 编辑 Samba 配置文件: ```bash sudo nano /etc/samba/smb.conf ``` 在 `[global]` 段添加以下内容: ```ini [global] workgroup = WORKGROUP server string = CUPS Print Server load printers = yes printing = cups printcap name = cups show add printer wizard = no # 允许局域网访问 hosts allow = 192.168.1. 127.0.0.1 security = user ``` 然后添加一个共享段用于每台打印机(示例): ```ini [HP_LaserJet_Online] comment = HP LaserJet Shared Printer path = /var/spool/cups printable = yes public = yes writable = no browseable = yes printer = yes use client driver = yes ``` > 🔁 将 `HP_LaserJet_Online` 替换为你实际的打印机名称。 重启 Samba 服务: ```bash sudo systemctl restart smbd ``` --- ### ✅ 步骤 5:在 Windows 上连接打印机 #### 方法一:直接添加网络打印机(推荐) 1. 打开 “控制面板 → 设备和打印机”; 2. 点击 “添加打印机”; 3. 选择 “添加网络、无线或 Bluetooth 打印机”; 4. 系统可能会搜索到你的 Linux 主机上的共享打印机(基于 SMB 广播); 5. 如果未自动发现,点击 “我需要的打印机不在列表中”,然后手动输入: ``` \\Linux主机IP\打印机共享名 ``` 例如: ``` \\192.168.1.100\HP_LaserJet_Online ``` 6. Windows 会尝试下载驱动或让你选择匹配的驱动(可从厂商官网下载对应型号驱动安装); 7. 完成后即可打印测试页。 #### 方法二:通过 CUPS Web 页面下载 PPD 并手动安装 访问: ``` http://Linux-IP:631/printers/打印机名 ``` 点击 “Download Driver” 或 “Share This Printer on the Network”,部分版本提供 `.inf` 文件供 Windows 使用。 --- ### ✅ 可选:启用 Bonjour/mDNS(Mac/Linux 更友好,对 Windows 辅助有用) 安装 `avahi-daemon` 可帮助零配置发现: ```bash sudo apt install avahi-daemon sudo systemctl enable avahi-daemon sudo systemctl start avahi-daemon ``` CUPS 会自动注册打印机为 mDNS 服务,Windows 若安装了 Bonjour 打印服务(如 Apple iTunes 组件)也能发现。 --- ### ❗ 常见问题排查 | 问题 | 解决方法 | |------|----------| | Windows 提示“无法连接” | 检查防火墙是否开放 631 (CUPS) 和 139/445 (SMB) 端口 | | 找不到打印机 | 确保 Samba 正确共享且 `browseable = yes` | | 驱动不兼容 | 在 Windows 上手动安装对应品牌官方驱动 | | 权限拒绝 | 检查 `/etc/cups/cupsd.conf` 中的 `Allow` 规则 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值