linux命令--netstat命令&ss命令

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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



转载于:https://my.oschina.net/zimingforever/blog/598565

你可能感兴趣的:(linux命令--netstat命令&ss命令)