netstat 查看链接和端口监听等信息
参数介绍:
-n :不显示别名(主机名/域名以 数字或IP显示)
-e :显示其他/更多信息
-p :显示进程PID/进程名
-c :持续输出(设置后会每隔 1秒输出一次,Ctrl+C 终止)
-l :显示正在监听的套接字
-a :显示全部信息
# 下面这些就不很常用了。
-r :显示路由表
-i :显示网络接口(网卡)
-g :显示多播组信息
-s :显示网络统计
-M :显示伪装连接
-v :显示正在进行的工作
# 更多的命令可以用 netstat --help 来查看。
使用示例:
# 显示当前服务器的所有连接信息
netstat -a
# 显示当前服务器的所有 TCP连接信息
netstat -at
# 显示当前服务器的所有 UDP连接信息
netstat -au
# 显示当前服务器的所有 端口监听信息
netstat -lnp
# 显示当前服务器的所有 TDP端口监听信息
netstat -lntp
一般来说经常使用这个命令:
# 显示当前服务器的所有正在监听 TCP端口的信息,并且 显示进程PID和进程名,但不显示别名(域名以IP显示),这个命令算是最常用的了。
netstat -lntp
# 输出示例
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 14233/nginx.conf
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1555/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 14233/nginx.conf
tcp6 0 0 :::22 :::* LISTEN 1555/sshd
—————————————————————————————————————
# 显示监听 80端口的进程PID和进程名,grep是匹配并显示 符合关键词的行。
netstat -lntp|grep ":80"
# 输出示例
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 14233/nginx.conf
—————————————————————————————————————
# 显示 ssh的监听情况,grep是匹配并显示 符合关键词的行。
netstat -lntp|grep "ssh"
# 输出示例
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1555/sshd
表头解释:
Proto :连接协议(tcp/udp是IPv4,tcp6/udp6是IPv6)
Recv-Q : 接收队列(基本都是0,如果不是代表堆积)
Send-Q :发送队列(基本都是0,如果不是代表堆积)
Local Address :本地地址和端口
Foreign Address :对外地址和端口
State :连接状态
PID/Program name :进程PID/进程名
# 每隔 1秒显示一次当前服务器的所有连接信息
netstat -c
# 每隔 1秒显示一次当前服务器的所有 TCP连接信息
netstat -ct
# 每隔 1秒显示一次当前服务器的所有 UDP连接信息
netstat -cu
# 显示当前服务器的路由表
netstat -r
# 显示当前服务器的网络接口信息(网卡)
netstat -i
# 显示当前服务器的网络统计信息
netstat -s
# 更多的命令可以用 netstat --help 来查看。
在使用 netstat命令中,会显示一些连接状态,下面是各状态的意思:
LISTEN
# 监听来自远程连接的 TCP端口连接请求
SYN-SENT
# 在发送连接请求后,等待匹配的连接请求
SYN-RECEIVED
# 在收到和发送一个连接请求后,等待对方对连接请求的确认
ESTABLISHED
# 代表一个打开的连接
FIN-WAIT-1
# 等待远程 TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2
# 从远程 TCP等待连接中断请求
CLOSE-WAIT
# 等待从本地用户发来的连接中断请求
CLOSING
# 等待远程TCP对连接中断的确认
LAST-ACK
# 等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT
# 等待足够的时间,以确保远程TCP接收到连接中断请求的确认
CLOSED
# 没有任何连接状态(或者关闭了连接)