我有一台 HP Deskjet 连接到 Slackware 12.2 盒子。我已经设置了 CUPS,可以从盒子中顺利打印测试页。我还设置了 Samba,并且有几个文件共享运行良好。
我正在尝试通过 Samba 共享 HP Deskjet,但无法让它显示在任何 Windows 系统中。我在 Windows 网络中看到了服务器及其文件共享,但当我打开打印机时,没有显示任何打印机。net view \\servername
从命令行运行会列出文件共享,但没有打印机。
这是我的 smb.conf 的相关部分,如果有帮助的话:
[global]
workgroup = HOMENET
security = share
hosts allow = 192.168.1. 192.168.2. 127.
load printers = yes
printcap name = cups
printing = cups
log file = /var/log/samba.%m
max log size = 50
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
public = yes
writable = no
printable = yes
guest only = yes
有人能给我一些指点,告诉我从哪里开始寻找潜在原因吗?
更新:运行 testparm 没有显示任何错误。以下是输出(减去文件共享):
[global]
workgroup = HOMENET
security = SHARE
log file = /var/log/samba.%m
max log size = 50
printcap name = cups
hosts allow = 192.168.1., 192.168.2., 127.
[printers]
comment = All Printers
path = /var/spool/samba
guest only = Yes
guest ok = Yes
printable = Yes
browseable = No
答案1
我在 Gateway ML-3109 上全新安装了 Windows 7 Home Premium,使用 NOD32 时无法在我的 Debian 计算机上看到我的 samba 共享和共享打印机。
Windows 7 可以 ping 通 Debian 机器,但 Debian 机器无法 ping 通 Windows 7 笔记本电脑(因为 Windows 7 没有监听)。
我怀疑我的 Samba 设置是正确的,因为在同一台笔记本电脑上安装的先前的 Vista 以及在另一台笔记本电脑上安装的 XP 都运行正常,所以我专注于 Windows 7 的安装。
我尝试了多个论坛中看到的各种 Windows 注册表破解、兼容级别、凭据等,但均未成功,再加上一些防火墙调整,也毫无效果。
沮丧之余,我决定从头开始,删除了 Windows 7 安装。在 Windows 安装过程中,Windows 会询问您这是家用电脑还是工作电脑。第一次我选择了家用电脑,所以这次我选择了“工作电脑”。
噗!这就是诡计。原来“HOMEGROUP”这个垃圾假设你的家庭网络只包含同质的 Windows 7 机器,并排除所有其他机器。毫无疑问,这是微软的另一个“未记录的安全功能”。
作为一台“工作电脑”,我可以轻松添加打印机、浏览网络、映射到网络驱动器并使用所有正常的网络功能。
请注意,这与告诉 Windows 7 您要连接的网络是家庭网络、工作网络还是公共网络不同。如果您处于这一步,那就太晚了。您要寻找的解决此问题的对话框是在实际安装过程中。
我意识到这个解决方案对某些人来说可能不是一个选择,但这对我来说是有效的(而且擦除硬盘比整个下午创建/注册表项更有趣)。
答案2
难道这不是可浏览的吗?= 是,以允许它们显示在网络视图中
编辑看了这个页面,这是错误的http://us3.samba.org/samba/docs/man/Samba-HOWTO-Collection/classicalprinting.html#id2622601我发现当前的设置是正确的。
答案3
这是有关使用 CUPS 进行打印的 Samba 页面。我不是 CUPS 专家(上次我这样做时,LPRng 仍然是新热点)但显然 CUPS 设置的一部分是创建打印队列。
如果你已经这样做了,你应该能够在 Windows 机器上安装打印机并为其提供网络地址
\\smbserver\print_q
..即使您无法直接浏览打印机。显然,将“smbserver”替换为服务器的名称,将“print_q”替换为打印队列的名称。
您应该能够访问 CUPS 配置http://本地主机:631以及文件http://localhost:631/documentation.html(在您的 Linux 系统上打开它们;它们可能被防火墙阻止远程访问)。如果您尚未配置打印队列,那么可以从这里开始;如果您已经配置,那么它可能列在那里。
答案4
你检查过 /etc/cups/cupsd.conf 中的设置吗?你可能没有告诉过CUPS 允许浏览. 从我的 cupsd.conf:
Browsing On
BrowsOrder allow,deny
BrowseAllow all
BrowseAddress @LOCAL
还有一个可以限制为 SMB 的 BrowseLocalProtocols 指令。