- WMI是监控设备的主要方式。 Windows虽然 SNMP 在打印机、网络电子设备和许多边缘设备中越来越普及。
- SNMP 依赖于代理、MIB 和 OID,主要使用 UDP 端口 161 和 162 进行异步查询、陷阱和报告。
- WMI(理想情况下通过 WinRM)和 SNMP 的结合,再加上防火墙的良好过滤,无需笨重的代理即可发现和控制打印机和服务。
- 建立安全社区、限制授权 IP 和清理旧配置可以防止垃圾 SNMP 流量,并加强整体网络安全。
在任何稍微严肃一点的网络中, 发现开放的打印机、服务器和端口 这并非“额外”功能,而是确保安心的必备功能。考虑到安全策略、审计以及用户使用任何带墨粉的设备进行打印,您需要了解打印机上的内容、位置以及运行状况。
好消息是,你无需重新发明轮子: Windows 环境中的 WMI 和几乎任何网络设备上的 SNMP 只要懂得如何使用,它们就能满足你的所有需求。关键在于理解每项技术的具体功能、涉及的端口、如何与防火墙集成,以及对性能和安全性的影响。
概述:代理、WMI、SNMP 和其他监控方式
当我们谈到监测时 设备和打印机实际上,我们是在讨论选择。 监控工具将通过该“通道”提取信息 该设备。总的来说,这些选项在企业网络中并存:
1. 设备上已安装代理
许多监控平台都包含自己的 Windows 代理程序。 Linux 甚至可以监控特定应用程序。它安装在每台计算机上,代理程序会收集指标(CPU、内存、磁盘、服务等)并将其发送到监控服务器。
- 优势:对系统数据进行非常精细的访问,甚至超越了 WMI 或 SNMP 所提供的范围。
- 不方便它需要部署、维护、更新和检查,以确保它不会出现性能或安全问题。
2. WMI(Windows 管理规范)
在 Windows 系统中,WMI 是标准。它允许您获取 关于……的非常详细的信息 硬件软件、流程、服务、性能 甚至可以配置系统的某些方面。所有这些操作都是通过远程可访问的 WMI 类完成的。
- 默认使用 基于 TCP 的 RPC如果未受到限制,则使用端口 135/TCP 作为分配器,然后使用高动态端口(49152-65535)。
- 在许多情况下,它也被用于 WinRM(HTTP 5985 / HTTPS 5986) 避免处理开放的 RPC 端口范围。
3. SNMP(简单网络管理协议)
SNMP 是一种标准的应用层协议,在多个 RFC(例如 1157、1901-1908、3411-3418)中定义,并且是 TCP/IP 协议栈的一部分。它是以下方面的通用语言: 路由器、交换机、防火墙、打印机、NAS、UPS、安全设备 也适用于许多服务器。
- 读/写查询和操作通常使用 UDP的161.
- 异步通知(陷阱和通知)通过以下方式传输 UDP的162.
- 它的力量在于以下因素的结合: SNMP + MIB + OID 代理.
4. SSH的
在类型系统中 UNIX (Linux、BSD 等),许多工具选择通过以下方式连接 SSH(TCP 22) 执行 comandos 并解析输出。当 SNMP 不可用或需要在不安装额外代理的情况下进行更精细的控制时,这是一种替代方案。
5. API 和 Web 服务
越来越多的制造商通过各种渠道公开其指标。 REST API、SOAP 或 Web 服务这是监控现代应用程序、云解决方案或 SNMP/WMI 不适用或无法满足需求的特定设备的常用方法。
快速建议:每种设备应该使用什么设备

一 澳门东望洋 适用于大多数企业网络的方案如下:
- 视窗电脑:优先考虑 WMI的 (或通过 WinRM 使用 WMI)而不是您自己的代理,除非您需要对仅通过该代理公开数据的应用程序进行非常高级的监控。
- Linux/UNIX 服务器和工作站: 使用 SSH的 或者使用轻量级代理。SNMP 也可行,但它通常无法提供足够的系统详细信息。
- 网络电子设备(交换机、路由器、接入点、防火墙): SNMP 这是自然而然的选择。很多时候甚至没有其他标准方法。
- 打印机和“边缘”设备 (NAS、UPS、特定硬件):几乎总是 SNMP.
- 现代应用和服务如果制造商提供 API 警官,你先用它。
MGI 房产经纪人 将它们作为备用方案,以备 WMI、SSH、SNMP 或 API 无法满足需求时使用。它们通常会使部署、维护和安全加固变得复杂。
SNMP 内部工作原理:管理器、代理、MIB 和 OID

