美文网首页
Linux命令之:netstat命令

Linux命令之:netstat命令

作者: 人在码途 | 来源:发表于2018-06-24 23:47 被阅读21次

Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字

常用参数

-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"参数相同。

使用 -p 选项时,netstat 必须运行在 root 权限之下,不然它就不能得到运行在 root 权限下的进程名

显示字段说明

netstat -a | less
屏幕快照 2018-06-24 下午11.06.22.png
  • Porto :所使用的网络协议
  • Recv-Q:接收队列,Q是Queue的意思
  • Send-Q:发送队列
  • Local-Addrress:在本地计算机和正在使用的端口号的 IP 地址。 如果不指定-n参数显示在本地计算机的 IP 地址相对应的名称和端口的名称。如果端口尚未建立,端口号显示为星号。
  • Foreign address:套接字连接到远程计算机的 IP 地址和端口号。 如果不指定-n参数显示对应的 IP 地址和端口的名称。 如果端口尚未建立,端口号显示为星号
  • State:连接的状态

Recv-Q和Send-Q 这两个值通常应该为0,如果不为0可能是有问题的。packets在两个队列里都不应该有堆积状态。可接受短暂的非0情况。如文中的示例,短暂的Send-Q队列发送pakets非0是正常状态。

如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击。

如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快。

Recv-Q:表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()

Send-Q:对方没有收到的数据或者说没有Ack的,还是本地缓冲区.

State可能有一下几种状态:
  • LISTENING:(Listening for a connection.) 侦听来自远方的TCP端口的连接请求
  • SYN-SENT:再发送连接请求后等待匹配的连接请求
  • SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
  • ESTABLISHED:代表一个打开的连接
  • FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
  • FIN-WAIT-2:从远程TCP等待连接中断请求
  • CLOSE-WAIT:等待从本地用户发来的连接中断请求
  • CLOSING:本地用户已关闭连接, 等待远程TCP对连接中断的确认
  • LAST-ACK: 等待原来的发向远程TCP的连接中断请求的确认
  • TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认(等待远程中断)
  • CLOSED:没有任何连接状态

常用命令

  • 显示所有tcp连接,已IP端口显示( netstat 会通过反向域名解析技术查找每个 IP 地址对应的主机名,可以加快查询速度)
netstat -nltp
屏幕快照 2018-06-24 下午11.34.31.png
  • netstat -ct持续输出tcp信息, -c参数表示持续输出
netstat -ct
  • 配合 watch 命令监视 active 状态的连接:
watch -d -n0 "netstat -atnp | grep ESTA"
  • 显示各tcp连接状态的连接数统计
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'    

显示结果如下

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

TIME_WAIT 2342
CLOSE_WAIT 1
ESTABLISHED 1776

参考:

https://blog.csdn.net/sjin_1314/article/details/9853163

https://blog.csdn.net/chenlycly/article/details/52142865

相关文章

  • Linux

    linux awk命令详解、linux awk命令Linux常用操作指令Linux netstat命令详解 awk...

  • route、netstat、ss、ip(网络管理3)

    route命令 netstat命令 ss命令 ip命令(配置Linux网络属性)

  • Linux命令之:netstat命令

    Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix...

  • Linux命令: netstat

    netstat命令 Linux netstat 命令用于显示网络状态。利用 netstat 指令可让你得知整个 L...

  • Linux命令之netstat

    本章主要说明netstat命令的作用,与其对应参数的意义。 1、netstat命令用于显示网络状态,可以知道整个系...

  • linux命令之netstat

    netstat是linux下用于显示网络状态的命令。通过它能统计端口情况,网络连接状态,路由表等信息。在网络开发或...

  • linux命令之netstat

    netstat是一个在linux及windows下都十分常用的监控TCP/IP网络的非常有用的工具,它可以显示路由...

  • 每天一个linux命令:网络查看命令netstat

    时间:2016-12-07 15:26 晴 netstat命令: netstat命令用来打印Linux中网络系统的...

  • netstat与ss命令

    1. netstat命令 netstat命令用来打印Linux网络系统的状态信息。 语法: 具体参数: 1.1 常...

  • Linux实用命令

    常用命令 linux命令大全汇总 http://man.linuxde.net/netstat lsls -...

网友评论

      本文标题:Linux命令之:netstat命令

      本文链接:https://www.haomeiwen.com/subject/buteyftx.html