如何确定哪个进程正在侦听Windows上的TCP或UDP端口?
当前回答
这是一个帮助我的单行解决方案。只需将3000替换为端口:
$P = Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess; Stop-Process $P.Id
编辑:将kill更改为Stop Process以获得更多类似PowerShell的语言
其他回答
正在使用PowerShell。。。…这将是您的朋友(用端口号替换8080):
netstat -abno | Select-String -Context 0,1 -Pattern 8080
样本输出
> TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 2920
[tnslsnr.exe]
> TCP [::]:8080 [::]:0 LISTENING 2920
[tnslsnr.exe]
因此,在此示例中,tnslsnr.exe(OracleXE数据库)正在侦听端口8080。
快速解释
选择字符串用于过滤相关行的netstat的冗长输出。-模式根据正则表达式测试每行。-上下文0,1将为每个模式匹配输出0个前导行和1个尾随行。
首先,我们找到需要消除的特定任务的进程id,以便获得自由端口:
类型
netstat -n -a -o
在Windows命令行提示符(cmd)中执行此命令后,选择我认为是最后一列的pid。假设这是3312。
现在键入
taskkill /F /PID 3312
现在可以通过键入netstat命令进行交叉检查。
注意:有时Windows不允许您直接在CMD上运行此命令,因此首先需要执行以下步骤:
从开始菜单->命令提示符(右键单击命令提示符,然后以管理员身份运行)
要了解哪个特定进程(PID)正在使用哪个端口:
netstat -anon | findstr 1234
其中1234是流程的PID。[转到任务管理器→ “服务/流程”选项卡,以查找应用程序的PID。]
要获取与每个连接关联的所有所属进程ID的列表,请执行以下操作:
netstat -ao |find /i "listening"
如果要终止任何进程,请具有ID并使用此命令,以便端口变为空闲
Taskkill /F /IM PID of a process
Use:
netstat -a -o
这显示了在特定端口上运行的进程的PID。
记住进程ID,然后转到任务管理器和服务或详细信息选项卡,结束具有相同PID的进程。
因此,您可以在Windows中终止在特定端口上运行的进程。
推荐文章
- 我如何找到哪个程序正在使用端口80在Windows?
- 在Windows中有像GREP这样的模式匹配实用程序吗?
- 如何在Windows命令提示符下运行.sh ?
- 如何从命令行在windows中找到mysql数据目录
- 在没有事件源注册的情况下写入Windows应用程序事件日志
- 有效地测试Linux上的端口是否打开?
- 访问HTTP响应作为字符串在Go
- 无法在Windows上从/usr/local/ssl/openssl.cnf加载配置信息
- GIT克隆在windows中跨本地文件系统回购
- 如何运行一个PowerShell脚本而不显示窗口?
- PowerShell:仅为单个命令设置环境变量
- 在SSH会话中查找客户端的IP地址
- 为什么这个Windows批处理文件只执行第一行,而在命令shell中执行所有三行?
- 环境变量存储在Windows注册表的哪里?
- 有一个好的Valgrind Windows的替代品吗?