![从 Ubuntu 到 Mac 共享打印机,以便可以通过浏览找到它](https://linux22.com/image/1268311/%E4%BB%8E%20Ubuntu%20%E5%88%B0%20Mac%20%E5%85%B1%E4%BA%AB%E6%89%93%E5%8D%B0%E6%9C%BA%EF%BC%8C%E4%BB%A5%E4%BE%BF%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E6%B5%8F%E8%A7%88%E6%89%BE%E5%88%B0%E5%AE%83.png)
server
我有一台运行 Ubuntu 10.10 的台式电脑,Canon
通过 USB 连接了一台佳能 MX350 打印机。我想共享这台打印机,这样我就可以从运行 OS X 10.6.6 的 MacBook Pro 笔记本电脑以及可能还有其他各种客户端打印到这台打印机上。
(虽然打印机可以在网络上提供各种打印服务,但对我来说,它的工作非常不可靠,所以我关闭了它的网络功能。)
system-config-printer 程序很容易就找到了打印机,我能够在 上本地打印文件server
。我启用了共享打印机,并在 Mac 上添加了打印机。我单击了“系统偏好设置”、“打印和传真”、“+”、“IP”。我选择 IPP 作为协议和server.home.gateway
地址,对话框对此做出响应“有效且完整的地址”。(我的 ADSL 路由器为 提供该 DNS 地址server
。)我将其写Canon
为队列名称(也尝试将该字段留空),因为它在 上显示为该名称server
。
当我尝试打印时,Mac 上的打印机处于“暂停”状态。我启用了调试登录cupsd.conf
并注意到以下错误消息:
Get-Printer-Attributes ipp://server.home.gateway:631/Canon
Get-Printer-Attributes client-error-not-found: The printer or class was not found.
Returning IPP client-error-not-found for Get-Printer-Attributes (ipp://server.home.gateway:631/Canon) from 192.168.0.2
(如果我将队列名称留空,则未找到的打印机只是ipp://server.home.gateway:631/
)
经过一番猜测和浏览 CUPS 文档后,我将队列更改为printers/Canon
,然后打印开始工作。我很高兴它能正常工作,但这显然不是最佳选择:Mac GUI 中没有指示服务器上有哪些打印机队列可用。有没有办法设置打印服务器,以便客户端只需从可用打印机列表中选择打印机,并自动获取正确的队列名称?
答案1
检查 Ubuntu 服务器上的文件 /etc/cups/cupsd.conf 并查找以下Browse
条目:
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseRemoteProtocols CUPS
BrowseAddress @LOCAL
BrowseLocalProtocols CUPS dnssd
它们应该位于文件顶部附近。确保浏览功能已打开,然后重新启动 cups:
# restart cups
答案2
我曾与各种 IPP 客户端发生过几次这样的争执,他们似乎就是不选择广播队列名称。然后,正如你所说的,当你手动指定正确的名称时,一切都正常。
值得检查的一件事是 CUPS 服务器声明的队列名称:
spk@hedvig:~$ sudo tcpdump -nv -s 1500 -A -c1 端口 631 tcpdump:在 eth0 上监听,链接类型 EN10MB(以太网),捕获大小 1500 字节 14:03:58.959617 IP(tos 0x0、ttl 64、id 0、偏移量 0、标志 [DF]、proto UDP(17)、长度 217) 192.168.0.252.631 > 192.168.0.255.631:UDP,长度 189 呃......@[电子邮件保护]3 ipp://192.168.0.252:631/printers/hp-color-LaserJet-2550-series "hedvig" "HP-Color" "HP Color LaserJet 2550 系列 Postscript(推荐)" job-sheets=none,none lease-duration=300
上面的转储声称队列名称很长,但是,中间确实有一个 /printers/。我想知道那个白痴是谁给我的打印机起了这么长的名字……显然我当前的环境不需要经常手动输入它 ;-)