Linux查看端口占用情况
Posted 袖子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux查看端口占用情况相关的知识,希望对你有一定的参考价值。
以下命令如果不存在,使用yum install -y xxx安装。
一、netstat或ss命令
1. netstat
注:yum install -y net-tools
netstat -anlp | grep 8888 # netstat命令各个参数说明如下: # -t : 指明显示TCP端口 # -u : 指明显示UDP端口 # -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序) # -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。 # -n : 不进行DNS轮询,显示IP(可以加速操作)
对输出的每一项进行说明:
(1) Proto:协议名(tcp协议还是udp协议)
(2) Recv-Q:网络接收队列。表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走。如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。通常应该为0,如果不为0可能是有问题的。packets在两个队列里都不应该有堆积状态。可接受短暂的非0情况。
(3) Send-Q:网路发送队列。对方没有收到的数据或者说没有Ack的,还是本地缓冲区。如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。通常应该为0,如果不为0可能是有问题的。packets在两个队列里都不应该有堆积状态。可接受短暂的非0情况。
(4) Local Address
- 0.0.0.0:22 表示监听服务器上所有ip地址的所有(0.0.0.0表示本地所有ip)
- :::22 也表示监听本地所有ip的22端口,跟上面的区别是这里表示的是IPv6地址,上面的0.0.0.0表示的是本地所有IPv4地址。
- 127.0.0.1:9100这个表示监听本机的loopback地址的9100端口(如果某个服务只监听了回环地址,那么只能在本机进行访问,无法通过tcp/ip 协议进行远程访问)
(5) Foreign Address:与本机端口通信的外部socket。显示规则与Local Address相同
(6) State:链路状态,共有11种。state列共有12中可能的状态,前面11种是按照TCP连接建立的三次握手和TCP连接断开的四次挥手过程来描述的。
LISTEN:监听来自远方TCP端口的连接请求
ESTABLISHED:代表一个打开的连接,双方可以进行或已经在数据交互了。
UNKNOWN:未知的socket状态
(7) PID/Program:PID即进程id,Program即使用该socket的应用程序。
(2) ss
ss -anlp | grep 80
二、lsof命令
这个命令是查看进程占用哪些文件的
lsof -i:80
注:yum install -y lsof
三、fuser命令
fuser命令和lsof正好相反,是查看某个文件被哪个进程占用的。Linux中,万物皆文件,所以可以查看普通文件、套接字文件、文件系统。而套接字文件就包含了端口号。比如查看22端口。
fuser 22/tcp -v
注:yum install -y psmisc
四、nmap工具
nmap默认总是会扫描端口,要扫描本机端口,很方便。
nmap localhost
以上是关于Linux查看端口占用情况的主要内容,如果未能解决你的问题,请参考以下文章