在 Windows 系统的默认配置下,会启动一个共享服务(Samba, SMB),以使局域网内的机器可以通过如 \\192.168.1.1 的形式来访问系统中共享的文件和打印机等。

Windows 共享

该服务主要使用 445 端口进行通信,我们可以通过命令 netstat -an | findstr :445 来确认该端口被占用。

445 端口被占用

如果无需使用该服务,或者想要释放 445 端口供其他应用使用的话,我们可以禁用 Windows 共享服务。

Windows 共享服务的显示名称为 Server,实际服务名为 LanmanServer

在 Windows 10 之前的系统中,或在启用了 SMB 1.0 支持的 Windows 10 系统中,另有一项依赖此服务的服务,显示名称为 Computer Browser,实际服务名为 Browser,该服务维护网络上计算机的更新列表,并会展示在资源管理器左侧的网络项目下。

要想禁用并停止这两项服务,我们可以打开服务 (services.msc),在其中分别找到这两项服务,右键进入属性,选择禁用停止即可。

Computer Browser 服务

Server 服务

服务属性菜单

此外,我们也可以通过命令行来禁用并停止相关服务。

sc.exe config Browser start= disabled
sc.exe stop Browser

sc.exe config LanmanServer start= disabled
sc.exe stop LanmanServer

命令行停止 Computer Browser 服务

命令行停止 Server 服务

当服务停止后,我们可以发现此时已经无法在资源管理器中访问之前的共享了。并会报出以下其中一种错误:

Windows 共享无法访问 - 没有启动服务器服务

Windows 共享无法访问 - 网络错误

然而要使 Windows 释放 445 端口,除了停止服务,我们还需要重启一次计算机。

重启完成后,再执行之前执行过的 netstat -an | findstr :445 命令,我们会发现原先被占用的端口已经被释放了。

445 端口被释放

至此,我们就成功地停止并禁用了相关服务,释放了 445 端口。