我试图禁用不需要的服务,以改善延迟并提高安全性。
我发现通过在localhost和端口445上进行telnet,端口445仍然处于打开状态。由于我不需要端口445,因此我希望将其关闭。
如何确定谁在监听445端口以及如何禁用它?
请注意,我不想使用防火墙或类似功能阻止端口445,而是要禁用已打开端口445的程序。
我试图禁用不需要的服务,以改善延迟并提高安全性。
我发现通过在localhost和端口445上进行telnet,端口445仍然处于打开状态。由于我不需要端口445,因此我希望将其关闭。
如何确定谁在监听445端口以及如何禁用它?
请注意,我不想使用防火墙或类似功能阻止端口445,而是要禁用已打开端口445的程序。
Answers:
以下仅是引用了两个不同的来源,我曾经成功地在Windows XP计算机上禁用了端口445。我关闭了端口445和135和137-139,所以我按照本文中的所有说明进行了操作,对我来说很有效。
有关端口445的常规信息(存档链接)
Windows 2000使用的新端口中有TCP端口445,用于TCP上的SMB。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永远不会离开您的网络确实符合您的最大利益。
如果使用的是多宿主计算机(即多个网卡),则应禁用每个网卡上的NetBIOS或TCP / IP属性下的“拨号连接”(这不是本地网络的一部分)。
禁用端口445:
添加以下注册表项:
密钥:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ NetBT \ Parameters名称:SMBDeviceEnabled类型:DWORD(REG_DWORD)数据:0
禁用上述端口后,请不要忘记重新启动计算机。另外,要检查这些端口是否被禁用,您可以打开命令提示符并键入netstat -an,以确认您的计算机不再侦听那些端口。
(Windows 7及更高版本的注册表项不同,请参阅此Microsoft文章)
我想扩展这个答案
Windows中的端口445在默认情况下由“服务器”服务(真实名称为“ lanmanserver”)使用,以通过SMB协议提供文件共享。为了防止Windows侦听此端口,您需要停止并禁用此服务。
sc stop lanmanserver
,按Enter键。sc config lanmanserver start=disabled
,按Enter键。netstat -n -a | findstr "LISTENING" | findstr ":445"
,它应该打印一个空行,表示该端口上没有侦听任何内容。(对于非英语版本的Windows,命令可能会有所不同,不确定,您可能需要将“ LISTENING”更改为翻译后的变体)在Windows中释放端口445的原因多种多样,其中一个很有趣,它是允许SMB通过SSH进行隧道传输-当Windows不使用该端口时,您现在可以告诉Putty / Cygwined SSH使用并转发通过安全连接到远程主机-然后您可以通过以下方式安全地访问远程文件共享 \\localhost
。。
使用TCPView找出哪个程序正在侦听端口445。
如果侦听器是svchost.exe,则这是系统服务。要猜出哪个,记下它的PID,转到任务管理器,选择Services,然后单击PID对其进行排序。带有此PID的服务将很多,并且所有这些都是候选对象。如果您不能确定哪个,请张贴候选服务的名称,以便我们对其进行评论。
请注意,开放的端口不需要监听器。当端口未被防火墙阻止时,该端口称为“开放”。
端口445 = SMB =打印机和文件共享。因此,在网络连接选项中禁用文件共享以关闭端口。
电源外壳:
$netBTParametersPath = "HKLM:\SYSTEM\CurrentControlSet\Services\NetBT\Parameters"
IF(Test-Path -Path $netBTParametersPath) {
Set-ItemProperty -Path $netBTParametersPath -Name "SMBDeviceEnabled" -Value 0
}
Set-Service lanmanserver -StartupType Disabled
Stop-Service lanmanserver -Force