如何确定哪个进程正在侦听Windows上的TCP或UDP端口?
当前回答
如果运行以下命令,可以获得更多信息:
netstat -aon | find /i "listening" |find "port"
使用“查找”命令可以过滤结果。find/i“侦听”将仅显示“侦听”的端口。注意,您需要/i忽略大小写,否则您将键入find“LISTENING”。|查找“端口”将结果限制为仅包含特定端口号的端口。注意,在这一点上,它还将过滤响应字符串中任何位置具有端口号的结果。
其他回答
Windows有一个本机GUI:
“开始”菜单→ 所有程序→ 配件→ 系统工具→ 资源监视器或运行resmon.exe,或来自TaskManager→ 性能选项卡。
如果需要GUI,请使用TCPView。这是微软收购的旧Sysinternals应用程序。
根据带有信息和击杀的答案,对我来说,将它们组合在一个命令中是有用的。您可以从cmd运行此命令以获取有关侦听给定端口的进程的信息(示例8080):
for /f "tokens=3 delims=LISTENING" %i in ('netstat -ano ^| findStr "8080" ^| findStr "["') do @tasklist /nh /fi "pid eq %i"
或者如果你想杀死它:
for /f "tokens=3 delims=LISTENING" %i in ('netstat -ano ^| findStr "8080" ^| findStr "["') do @Taskkill /F /IM %i
您也可以将这些命令放入bat文件中(它们略有不同-将%i替换为%%i):
文件portInfo.bat
for /f "tokens=3 delims=LISTENING" %%i in (
'netstat -ano ^| findStr "%1" ^| findStr "["'
) do @tasklist /nh /fi "pid eq %%i"
文件端口Kill.bat
for /f "tokens=3 delims=LISTENING" %%i in (
'netstat -ano ^| findStr "%1" ^| findStr "["'
) do @Taskkill /F /IM %%i
然后您可以通过cmd执行以下操作:
端口信息.bat 8080
or
端口Kill.bat 8080
只需打开命令shell并键入(端口为123456):
netstat -a -n -o | find "123456"
你会看到你需要的一切。
标题为:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:37 0.0.0.0:0 LISTENING 1111
这就是这里提到的。
对于Windows,如果要查找正在侦听或连接到端口1234的内容,请在cmd提示符下执行以下操作:
netstat -na | find "1234"
推荐文章
- 我如何找到哪个程序正在使用端口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的替代品吗?