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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 
posted @ 2020-08-03 10:45  天涯160  阅读(125)  评论(0)    收藏  举报