乐闻世界logo
搜索文章和话题

How to close TCP and UDP ports via windows command line

2 个月前提问
2 个月前修改
浏览次数30

1个答案

1

在Windows环境下,如果需要关闭特定的TCP或UDP端口,通常我们不能直接“关闭”一个端口,而是需要阻止该端口上的网络活动,或者停止使用该端口的服务或程序。以下是几种可以通过命令行实现相关操作的方法:

1. 通过防火墙规则阻止端口

可以使用Windows防火墙(Windows Firewall)来阻止特定端口的通信。这可以通过netsh命令行工具来实现。例如,如果你想阻止入站TCP端口8080,可以使用如下命令:

bash
netsh advfirewall firewall add rule name="BlockTCP8080" dir=in action=block protocol=TCP localport=8080

这条命令创建了一个名为“BlockTCP8080”的新规则,它会阻止所有进入TCP端口8080的连接。

2. 结束使用端口的进程

如果某个程序正在使用你想要关闭的端口,你可以通过结束该程序的进程来释放端口。首先,你需要找出哪个进程正在使用该端口,可以用以下命令:

bash
netstat -aon | findstr :8080

这里8080是你想要查找的端口号。这条命令会列出所有使用8080端口的进程,以及它们的进程ID(PID)。

一旦你拥有了进程ID,可以使用taskkill命令来结束进程:

bash
taskkill /F /PID 1234

其中1234应该替换为你从netstat命令中获得的实际PID。

3. 禁用相关服务

如果某个服务(比如IIS服务、SQL服务等)在使用端口,可以通过命令行禁用整个服务。首先,使用以下命令查找服务的名称:

bash
sc query

找到服务后,使用以下命令停止服务:

bash
net stop "服务名称"

替换"服务名称"为实际的服务名称。

示例

假设我发现我的电脑上有一个名为“ExampleService”的服务正在使用TCP端口8080,我可以执行以下操作:

  1. 查找服务确实在运行:

    bash
    sc query | findstr "ExampleService"
  2. 停止“ExampleService”服务:

    bash
    net stop "ExampleService"
  3. 添加防火墙规则以防万一:

    bash
    netsh advfirewall firewall add rule name="BlockTCP8080" dir=in action=block protocol=TCP localport=8080

这样,端口8080就不再被“ExampleService”服务使用,且通过防火増加了额外的安全措施。

2024年7月7日 11:08 回复

你的答案