Windows系统下的netstat命令参数:CentOS系统命令说明

在测试和运维中,经常需要在同一台服务器上部署多个应用程序,这经常会遇到端口冲突的问题(即端口被其他服务程序占用),那么如何找出是哪个应用程序占据?使用的端口呢?下面几招教你快速解决端口冲突问题。

netstat 命令说明

netstat 命令是监控 TCP/IP 网络的一个非常有用的工具。它可以显示每个网络接口设备的路由表、实际网络连接和状态信息。在 Windows 和 CentOS 系统下发现命令参数略有不同。

Windows系统下的netstat命令参数:

CentOS系统下netstat命令参数:

通过对比windows和CentOS系统下netstat的命令参数可以看出,在显示进程号上,在windows系统中加了-o参数显示进程号,在CentOS系统中加了-p参数显示进程号;所以使用netstat来显示端口连接时,Windows和CentOS系统下的命令分别是:netstat -ano和netstat -anp。这两个命令用于显示所有端口连接。如果端口连接很多,不方便查找我们想要的端口是否存在。这时候需要添加端口进行更多的搜索和显示。Windows下的搜索命令是findstr *,CentOS下的搜索命令是grep *(这里的*换成端口号)。

检查端口是否被占用

Windows下查看端口是否被占用的命令是netstat -ano | 找到str“8088”。如果有程序被占用,执行结果如下:

CentOS下查看端口是否被占用的命令是netstat -anp | grep“8083”。如果有程序被占用,执行结果如下:

通过进程号查看占用端口的应用

netstat只能查看被占用端口的进程ID,所以需要其他命令查询具体应用。对于 Windows 系统,我们使用命令 wmic process get name, executablepath, processid | findstr 2984(2984是netstat查询到的进程ID),如下图:

在 CentOS 系统中,我们使用命令 ps -ef | grep 48963(48963是使用netstat查询的进程号)netstat端口号没有进程,如下图:

Java应用通过jps命令查看应用路径

从上面可以看出都是Java应用netstat端口号没有进程,但是在Windows系统中并没有像在CentOS系统中那样列出应用路径,所以还需要使用Java自带的命令行工具jps 2984(2984是使用netstat查询)进程ID)查看Java应用路径,如下图:

执行 jps 2984 命令后可以看到进程号为 2984 的整个 Java 应用程序的信息。我们找到user.dir = D:\nexus-2.8.1-01-bundle\nexus-2.8.1-01可以知道应用程序占用的路径港口。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论