在日常开发测试中,我们有时候遇到服务启动端口被占用,那如何查看端口被哪个服务占用呢?这里和大家一起来学习下两种查看端口信息方式。
lsof方式比如说我们想查看下8110端口是否被占用,我们可以通过lsof -i:8110来查看
从上面可以看到8110端口被179957进程占用,具体该进程是什么信息,我们可以通过
ps -aux|grep 179957来查看进程具体信息
dev 179957 1.0 1.1 8285464 1567636 ? Sl Jan14 49:23 /usr/bin/java -Xms2048m -Xmx2048m -Xss256k -XX:metaspaceSize=256m -XX:MaxmetaspaceSize=256m -XX:+HeapDumponOutOfMemoryError -XX:HeapDumpPath=/home/work/log/dump -verbose:gc -Xloggc:gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintReferenceGC -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -agentlib:jdwp=transport=dt_socket, server=y,suspend=n,address=5019 -jar /usr/server/YYZX_Test/YYZX_Test.jar --spring.profiles.active=devnetstat方式
除了上面的lsof方式,我们还可以通过netstat方式来查看端口占用信息
netstat -tunlp | grep 端口号
-t (tcp) 仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 拒绝显示别名,能显示数字的全部转化为数字-l 仅列出在Listen(监听)的服务状态-p 显示建立相关链接的程序名
我们可以通过上面的命令来查看8110端口占用情况
tcp6 0 0 :::8110 :::* LISTEN 179957/java
至于进程的具体信息,我们可以通过ps -aux|grep 179957来直接查看



