netstat

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态等等。

常见参数:

   -a (all)显示所有选项,默认不显示LISTEN相关
   -t (tcp)仅显示tcp相关选项
   -u (udp)仅显示udp相关选项
   -n 拒绝显示别名,能显示数字的全部转化成数字。
   -l 仅列出有在 Listen (监听) 的服務状态
   -p 显示建立相关链接的程序名
   -r 显示路由信息,路由表
   -e 显示扩展信息,例如uid等
   -s 按各个协议进行统计
   -c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

实用命令实例

1.列出所有端口
列出所有端口 $netstat -a
列出所有tcp端口 $netstat -at
列出所有udp端口 $netstat -au

2.列出所有监听状态
只显示监听端口 $netstat -l
只列出所有监听TCP端口 $netstat -lt
只列出所有监听UDP端口 $netstat -lu
只列出所有监听UNIX端口 $netstat -lx

3.显示每个协议的统计信息
显示所有端口的统计信息 $netstat -s
显示TCP或UDP端口的统计信息 $netstat -st 或 -su

4.显示PID和进程名称
netstat -p

5.不显示主机,端口和用户名
当不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。
netstat -an,同样可以加速输出,因为不用进行比对查询。
如果只是不想让这三个名称中的一个被显示,使用以下命令:
netsat -a --numeric-ports
netsat -a --numeric-hosts
netsat -a --numeric-users

6.持续输出netstat信息
netstat -c  #将每隔一秒输出网络信息。

7.找出程序运行的端口
并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。
netstat -ap | grep ssh
找出运行在指定端口的进程:
netstat -an | grep':80'

8. 显示网络接口列表
netstat -i
netstat -ie

显示详细信息,像是 ifconfig 使用 netstat -ie.



在linux下,如何查看服务器的并发连接数呢?使用以下命令即可分组查看各种连接状态:
    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  
返回结果示例:
    LAST_ACK 5   (正在等待处理的请求数)
    SYN_RECV 30
    ESTABLISHED 1597 (正常数据传输状态)
    FIN_WAIT1 51
    FIN_WAIT2 504
    TIME_WAIT 1057 (处理完毕,等待超时结束的请求数)
 状态:描述
    CLOSED:无连接是活动的或正在进行
    LISTEN:服务器在等待进入呼叫
    SYN_RECV:一个连接请求已经到达,等待确认
    SYN_SENT:应用已经开始,打开一个连接
    ESTABLISHED:正常数据传输状态
    FIN_WAIT1:应用说它已经完成
    FIN_WAIT2:另一边已同意释放
    ITMED_WAIT:等待所有分组死掉
    CLOSING:两边同时尝试关闭
    TIME_WAIT:另一边已初始化一个释放
    LAST_ACK:等待所有分组死掉
使用这上面的命令是可以查看服务器的种连接状态,其中ESTABLISHED 就是并发连接状态的显示数。如果仅仅只是想查看并发连接数,可以简化一下命令,即:
    netstat -nat|grep ESTABLISHED|wc -l 

你可能感兴趣的:(Linux相关)