要使用 SNMP 发现打印机和端口,首先需要了解信息的组织方式。SNMP 基于三大支柱: SNMP 管理器、受管设备(代理)和 MIB/OID.
SNMP 管理器(NMS)
它是核心部件:运行程序的控制台或服务器 网络管理系统它会向代理发送请求(GET、GETNEXT、GETBULK、SET),并接收响应、陷阱和通知。
- 定期采访代理商以收集指标数据。
- 它处理数值,应用阈值,生成警报和图表。
- 如果安全允许,您可以写入某些 OID(SET),但实际上建议几乎总是以写入模式工作。 只读 (RO).
受管设备和 SNMP 代理
每 路由器您要监控的交换机、打印机或服务器运行着…… SNMP代理这位代理人:
- 它会在本地收集有关硬件、网络、打印队列、温度等方面的统计信息。
- 它根据其 MIB 中包含的定义来呈现这些信息。
- 它可以产生 陷阱 当发生某些情况(例如,卡纸、接口下降、过热)时,向 NMS 发送消息。
- 它甚至可以充当 代理 适用于不具备原生 SNMP 功能的设备。
MIB(管理信息库)
简单来说,MIB 就是定义系统的“字典”。 可以查询哪些变量以及查询格式是什么。这是一个文本文件(通常采用 ASN.1 格式),用于描述:
- 对象的符号名称。
- 数据类型(整数、八位字节字符串、计数器、计量器、时间刻度……)。
- 访问权限(只读、读写)。
- 功能描述。
- 与其他对象的层级关系。
存在标准 MIB(例如) IF-MIB、IP-MIB、SNMPv2-MIB)以及厂商特定的 MIB(例如 Cisco、HP、Xerox、Synology 等)。这些私有 MIB 使您能够超越通用 MIB,例如: 查看特定型号的墨粉余量或打印页数 打印机。
OID(对象标识符)
MIB 中定义的每个对象都用一个标识符来标识。 OID例如,由句点分隔的数字序列:
- 1.3.6.1.2.1.1.3.0 -> 系统正常运行时间.
- 1.3.6.1.2.1.1.5.0 -> 系统名称 (设备名称)。
- 1.3.6.1.2.1.1.4.0 -> SNMP联系人.
OID 被组织成一个 树状结构, 在哪里:
- 1.3.6.1.2.1 对应于标准 MIB(mib-2)。
- 1.3.6.1.4.1 是分支 企业也就是说,制造商的 MIB。
Synology NAS 的专有 OID 的典型示例如下所示: 1.3.6.1.4.1.6574.5与磁盘 SMART 信息相关,而 Cisco OID 可能会挂起 1.3.6.1.4.1.9.
SNMP 端口、基本操作和协议版本

