如何确定哪个进程正在侦听Windows上的TCP或UDP端口?
当前回答
如果运行以下命令,可以获得更多信息:
netstat -aon | find /i "listening" |find "port"
使用“查找”命令可以过滤结果。find/i“侦听”将仅显示“侦听”的端口。注意,您需要/i忽略大小写,否则您将键入find“LISTENING”。|查找“端口”将结果限制为仅包含特定端口号的端口。注意,在这一点上,它还将过滤响应字符串中任何位置具有端口号的结果。
其他回答
键入命令:netstat-aon|findstr:DESIRED_PORT_NUMBER
例如,如果我想查找端口80:netstat-aon|findstr:80
这个答案最初是针对这个问题发布的。
您还可以使用下面的命令检查保留的端口。例如,Hyper-V保留了一些端口。
netsh int ipv4 show excludedportrange protocol=tcp
PowerShell(PowerShell)
如果你想有一个好的概述,你可以使用这个:
Get-NetTCPConnection -State Listen | Select-Object -Property *, `
@{'Name' = 'ProcessName';'Expression'={(Get-Process -Id $_.OwningProcess).Name}} `
| select ProcessName,LocalAddress,LocalPort
然后你会得到一张这样的桌子:
ProcessName LocalAddress LocalPort
----------- ------------ ---------
services :: 49755
jhi_service ::1 49673
svchost :: 135
services 0.0.0.0 49755
spoolsv 0.0.0.0 49672
对于UDP,它是:
Get-NetUDPEndpoint | Select-Object -Property *, `
@{'Name' = 'ProcessName';'Expression'={(Get-Process -Id $_.OwningProcess).Name}} `
| select ProcessName,LocalAddress,LocalPort
使用以下批处理脚本,该脚本将进程名称作为参数,并为进程提供netstat输出。
@echo off
set procName=%1
for /f "tokens=2 delims=," %%F in ('tasklist /nh /fi "imagename eq %1" /fo csv') do call :Foo %%~F
goto End
:Foo
set z=%1
echo netstat for : "%procName%" which had pid "%1"
echo ----------------------------------------------------------------------
netstat -ano |findstr %z%
goto :eof
:End
如果有人像我一样需要macOS的等价物,下面是:
lsof-i tcp:8080
获取进程的PID后,可以使用以下命令终止该进程:
终止-9<PID>
推荐文章
- 我如何找到哪个程序正在使用端口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的替代品吗?