netstat
这个命令用来进行网络状态的监控,显示的主要有:
从整体上看,netstat的输出结果可以分为两个部分:
一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。
常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
实用命令实例
- 显示每个协议的统计信息 (netstat -s)
netstat -s
Ip:
11150 total packets received
1 with invalid addresses
0 forwarded
0 incoming packets discarded
11149 incoming packets delivered
11635 requests sent out
Icmp:
0 ICMP messages received
0 input ICMP message failed.
Tcp:
582 active connections openings
2 failed connection attempts
25 connection resets received
Udp:
1183 packets received
4 packets to unknown port received.
.....
- 显示核心路由信息 (netstat -r)
netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth2
link-local * 255.255.0.0 U 0 0 0 eth2
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth2
- 找出程序运行的端口 (netstat -ap | grep redis)
netstat -ap | grep redis
tcp 0 0 *:6379 *:* LISTEN 3633/./redis-server
tcp 0 0 101.200.75.164:6379 scan-15.shadowserver.:45433 ESTABLISHED 3633/./redis-server
- 找出运行在指定端口的进程 (netstat -anp | grep ‘:6379’)
netstat -anp | grep ':6379'
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 3633/./redis-server
tcp 0 0 101.200.75.164:6379 184.105.247.196:45433 ESTABLISHED 3633/./redis-server
- IP和TCP分析 查看连接某服务端口最多的的IP地址
wss8848@ubuntu:~$
netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20
221.136.168.36
154.74.45.242
78.173.31.236
62.183.207.98
192.168.1.14
182.48.111.215
124.193.219.34
119.145.41.2
114.255.41.30
75.102.11.99
管道命令 |
在linux中可以command后的结果,通过管道 | 来转换为标准输出流。
于是,在 | 后面的命令是必须要是能够接受标准输出流的命令。
接收数据管道命令有:sed,awk,cut,head,top,less,more,wc,join,sort,split 等等,都是些文本处理命令。