要使SNMP监控正常工作,您需要非常清楚以下内容: 涉及的港口和通信模型否则,防火墙就会成为你最大的敌人。
标准 SNMP 端口
- UDP的161常规查询和操作(GET、GETNEXT、GETBULK、SET)。NMS 通过该端口向代理发送请求。
- UDP的162:设陷阱并告知。在这种情况下 代理人 启动与监控服务器的通信。
虽然在某些情况下 TCP 可以与 SNMP 一起使用, 最经典、最广泛使用的实现方式是UDP。这会带来一些影响:虽然开销减少了,但也不能保证一定能成功交付。这就是为什么监控系统如果没有收到响应,通常会重复查询的原因。
最重要的 SNMP 操作
- 的GETNMS 请求一个或多个特定 OID 的值。
- GETNEXT类似于 GET 请求,但请求层次结构中的下一个 OID,对于遍历表非常有用。
- 增肌:在 SNMPv2 中引入,旨在高效地下载大块数据(整个表)。
- 设置管理器向代理写入一个值。这功能强大但也很危险,因此几乎所有正规的网络都会避免暴露 SET 指令,或者尽可能地限制其使用。
- 陷阱:代理在发生事件时(例如,打印机缺纸、链路断开)向 NMS 发送的异步消息。
- 通知类似于陷阱,但有国家导弹系统确认收到。
SNMP 版本和安全性
从历史上看,SNMP经历了多个版本,主要变化体现在安全性方面:
- SNMPv1 (RFC1155、1156、1157)。非常简单的模型, 基于“社区字符串”的安全未加密。
- SNMPv2c改进版,性能有所提升(新增 GETBULK 函数、类型等),但保持了相同的社区安全机制。 实践中最常用.
- SNMPv3. 进入 认证和加密它采用基于用户的安全机制 (USM) 和更强大的访问控制模型。安全性更高,但配置也更复杂,并且可能会增加一些额外的开销。
为了方便起见,许多网络仍然使用 SNMPv2c 处于只读 (RO) 模式 拥有复杂的社区和设备上的访问控制列表。如果您需要遵守严格的安全策略,建议规划分阶段迁移。 v3.
WMI 深度解析:端口、RPC 和 WinRM
在 Windows 环境中,WMI 是无需安装额外代理即可提取系统信息的首选工具。但在网络层面上, WMI 依赖于 RPC 这会对防火墙产生影响。
经典 WMI 中涉及的端口
- TCP 135的:港口 RPC端点映射器它是初始入口点;客户端通过它协商后续调用将使用哪个动态端口。
- 高 TCP 动态端口: 通常 49152-65535 在现代系统中,实际的 WMI/DCOM 会话是在那里建立的。
如果你对网络进行了大量分段并过滤端口,这意味着 问题从安全角度来看,在段之间打开完整的 49152-65535 范围通常是不可接受的。
替代方案:通过 WinRM 使用 WMI
为了避免动态端口泛滥,微软提供了通过以下方式公开 WMI 的可能性: WS管理 通过 WinRM:
- HTTP 埃尔波多黎各 5985 / TCP.
- HTTPS 埃尔波多黎各 5986 / TCP.
这样,您就可以将 WMI 通信限制在明确定义的端口上, 更容易控制 在防火墙中,除了在使用 HTTPS 时添加加密之外,这也是现代 Windows 监控和远程管理工具的首选方法。
WMI + Active Directory 和其他服务
不应忘记,许多与 WMI 相关的远程管理操作, PowerShell的 远程控制或域控制器自身的提升也利用了以下技术:
- LDAP的 (389/TCP 和 UDP), LDAPS (636/TCP)。
- SMB (445/TCP)用于指定管道。
- 为不同的依赖服务(DFS、文件复制、Netlogon 等)提供高临时性的 RPC 端口。
如果您要彻底关闭 Windows 网络,务必查看详细的表格。 系统服务端口 微软的政策是避免切断关键组件(Kerberos、DNS、Windows 计划任务、AD 复制等)。
使用 SNMP 发现打印机和端口:一种实用方法
让我们把所有精力集中在我们最感兴趣的案例上: 查找网络上的打印机并了解哪些端口处于活动状态。 使用SNMP。
1. 在打印机上激活并配置SNMP
在大多数较新的打印机上,SNMP 默认启用,或者可以通过设备的 Web 界面激活:
- 定义一个 SNMP 阅读社区 (在严肃的企业环境中,请勿使用“公开”一词)。
- 如果可能的话 限制 SNMP 访问 到您的监控服务器的 IP 地址或子网。
- 请填写以下字段: SNMP位置 y SNMP联系人 以便我稍后进行整理(办公室、房间、楼层、支持电子邮件等)。
2. 使用 snmpwalk 从监控服务器进行检查
在安装了 Net-SNMP 工具的 Linux 主机或类似系统上,您可以使用:
snmpwalk -v2c -c YOUR_COMMUNITY 192.168.xx
如果配置正确,您将会看到游行。 长长的 OID 和值列表系统名称、位置、接口数量、网络统计信息、页面计数器、墨粉量(如果制造商在其私有 MIB 中提供)等。
要仅测试特定的 OID(例如, 系统名称):
snmpwalk -v2c -c YOUR_COMMUNITY 192.168.xx SNMPv2-MIB::sysName.0
3. 识别“垃圾”SNMP端口和流量
在具有历史的网络中,一个非常典型的案例是发现 Windows 打印服务器 它会不断尝试通过 SNMP 与已不存在或已更改子网的打印机进行通信。
- Windows 系统中的打印机 TCP/IP 端口可以有 默认启用 SNMP.
- 如果该服务器每隔几秒钟就尝试向旧 IP 地址发出 SNMP 查询,您就会看到 大量包裹被拦截 在您的防火墙(例如 FortiGate)上,所有流量都指向不再属于该网络的 UDP 161 地址。
解决方法其实很简单: 禁用这些打印端口上的 SNMP 或者清理未使用的端口。在删除任何内容之前,建议先确认确实没有任何关联的作业,并且相应的打印机已不再是基础架构的一部分。
4. 使用制造商的 MIB 获取高级数据
如果你想超越“开或关”的层面, 实际监控打印机的状态 (例如排队、卡纸、墨粉、纸盒等问题),您需要:
- 下载 制造商特定的MIB (例如 Xerox、HP、Canon 等),通常可在其支持门户网站上找到。
- 将它们上传到您的SNMP工具或MIB浏览器。
- 找到与每个指标相关的 OID(例如,打印页数、耗材寿命、错误代码)。
有了它,你就能建造 图表和警报 当打印机缺纸、墨粉剩余 5% 或计数器异常飙升时,会向用户发出警报,避免用户感到意外。
SNMP、安全性和良好的配置实践
SNMP 功能非常强大,但如果不加以控制,它会变成…… 过滤器避免搬起石头砸自己的脚的一些关键点:
- 一律使用 个性化社区绝不使用“公共”/“私人”这样的字眼。
- 限制访问权限 特定IP或子网 在路由器、交换机或 SNMP 守护程序本身(Linux、Windows、ESXi 等)上使用 ACL。
- 尽可能待在…… 读取模式(RO)除严格控制的情况外,生产中应避免使用SET。
- 如果您的环境需要,请考虑使用 SNMPv3 至少对于关键设备,需要进行身份验证和加密。
- 卡塞尔文献展 MIB 和 OID 是什么? 你需要说明它们的使用方法和含义,以便其他管理员可以维护它们。
在 Windows Server 中,请记住…… SNMP 服务:
- 该功能未默认安装;必须添加该功能(通过 GUI、PowerShell 或可选功能)。
- 它主要通过选项卡进行配置。 安全 y 代理人 服务内容:已接受的社区、允许发送包裹的主机、联系方式、位置和受监控的服务。
在Linux系统中,密钥文件通常是 /etc/snmp/snmpd.conf您可以在此处定义视图、社群和监听方向,例如,仅允许一个已定义的社群并将视图限制为 .1 (整棵树)或特定子集。
在分段网络中协调 WMI、SNMP 和防火墙
对于拥有多个 VLAN、DMZ 和高度过滤区域的公司来说,挑战不仅在于监控,而在于如何真正地进行监控。 无需开放半数的港口这就需要将 WMI、SNMP 和防火墙规则正确结合起来。
一些行之有效的原则:
- 至 内部窗口:启用 WinRM(5985/5986) 并将经典的 RPC WMI 限制在高度受控的段中。
- 至 网络设备和打印机仅打开 UDP 161/162 与您的监控服务器 IP 地址之间的通信。
- 集中监控几个方面 受到良好保护的国家导弹系统 而不是使用多个分散的查询源。
- 查看表格 Windows Server 服务端口 确保 AD、DNS、Kerberos、DFS、Netlogon 等在进行任何加固后仍能相互通信。
如果您已经设置了防火墙记录被拒绝的流量,那么这样做是件好事。 分析 日志 查找与配置错误的设备、缺失的打印机或仍然认为存在过时子网的服务器相对应的被阻止的 SNMP 模式(或通过 RPC 的 WMI)。清理这些模式可以减少背景噪音,并避免不必要的规则。
最后,要好好结合。 Windows 系统使用 WMI,其他系统使用 SNMP。通过清晰的端口和社区策略,您可以获得打印机、服务器、交换机和应用程序的详细信息,而无需在网络中部署笨重的代理程序或完全开放防火墙。这是跟踪谁在打印、从哪里打印以及通过哪些端口打印的最合理方法,无需在每次审计或需要审查基础架构安全性时都手忙脚乱。
对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。