“当前已有100+用户参与投稿,共计发放奖励100000+“
一、Windows共享机制简要说明 Windows的文件/打印机共享,实际上是基于SMB/CIFS1协议进行的。故此,充当共享服务器角色的设备,至少需要保证TCP 139 或445端口可达。 SMB在前期设计时,是运行于NBT(NetBIOS over TCP/IP)上,使用137(UDP),138(UDP),139(TCP)端口。后期,Microsoft为了推广SMB协议,SMB可以直接运行在TCP/IP上,而没有额外的NBT层,使用TCP 445端口。
二、配置网络共享打印机 1、 开启Windows网络共享服务
注:基于安全考虑,请使用该工具时请注意: l 推荐使用【密码共享】进行配置 l 仅推荐在要共享打印机的主机运行该脚本,不要在模板机运行; 2、 配置打印机共享
注:若客户现场有多种操作系统版本,则一定要安装对应系统的打印驱动。文章中也有提及。驱动推荐在打印机品牌官网进行查找。
三、FAQ 1、 F:同一局域网内,使用【\\连接打印机PC的计算名】形式可以访问共享资源,使用【\\连接打印机PC的IP】无法访问。 A:请排查共享主机IPV4的TCP 139或445端口是否可以访问。一般情况是由于中途网络设备封堵了共享主机的IPV4地址的139\445端口而未封堵IPV6导致。(PS:查看华为、H3C基本ACL6参考命令:display acl ipv6 all)
分析: 通过【\\连接打印机PC的计算名】形式访问共享资源时,源主机首先会在自己的内部名称缓存中查询该主机名对应的IP,若没有找到则会通过配置的DNS去查询。如主机没有配置DNS服务器或使用DNS解析失败时,会转为使用LLMNR进行查找。 在通过LLMNR解析时,会同时解析对应主机的V4\V6地址。后续电脑会通过相关机制对解析出的V4/V6地址发起SMB访问请求。由于中途网络设备针对IPV4做了策略封堵,故之后的访问通过IPV6进行。 注: l WIN7之后,主机的IPV6默认是启用的。虽然实际场景中,我们并未手动配置。由于IPV6的无状态自动配置机制,会自动生成一个本地链路IPV6地址,且该地址可以与处于 同一广播域的主机进行通信。
l IPV6在SMB中,必须把:替换为-,同时地址必须加.ipv6-literal.net这个后缀才可以进行共享资源的访问。如:\\2001-0000-0000-0000-0000-0000-0000-0002.ipv6-literal.net。
2、 F:源主机访问目标主机共享的佳能系列打印机(目前测试JSP 2900\2900+)耗时久,不过最终可以成功打印。(物理机之间访问延时大概20s,虚拟机访问物理机延时大概35s) A:建议改为【\\连接打印机PC的IP】的方式进行共享打印机访问即可优化。同时,可以考虑针对源主机在发送打印任务时调用的相关进程,在VDC配置加入应用优化列表中。
分析: 通过使用“控制变量法”更换其他品牌打印机测试后,不论是虚拟机还是物理机,只有佳能系列打印机通过【\\连接打印机PC的计算名】访问方式时才会出现该故障。经问询研发同事,针对于虚拟机访问物理机,只是增加了访问延时,目前该问题目前还在排查中暂未定位,可能与打印机驱动有关。
1、在NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统,这个系统基于NetBIOS设定了一套文件共享协 议,Microsoft称之为SMB(Server Message Block)协议。这个协议被Microsoft用于它们Lan Manager和Windows NT服务器系统中,而Windows系统均包括这个协议的客户软件,因而这个协议在局域网系统中影响很大。随着Internet的流行,Microsoft希望将这个协议扩展到Internet上去,成为Internet上计算机之间相互共享数据的一种标 准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为CIFS(Common Internet File System),并打算将它与NetBIOS相脱离,试图使它成为Internet上的一个标准协议。因此,为了让Windows和Unix计算机相集成,最好的办法即是在Unix中安装支持SMB/CIFS协议的软件,这样Windows客户就不需要更改设置,就能如同使用Windows NT服务器一样,使用Unix计算机上的资源了。(Kincorn 按:事实上Microsoft获得了成功,在开源社区很快就出现了基于 SMB/CIFS 协议的 Samba 套件。) |