为什么windows SMB 445端口总是属于PID 4?

问题描述 投票:0回答:1

我知道SMB服务使用服务器端的445端口来共享文件夹。

因此,在服务器端有 LanmanServer 服务来处理 SMB。 但是当我使用 TCPView 或 netstat 这些工具总是显示 445 端口被 PID 4 使用,并且 PID 4 是 SYSTEM 进程(ntoskrnl.exe),它是用户模式进程和内核模式驱动程序之间桥梁的关键进程。

LanmanServer service

即使禁用Lanmanserver服务,445端口仍然属于PID 4(系统)。

因为我想监控使用445端口的进程,似乎kenerl驱动程序打开了445端口?这是否意味着 LanmanServer 服务有监听 445 端口的驱动程序?

windows security pid smb windows-kernel
1个回答
0
投票

端口 445 绑定到系统进程并由内核模式网络堆栈管理,而不是像 svchost.exe 这样的典型用户模式服务进程,因为:

  1. 出于性能和安全原因,Windows 内核(通过 ntoskrnl.exe)在启动时直接绑定到某些端口,包括 445。这使其能够在内核级别有效处理 SMB 流量,而不是依赖用户模式服务来打开端口。

  2. 在 Windows 中,网络是通过 NDIS 框架处理的。 NDIS 具有管理传入网络请求的内核模式驱动程序,其中包括在内核级别设置端口。即使 LanmanServer(SMB 服务器)被禁用,端口 445 仍然绑定到系统进程,因为 NDIS 框架在内核级别保持端口打开,确保稍后启用服务时的可用性。

  3. LanmanServer服务并不直接开放445端口,而是依赖内核监听该端口,并将SMB相关请求路由到该端口。禁用 LanmanServer 不会关闭端口,因为系统进程会维护端口绑定,并在重新启用服务时等待未来的任何 SMB 请求。

© www.soinside.com 2019 - 2024. All rights reserved.