Linux netstat 命令详解

简介

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况

TCP连接状态详解

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: 没有任何连接状态

命令选项

常用

-a或–all:显示所有连线中的Socket;

-t或–tcp:显示TCP传输协议的连线状况;

-u或–udp:显示UDP传输协议的连线状况;

-p或–programs:显示正在使用Socket的程序识别码和程序名称;

-l或–listening:显示监控中的服务器的Socket;

-r或–route:显示Routing Table;

-e或–extend:显示网络其他相关信息;

-s或–statistice:显示网络工作信息统计表;

-c或–continuous:持续列出网络状态;

-n或–numeric:直接使用ip地址,而不通过域名服务器;

 

-A<网络类型>或–<网络类型>:列出该网络类型连线中的相关地址;
-C或–cache:显示路由器配置的快取信息;
-F或–fib:显示FIB;
-g或–groups:显示多重广播功能群组组员名单;
-h或–help:在线帮助;
-i或–interfaces:显示网络界面信息表单;
-M或–masquerade:显示伪装的网络连线;
-N或–netlink或–symbolic:显示网络硬件外围设备的符号连接名称;
-o或–timers:显示计时器;
-v或–verbose:显示指令执行过程;
-V或–version:显示版本信息;
-w或–raw:显示RAW传输协议的连线状况;
-x或–unix:此参数的效果和指定"-A unix"参数相同;
–ip或–inet:此参数的效果和指定"-A inet"参数相同

常用组合命令

查看所有监听状态的 TCP 相关信息

我们一般使用此命令来查找主机上哪个程序占用哪个端口;或者是否服务正常启动,正常监听端口。

Local Address 列中,如果 IP 是 0.0.0.0 则表示监听所有的 IP 地址,如果是监听 127.0.0.1 则表示此端口只能在本地访问。

netstat -nltp

 查看端口是否被占用,也可以用lsof

lsof -i:端口号

 

 

 

 

 

找程序运行的端口

netstat -tunlp | grep ssh

 

 

 找出运行在指定端口的进程

netstat -an | grep ":9998"

 

 

 通过端口找进程ID

netstat -tunlp | grep 9998 | awk '{print $7}' | cut -d/ -f1

 

 

 统计TCP各种状态列表

netstat -n | awk '/^tcp/{++S[$NF]}END{for(i in S) print i,S[i]}'

 

posted on 2022-08-30 10:31  无言寒冰  阅读(1419)  评论(0编辑  收藏  举报