有人知道如何通过windows命令行关闭单个连接的TCP或UDP套接字吗?

我在谷歌上搜索了一下,看到一些人也问了同样的问题。但是答案看起来像是netstat或netsh命令的手册页,重点关注如何监视端口。我不想要关于如何监控它们的答案(我已经这样做了)。我想干掉他们。

EDIT, for clarification: Let's say that my server listens TCP port 80. A client makes a connection and port 56789 is allocated for it. Then, I discover that this connection is undesired (e.g. this user is doing bad things, we asked them to stop but the connection didn't get dropped somewhere along the way). Normally, I would add a firewall to do the job, but this would take some time, and I was in an emergency situation. Killing the process that owns the connection is really a bad idea here because this would take down the server (all users would lose functionality when we just want to selectively and temporally drop this one connection).


当前回答

如果你知道你想要删除的特定端口,只需以admin的身份打开命令提示符(在windows上),然后:

NPX kill-port 1900

以上1900是我箱子的端口号。当我想关闭React-Native开发工具(和Expo)正在运行的端口时,我经常使用这个方法。原因是即使关闭了开发人员窗口或停止了服务器,端口仍然在使用中。

其他回答

使用TCPView: http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx 或CurrPorts: https://www.nirsoft.net/utils/cports.html

或者,如果你不想使用外部软件(顺便说一下,这些工具不需要安装),你可以简单地先运行netstat命令(最好是netstat -b),然后设置本地安全策略来阻止用户机器的IP地址,这就是我一直在做的不需要的甚至未知的连接-这允许你做任何事情没有任何外部软件(一切都是Windows附带的)…

使用CurrPorts(免费且无需安装):http://www.nirsoft.net/utils/cports.html

/close <本端地址> <本端端口> <对端地址> <对端端口>{进程名}

例子:

# Close all connections with remote port 80 and remote address 192.168.1.10: 
/close * * 192.168.1.10 80
# Close all connections with remote port 80 (for all remote addresses): 
/close * * * 80
# Close all connections to remote address 192.168.20.30: 
/close * * 192.168.20.30 *
# Close all connections with local port 80: 
/close * 80 * *
# Close all connections of Firefox with remote port 80: 
/close * * * 80 firefox.exe

它还有一个很好的GUI,具有搜索和筛选功能。

注意:这个答案是huntharo和JasonXA的答案和评论组合在一起,并进行了简化,以方便读者阅读。例子来自CurrPorts的网页。

是的,有可能关闭TCP或UDP端口,在DOS中有一个命令

TASKKILL /f /pid 1234 

我希望这对你有用

如果你知道你想要释放的端口,你可以通过寻找特定的端口来排序netstat列表,就像这样:

netstat -ano | findstr :8080

然后pid会出现在右边,你可以用taskkill杀死它。

taskkill /pid 11704 /F

此外,你可能想看看这个问题,这是专门为localhost,但我认为它是相关的:

为了关闭该端口,您可以确定正在侦听该端口的进程并杀死该进程。