有什么方法可以防止端口被使用/监听?

有什么方法可以防止端口被使用/监听?

假设出于某种原因,在我管理的 Windows 系统上,我不希望任何应用程序侦听某个端口,例如 8000。
结果是,当用户尝试运行应用程序来侦听该端口时,例如,python -m http.server 8000他会收到通常的错误提示OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions。当他使用命令检查是否有任何东西已经在使用该端口时,netstat -ano|findstr 8000他不会找到任何东西。
这有点像保留,就像说“不允许任何人使用此端口,因为我可能需要使用它来处理重要业务”。
我该怎么做?Windows 本身是否支持此功能?我需要第三方软件来实现这一点吗?

答案1

您应该查看“netsh”命令行实用程序。这将“保留”端口……使非特权进程无法绑定它们。

NETSH 列出 ipv4 > tcp 堆栈上的保留端口:

netsh interface ipv4 show excludedportrange protocol=tcp

NETSH 保留端口(模板):

netsh int <ipv4|ipv6> Add excludedportrange [protocol=]tcp|udp [startport=]<integer> [numberofports=]<integer> [[store=]active|persistent]

示例:NETSH,为 ipv4 > tcp 保留端口 8000,使用以下命令:

netsh int ipv4 add excludedportrange protocol=tcp startport=8000 numberofports=1

默认情况下,端口预留在重启后仍然有效。

无论如何,我建议你阅读NETSH 文档和相关用法及示例链接

如果上述解决方案不起作用,您可以尝试:

希望能帮助到你

相关内容