netstat命令可以用来显示于IP,TCP,UDP和ICMP协议相关的统计数据,一般用于检查本机各个端口的网络连接情况。
netstat是在内核中访问网络及相关信息程序,能提供TCP连接,TCP和UDP的链接,进程内存管理报告。
nestat支持的参数有
-a或–all 显示所有连线中的Socket。 -A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。 -c或–continuous 持续列出网络状态。 -C或–cache 显示路由器配置的快取信息。 -e或–extend 显示网络其他相关信息。 -F或–fib 显示FIB。 -g或–groups 显示多重广播功能群组组员名单。 -h或–help 在线帮助。 -i或–interfaces 显示网络界面信息表单。 -l或–listening 显示监控中的服务器的Socket。 -M或–masquerade 显示伪装的网络连线。 -n或–numeric 直接使用IP地址,而不通过域名服务器。 -N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。 -o或–timers 显示计时器。 -p或–programs 显示正在使用Socket的程序识别码和程序名称。 -r或–route 显示Routing Table。 -s或–statistice 显示网络工作信息统计表。 -t或–tcp 显示TCP传输协议的连线状况。 -u或–udp 显示UDP传输协议的连线状况。 -v或–verbose 显示指令执行过程。 -V或–version 显示版本信息。 -w或–raw 显示RAW传输协议的连线状况。 -x或–unix 此参数的效果和指定”-A unix”参数相同。 –ip或–inet 此参数的效果和指定”-A inet”参数相同。
命令1 ,-a会列出所有端口。-nu列出当前UDP连接状况,-apu显示udp端口号的使用情况,-at列出所有TCP端口,-pt可以输出PDI和进程的名称
netstat
其返回结果可以分为2部分,一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。
套接口类型: -t :TCP -u :UDP -raw :RAW类型 --unix :UNIX域类型 --ax25 :AX25类型 --ipx :ipx类型 --netrom :netrom类型 状态说明: LISTEN:侦听来自远方的TCP端口的连接请求 SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了) SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了) ESTABLISHED:代表一个打开的连接 FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认 FIN-WAIT-2:从远程TCP等待连接中断请求 CLOSE-WAIT:等待从本地用户发来的连接中断请求 CLOSING:等待远程TCP对连接中断的确认 LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击) TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认 CLOSED:没有任何连接状态
命令2 显示网卡信息
netstat -i
命令3 显示组播组关系
netstat -g
命令4 显示网路统计信息
netstat -s
命令5 显示以太网的统计数据
netstat -e
命令6 显示路由表的信息
netstat -r
命令5 显示监听的套接口
netstat -l
命令8 显示所有建立的有效连接
netstat -n
命令9 统计机器网络连接中各个状态的个数
netstat - a | awk '/^tcp/ {++S[$NF] END {FOR(a in s) print a,S[a]}}'
命令10 把状态全部取出来后使用uniq -c 统计后再进行排序
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
命令11 查看链接某服务端口最多的IP地址
netstat -nat | grep "192.168.120.20:16067" |awk '{print $5}'|awk -F: '{print $4}'|sort|uniq -c|sort -nr|head -20
命令12 找出程序运行的端口
netstat -ap | grep ssh
命令13 找出运行再指定端口的进程
netstat -anpt | grep ':16064'
ss命令是socket statistics的缩写,可以用来获取socket的统计信息,能够显示更多的TCP和连接状态的信息。ss命令利用tcp协议栈中的tcp_diag,它是用来分析统计的模块可获得linux内核中的信息。
可以使用的参数有
-h, --help 帮助信息 -V, --version 程序版本信息 -n, --numeric 不解析服务名称 -r, --resolve 解析主机名 -a, --all 显示所有套接字(sockets) -l, --listening 显示监听状态的套接字(sockets) -o, --options 显示计时器信息 -e, --extended 显示详细的套接字(sockets)信息 -m, --memory 显示套接字(socket)的内存使用情况 -p, --processes 显示使用套接字(socket)的进程 -i, --info 显示 TCP内部信息 -s, --summary 显示套接字(socket)使用概况 -4, --ipv4 仅显示IPv4的套接字(sockets) -6, --ipv6 仅显示IPv6的套接字(sockets) -0, --packet 显示 PACKET 套接字(socket) -t, --tcp 仅显示 TCP套接字(sockets) -u, --udp 仅显示 UCP套接字(sockets) -d, --dccp 仅显示 DCCP套接字(sockets) -w, --raw 仅显示 RAW套接字(sockets) -x, --unix 仅显示 Unix套接字(sockets) -f, --family=FAMILY 显示 FAMILY类型的套接字(sockets),FAMILY可选,支持 unix, inet, inet6, link, netlink -A, --query=QUERY, --socket=QUERY QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY] -D, --diag=FILE 将原始TCP套接字(sockets)信息转储到文件 -F, --filter=FILE 从文件中都去过滤器信息 FILTER := [ state TCP-STATE ] [ EXPRESSION ]
命令1 显示tcp连接
ss -t -a
命令2 显示sockets的摘要
ss -s
命令3 列出所有的打开的网络端口,-pl可以显示对应的应用程序
ss -l
命令4 显示udp连接
ss -u -a
命令5 显示所有的状态为established的smtp连接或者http连接
ss -o state established '( dport = :smtp or sport = :smtp )' ss -o state established '( dport = :http or sport = :http )'
其中状态可用的有
established syn-sent syn-recv fin-wait-1 fin-wait-2 time-wait closed close-wait last-ack listen closing all : 所有以上状态 connected : 除了listen and closed的所有状态 synchronized :所有已连接的状态除了syn-sent bucket : 显示状态为maintained as minisockets,如:time-wait和syn-recv. big : 和bucket相反.
命令6 匹配远程地址和端口号及本地地址和端口号
ss dst 192.168.1.5 ss dst 192.168.119.113:http ss dst 192.168.119.113:smtp ss dst 192.168.119.113:443 ss src 192.168.119.103 ss src 192.168.119.103:http ss src 192.168.119.103:80 ss src 192.168.119.103:smtp ss src 192.168.119.103:25
命令7 比较本地或者远程的端口号
ss dport OP PORT ss sport OP PORT
其中比较操作符支持
<= or le : 小于或等于端口号 >= or ge : 大于或等于端口号 == or eq : 等于端口号 != or ne : 不等于端口号 < or gt : 小于端口号 > or lt : 大于端口号
参考文档:
http://www.cnblogs.com/peida/archive/2013/03/08/2949194.html
http://www.cnblogs.com/peida/archive/2013/03/11/2953420.html