查看所有网络端口
netstat -an
[root@xxxxx~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:8006 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
查看端口具体被那个进程占用
lsof -i :3690
[root@xxxxxx~]# lsof -i :3690
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 8533 root 3u IPv4 42704 0t0 TCP *:svn (LISTEN)
再使用以下命令查看详细信息:
ps -aux | grep 8533
[root@iZbp1g3u73g9nybvafuwc6Z ~]# ps -aux | grep 8533
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 8533 0.0 0.0 156996 888 ? Ss 10:20 0:00 svnserve -d -r /shiyu/
root 8648 0.0 0.0 103256 840 pts/0 S+ 10:31 0:00 grep 8533
最后kill-9 pid
kill -9 8533
之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下:
1.netstat -anp |grep 端口号
如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1:
图1
图1中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了。
2.netstat -nultp(此处不用加端口号)
该命令是查看当前所有已经使用的端口情况,如图2:
图2
图中可以看出我的82端口没有被占用
3.netstat -anp |grep 82查看82端口的使用情况,如图3:
图3
可以看出并没有LISTEN那一行,所以就表示没有被占用。此处注意,图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了
1、lsof -i:端口号
2、netstat -tunlp|grep 端口号
都可以查看指定端口被哪个进程占用的情况
工具/原料
linux,windows
xshell
方法/步骤
【步骤一】lsof -i
lsof -i 用以显示符合条件的进程情况,lsof(list open files)是一个列出当前系统打开文件的工具。以root用户来执行lsof -i命令,如下图
【步骤二】lsof -i:端口号
lsof -i:端口号,用于查看某一端口的占用情况,比如查看22号端口使用情况,lsof -i:22,如下图
3
【步骤三】netstat -tunlp
netstat -tunlp用于显示tcp,udp的端口和进程等相关情况,如下图
4
【步骤四】netstat -tunlp|grep 端口号
netstat -tunlp|grep 端口号,用于查看指定端口号的进程情况,如查看22端口的情况,netstat -tunlp|grep 22,如下图