如何禁用 Windows 服务器上打开端口 445 的功能?

如何禁用 Windows 服务器上打开端口 445 的功能?

我正在尝试禁用不需要的服务,以改善延迟并提高安全性。

我发现通过在 localhost 和端口 445 上执行 telnet,端口 445 仍然打开。由于我不需要端口 445,因此我宁愿关闭它。

我如何才能知道谁在监听端口 445,以及如何禁用它?

请注意,我不想使用防火墙或类似的东西来阻止端口 445,而是想禁用打开端口 445 的程序。

答案1

以下只是引用了两个不同的来源,我曾用它们成功禁用了 Windows XP 计算机上的 445 端口。我关闭了 445 和 135、137 - 139 端口,因此我按照文章中的所有说明操作,结果成功了。

有关端口 445 的常规信息(档案链接)

Windows 2000 使用的新端口包括 TCP 端口 445,用于 SMB over TCP。SMB(服务器消息块)协议用于 Windows NT/2000/XP 中的文件共享等。在 Windows NT 中,它在 NetBT(TCP/IP 上的 NetBIOS)上运行,后者使用著名的端口 137、138(UDP)和 139(TCP)。在 Windows 2000/XP 中,Microsoft 增加了直接通过 TCP/IP 运行 SMB 的可能性,而无需额外的 NetBT 层。为此,他们使用 TCP 端口 445。

简单来说,LAN 上的 NetBIOS 可能只是旧版软件的必要之恶。但是,WAN 或 Internet 上的 NetBIOS 是一个巨大的(愚蠢的……)安全风险。各种信息(例如您的域、工作组和系统名称以及帐户信息)都可以通过 NetBIOS 获得。确保 NetBIOS 永远不会离开您的网络确实符合您的最佳利益。

如果您使用的是多宿主机器,即有超过 1 张网卡,那么您应该禁用每个网卡上的 NetBIOS,或者禁用 TCP/IP 属性下的拨号连接,这些网卡不属于您的本地网络。

如何禁用端口 445

要禁用端口 445:

添加以下注册表项:

项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters 名称:SMBDeviceEnabled 类型:DWORD (REG_DWORD) 数据:0

禁用上述端口后,请务必重启计算机。此外,要检查这些端口是否已禁用,您可以打开命令提示符并输入 netstat -an 以确认您的计算机不再监听这些端口。

(Windows 7 及更高版本的注册表项有所不同,请参阅Microsoft 文章

答案2

我想延长这个答案

Windows 中的端口 445 默认由“Server”服务(真实名称为“lanmanserver”)使用,用于通过 SMB 协议提供文件共享。要阻止 Windows 监听此端口,您需要停止并禁用此服务。

  1. 您需要拥有管理员权限或能够提升为管理员。
  2. 以管理员身份打开命令提示符。
  3. 输入sc stop lanmanserver,按 Enter。
  4. 由于某种原因,此时端口仍处于活动状态(根据我的经验,今天就是这样做的)。您需要重新启动系统以防止它监听端口,但服务将在重新启动后重新启动,因此您需要禁用它:
  5. 输入sc config lanmanserver start=disabled,按 Enter。
  6. 重启。
  7. 在命令提示符下使用 进行验证netstat -n -a | findstr "LISTENING" | findstr ":445",它应该打印一个空白行,这意味着没有任何内容在端口上监听。(对于非英语版本的 Windows,命令可能会有所不同,不确定,您可能需要将“LISTENING”更改为翻译版本)

在 Windows 中释放端口 445 的原因有很多,其中之一在我看来非常有趣,那就是允许通过 SSH 进行 SMB 隧道传输 - 当 Windows 不使用该端口时,您现在可以告诉 Putty / Cygwin'ed SSH 使用它并通过安全连接转发到远程主机 - 然后您就可以通过 安全地访问远程文件共享\\localhost

答案3

开始-运行-services.msc,禁用服务器服务。

答案4

端口 445 = SMB = 打印机和文件共享。因此,请在网络连接选项中禁用文件共享以关闭该端口。

相关内容