首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何通过windows命令行关闭TCP和UDP端口

如何通过windows命令行关闭TCP和UDP端口
EN

Stack Overflow用户
提问于 2011-12-31 23:35:02
回答 10查看 861.1K关注 0票数 197

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

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

编辑,以便澄清:假设我的服务器侦听TCP端口80。客户端建立连接,并为其分配端口56789。然后,我发现这个连接是不受欢迎的(例如,这个用户正在做坏事,我们要求他们停止连接,但连接没有在过程中的某个地方断开)。通常,我会添加一个防火墙来完成这项工作,但这需要一些时间,而且我处于紧急情况下。在这里杀死拥有连接的进程真的不是一个好主意,因为这会关闭服务器(当我们只想有选择地暂时丢弃这个连接时,所有用户都会失去功能)。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-01-31 21:08:25

是的,这是可能的。您不必是拥有套接字的当前进程才能关闭它。考虑一下,远程计算机、网卡、网线和操作系统都可能导致套接字关闭。

还要考虑Fiddler和Desktop VPN软件可以将自身插入到网络堆栈中,并向您显示所有流量或重新路由所有流量。

因此,你真正需要的就是让Windows提供一个API,直接允许这样做,或者让某人编写一个程序,它的操作有点像VPN或Fiddler,并为您提供了一种关闭通过它的套接字的方法。

至少有一个程序(CurrPorts)可以做到这一点,我今天使用它来关闭在CurrPorts启动之前启动的进程上的特定套接字。当然,要做到这一点,您必须以管理员身份运行它。

请注意,可能不太容易导致程序不侦听端口(嗯,这是可能的,但该功能被称为防火墙...),但我认为这里没有问到这一点。我认为问题是“我如何有选择地关闭到我的程序正在侦听的端口的一个活动连接(套接字)?”这个问题的措辞有点离谱,因为给出了不需要的入站客户端连接的端口号,它被称为" port“,但很明显,它是对该套接字的引用,而不是侦听端口。

票数 73
EN

Stack Overflow用户

发布于 2018-03-25 04:57:27

如果您知道要释放的端口,可以通过查找指定的端口对netstat列表进行排序,如下所示:

代码语言:javascript
复制
netstat -ano | findstr :8080

然后,pid将出现在您可以用taskkill杀死的右端。

代码语言:javascript
复制
taskkill /pid 11704 /F

您可能还想看看这个专门针对本地主机的question,但我认为它是相关的:

票数 85
EN

Stack Overflow用户

发布于 2016-12-25 17:17:57

例如,您想要释放端口8080,然后执行以下命令。

代码语言:javascript
复制
 netstat -ano
 taskkill /f /im [PID of the port 8080 got from previous command]

完成了!

票数 77
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8688949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档