Windows

有什麼方法可以防止埠被使用/收聽?

  • June 12, 2022

假設出於某種原因,在我正在管理的 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 是否本機支持此功能?我需要第三方軟體來實現這一點嗎?

您應該查看“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 文件和相關用法和範例連結

希望能幫助到你

引用自:https://serverfault.com/questions/1103107