Linux/windows下怎样查看某个端口被哪个程序/进程占用

Windows: 
C:/Users/ZJ> netstat -aon|findstr "123" 
协议   本地地址               外部地址      状态          PID

TCP 127.0.0.1:55123 0.0.0.0:0 LISTENING 5092 
TCP 127.0.0.1:55123 127.0.0.1:55124 ESTABLISHED 5092  
TCP 127.0.0.1:55124 127.0.0.1:55123 ESTABLISHED 5092  
UDP 0.0.0.0:123 *:* 1416  
UDP [::]:123 *:* 1416  
[注]:执行 netstat -aon|findstr "123" 以后,就可以看到5092进程中TCP打开123端口,1416进程打开UDP123端口。执行 netstat -aon查看所有端口的使用情况   
C:/Users / ZJ > tasklist|findstr "1416"  
svchost.exe 1416 Services 0 13,540 K  
[注]:执行 tasklist|findstr "1416" 后就可以看到是svchost.exe在UDP打开123端口(也可以去任务管理器中查看pid对应的进程) 
[注]:执行 taskkill /f /t /im svchost.exe 结束该进程

Linux: 
打开终端
cd /java/tomcat
#执行
bin/startup.sh #启动tomcat
bin/shutdown.sh #停止tomcat
tail -f logs/catalina.out #看tomcat的控制台输出;
 
#看是否已经有tomcat在运行了
ps -ef |grep tomcat
#如果有,用kill;
kill -9 pid #pid 为相应的进程号
 
例如 ps -ef |grep tomcat 输出如下
sun 5144 1 0 10:21 pts/1 00:00:06 /java/jdk/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/java/tomcat/common/endorsed -classpath :/java/tomcat/bin/bootstrap.jar:/java/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/java/tomcat -Dcatalina.home=/java/tomcat -Djava.io.tmpdir=/java/tomcat/temp org.apache.catalina.startup.Bootstrap start
 
则 5144 就为进程号 pid = 5144
kill -9 5144 就可以彻底杀死tomcat

#直接查看指定端口的进程pid
netstat -anp|grep 9217
#结果为 tcp        0      0 :::9217                     :::*                        LISTEN      26127/java
#则26127为9217这个端口的tomcat进程的pid,然后就可以kill这个进程
kill -9 26127

你可能感兴趣的:(Linux/windows下怎样查看某个端口被哪个程序/进程占用)