一、NGINX查看并发连接

1.通过WEB界面查看,

  ①开启status模块,即安装Nginx时加上 –with-http_stub_status_module

  ②修改Nginx.conf,在server节加入如下内容

location /Nginxstatus {
   stub_status on;
   access_log /usr/local/nginx/logs/status.log;    #日志
   auth_basic "NginxStatus";            
}
 
#access_log、auth_basic均可不写

  ③重新加载Nginx服务,然后通过浏览器访问http://你的域名/Nginxstatus

  状态说明:

  Active connections    //当前 Nginx 正处理的活动连接数.

  server accepts handledrequests  //总共处理了387142个连接,成功创建387142次握手,总共处理了4804888个请求.

  Reading         //nginx 读取到客户端的 Header 信息数.

  Writing         //nginx 返回给客户端的 Header 信息数.

  Waiting         //开启 keep-alive 的情况下,这个值等于active-(reading+writing),意思就是Nginx已经处理完正在等候下一次请求指令的驻留连接.

2.通过

[root@localhost ~]# netstat [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]

  状态说明:

  LAST_ACK        //等待所有分组死掉

  SYN_RECV        //一个连接请求已经到达,等待确认

  ESTABLISHED     //正常数据传输状态/当前并发连接数

  FIN_WAIT2       //另一边已同意释放

  ITMED_WAIT          //等待所有分组死掉

  CLOSING         //两边同时尝试关闭

  TIME_WAIT       //另一边已初始化一个释放

  参考:https://www.cnblogs.com/lianzhilei/p/6025267.html

二、netstat查看连接数,并发数

[root@localhost ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}'

  状态说明:

  -a            显示所有连接和侦听端口。//常用
  -b            显示在创建每个连接或侦听端口时涉及的可执行程序。//常用                 
      在某些情况下,已知可执行程序承载多个独立的                  
       组件,这些情况下,显示创建连接或侦听端口时涉                 
      及的组件序列。此情况下,可执行程序的名称                 
      位于底部[]中,它调用的组件位于顶部,直至达
      到 TCP/IP。注意,此选项可能很耗时,并且在您没有                 
      足够权限时可能失败。
  -e          显示以太网统计。此选项可以与 -s 选项结合使用。//常用
  -f           显示外部地址的完全限定域名(FQDN)。//没用   
  -n          以数字形式显示地址和端口号。   //常用   
  -o          显示拥有的与每个连接关联的进程 ID。//没用
  -p proto 显示 proto 指定的协议的连接;proto 可以是下列任                 
                 何一个: TCP、UDP、TCPv6 或 UDPv6。   
                 如果与 -s 选项一起用来显示每个协议的统计,proto 可以是下列任                 
                何一个: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP                 
                 或 UDPv6。  
  -r         显示路由表。//常用
  -s         显示每个协议的统计。默认情况下,显示   //有用
                IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6                 
                 的统计;-p 选项可用于指定默认的子网。
  -t          显示当前连接卸载状态。 //没用

  interval      重新显示选定的统计,各个显示间暂停的间隔秒数。                 
                  按 CTRL+C 停止重新显示统计。如果省略,则 netstat                 
                  将打印当前的配置信息一次。

三、netstat 实时监控IP连接数

  如果服务器被流量攻击,或其它需要查看IP连接数的场景,可以使用下面的命令实时监控各IP的连接数。

[root@localhost ~]# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

四、iftop流量监控

1、iftop界面相关说明

界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。

中间的<= =>这两个左右箭头,表示的是流量的方向。

TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

2、iftop相关参数

常用的参数

-i设定监测的网卡,如:# iftop -i eth1

-B 以bytes为单位显示流量(默认是bits),如:# iftop -B

-n使host信息默认直接都显示IP,如:# iftop -n

-N使端口信息默认直接都显示端口号,如: # iftop -N

-F显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0

-h(display this message),帮助,显示参数信息

-p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;

-b使流量图形条默认就显示;

-f这个暂时还不太会用,过滤计算包用的;

-P使host信息及端口信息默认就都显示;

-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M

进入iftop画面后的一些操作命令(注意大小写)

按h切换是否显示帮助;

按n切换显示本机的IP或主机名;

按s切换是否显示本机的host信息;

按d切换是否显示远端目标主机的host信息;

按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;

按N切换显示端口号或端口服务名称;

按S切换是否显示本机的端口信息;

按D切换是否显示远端目标主机的端口信息;

按p切换是否显示端口信息;

按P切换暂停/继续显示;

按b切换是否显示平均流量图形条;

按B切换计算2秒或10秒或40秒内的平均流量;

按T切换是否显示每个连接的总流量;

按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;

按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;

按j或按k可以向上或向下滚动屏幕显示的连接记录;

按1或2或3可以根据右侧显示的三列流量数据进行排序;

按<根据左边的本机名或IP排序;

按>根据远端目标主机的主机名或IP排序;

按o切换是否固定只显示当前的连接;

按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!

按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!

按q退出监控。

  参考:https://www.vpser.net/manage/iftop.html