4.网络命令
netstat
统计每一种状态的tcp连接数量
# netstat -antp | awk '{a[$6]++}END{ for(x in a)print x,a[x]}'netstat 在连接数过多的服务器上慢。用ss更好
#ss -s
查看系统正在监听的tcp连接
ss -atr
ss -atn #仅ip
查看系统中所有连接
ss -alt
查看监听80端口的进程 pid
ss -ltp |grep 80
查看进程1024占用了哪些商品
ss -ltp | grep 555
显示所有 UDP 连接
ss -u -a
-
查看TCP sockets,使用-ta选项
-
查看UDP sockets,使用-ua选项
-
查看RAW sockets,使用-wa选项
-
查看UNIX sockets,使用-xa选项
查看和某个 IP 的所有连接
ss dst 10.66.224.130 ss dst 10.66.224.130:http ss dst 10.66.224.130:smtp ss dst 10.66.224.130:443
显示所有的 HTTP 连接
ss dport = :http
查看连接本机最多的前 10 个 IP 地址
netstat -antp | awk '{print $4}' | cut -d ':' -f1 | sort | uniq -c | sort -n -k1 -r | head -n 10
Recv-Q 和 Send-Q
这两个值,在LISTEN和ESTAB状态分别代表不同意义。
一般,正常的应用程序这两个值都应该为0(backlog除外)。数值越大,说明问题越严重。
LISTEN 状态
-
Recv-Q:代表建立的连接还有多少没有被accept,比如Nginx接受新连接变的很慢
-
Send-Q:代表listen backlog值
ESTAB 状态
-
Recv-Q:内核中的数据还有多少(bytes)没有被应用程序读取,发生了一定程度的阻塞
-
Send-Q:代表内核中发送队列里还有多少(bytes)数据没有收到ack,对端的接收处理能力不强
查看流量
sar -n DEV 1
watch cat /proc/net/dev
查看占流量最大的 IP
iftop
tcpdump
tcpdump -i eth0 -nn -s0 -v port 80
-
-i指定网卡进行抓包 -
-n和ss一样,表示不解析域名 -
-nn两个n表示端口也是数字,否则解析成服务名 -
-s设置抓包长度,0表示不限制 -
-v抓包时显示详细输出,-vv、-vvv依次更加详细
1)加入-A选项将打印 ascii ,-X打印 hex 码。
tcpdump -A -s0 port 80
2)抓取特定 IP 的相关包
tcpdump -i eth0 host 10.10.1.1tcpdump -i eth0 dst 10.10.1.20
3)-w参数将抓取的包写入到某个文件中
tcpdump -i eth0 -s0 -w test.pcap
4)tcpdump支持表达式,还有更加复杂的例子,比如抓取系统中的get,post请求(非https)
tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:"
下载--wget
断点续传下载文件
wget -c $url
wget -r -p -np -k $url ##下载整站
发送网络连接(常用)
curl -XGET $url
全方位监控工具
nmon



浙公网安备 33010602011771号