如何检查端口被什么程序占用
案例场景
1、安装产品环境检测提示8088端口占用。
2、IIS给网站添加端口后无法启动,提示“另一个程序正在使用此文件,进程无法访问。”
3、尝试登录金蝶云星空网页端,网页提示需要认证。
以上情况(其他类似情况)都可能与使用的端口被其他应用程序占用有关。
如何快速、准确定位占用端口的进程呢?
解决方案
1、按下“Windows+R”键打开【运行】。输入 CMD 后点击【确定】打开黑色的命令提示符界面。
2、输入 netstat -aon|findstr :端口号 按回车查看结果。
3、如果查询存在返回结果则说明有进程占用,最后一列是进程的PID号,可以使用tasklist /FI "PID eq PID号" 查询具体进程名称,或在任务管理器查看对应进程情况。
特殊情况分析
1、以上查询结果如果没有任何内容则可以确定端口没有被占用。
如果依然存在提示端口占用可能是其他原因导致(如计算机名称是全数字会导致安装服务端时提示8088端口占用)。
2、特别一点,如果查询出来的PID=4的话需要进一步分析。以下我们以查找1550端口是什么进程/业务占用为例说明。
2-1、首先使用命令查看端口及进程情况。
如图可发现1550端口存在占用,对应PID=4、为System进程。实际上PID=4的总是System,但是实际上一般并不是System自己占用了这个端口而是相关进程或服务运行在系统级别导致。
2-2、要发现具体占用这个端口的实际源需要进一步执行命令。可以尝试如下命令进一步分析。
netsh http show servicestate
发现因为这个命令的输出内容很长,直接在命令提示符下面不是很方便看,建议将结果重定向到文件,如c:\1550.txt 那对应名就是
netsh http show servicestate > c:\1550.txt
注意目录要有权限写入,没权限就换个有权限的文件夹。
2-3、执行完成没有错误,我们使用记事本打开 c:\1550.txt 文件并搜索端口号。
2-4、一般只要是通过HTTP方式占用的端口,在此处都可以搜到一个或多个结果。通过上图的请求队列名称的值再次搜索可看到类似下图结果。
2-5、结合以上步骤的2张图片,例我们可以看到他应该是IIS里面的一个网站,可以打开IIS看看是否对得上。如下确实有这样一个网站。其他程序占用的话类似检查。
3、如果是80或443端口,常见的冲突服务有SQL SERVER REPORT SERVICES 和Windows Sync Share 服务,可以将这2个服务停止并禁用掉。
如何检查端口被什么程序占用
本文2024-09-23 01:20:27发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-145306.html