linux命令学习笔记(56):netstat命令
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误
,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正
迅速增加,那么你就应该使用netstat查一查为什么会出现这些情况了。
.命令格式:
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
.命令功能:
netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
.命令参数:
-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”参数相同。
.使用实例:
实例1:无参数使用
命令:
netstat
输出:
复制代码
[root@localhost ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 192.168.120.204:ssh 10.2.0.68: ESTABLISHED
udp 192.168.120.204: 10.58.119.119:domain ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix [ ] DGRAM @/org/kernel/udev/udevd
unix [ ] DGRAM /dev/log
unix [ ] DGRAM
unix [ ] DGRAM
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED
[root@localhost ~]#
复制代码
说明:
从整体上看,netstat的输出结果可以分为两个部分:
一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指的是接收队列和发送队
列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,
性能可以提高一倍)。
Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口
当前的状态,Path表示连接到套接口的其它进程使用的路径名。
套接口类型:
-t :TCP
-u :UDP
-raw :RAW类型
--unix :UNIX域类型
--ax25 :AX25类型
--ipx :ipx类型
--netrom :netrom类型
状态说明:
LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)
ESTABLISHED:代表一个打开的连接
FIN-WAIT-:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态 实例2:列出所有端口 命令:
netstat -a
输出:
复制代码
[root@localhost ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp localhost:smux *:* LISTEN
tcp *:svn *:* LISTEN
tcp *:ssh *:* LISTEN
tcp 192.168.120.204:ssh 10.2.0.68: ESTABLISHED
udp localhost:syslog *:*
udp *:snmp *:*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix [ ACC ] STREAM LISTENING /tmp/ssh-yKnDB15725/agent.
unix [ ACC ] STREAM LISTENING /var/run/audispd_events
unix [ ] DGRAM @/org/kernel/udev/udevd
unix [ ] DGRAM /dev/log
unix [ ] DGRAM
unix [ ] DGRAM
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED
[root@localhost ~]#
复制代码
说明:
显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请(LISTENING)的那
些连接。 实例3:显示当前UDP连接状况 命令:
netstat -nu
输出:
复制代码
[root@andy ~]# netstat -nu
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp ::ffff:192.168.: ::ffff:192.168.9.120: ESTABLISHED
udp ::ffff:192.168.: ::ffff:192.168.9.120: ESTABLISHED
udp ::ffff:192.168.: ::ffff:192.168.9.120: ESTABLISHED
udp ::ffff:192.168.: ::ffff:192.168.9.120: ESTABLISHED
udp ::ffff:192.168.: ::ffff:192.168.9.120: ESTABLISHED
udp ::ffff:192.168.: ::ffff:192.168.9.120: ESTABLISHED
udp ::ffff:192.168.: ::ffff:192.168.9.120: ESTABLISHED
udp ::ffff:192.168.: ::ffff:192.168.9.120: ESTABLISHED
udp ::ffff:192.168.: ::ffff:192.168.9.120: ESTABLISHED
[root@andy ~]#
复制代码
说明: 实例4:显示UDP端口号的使用情况 命令:
netstat -apu
输出:
复制代码
[root@andy ~]# netstat -apu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp *: *:* /java
udp *: *:* /java
udp *: *:* /java
udp ::ffff:192.168.: ::ffff:192.168.9.120:ndmp ESTABLISHED /java
udp *: *:* /java
udp ::ffff:192.168.: ::ffff:192.168.9.120:ndmp ESTABLISHED /java
udp *: *:* /java
udp *: *:* /java
udp *: *:* /java
udp ::ffff:192.168.: ::ffff:192.168.9.120:ndmp ESTABLISHED /java
udp ::ffff:192.168.: ::ffff:192.168.9.120:ndmp ESTABLISHED /java
udp *: *:* /java
udp *: *:* /java
udp *: *:* /java
udp ::ffff:192.168.: ::ffff:192.168.9.120:ndmp ESTABLISHED /java
udp *: *:* /java
udp *: *:* /java
udp *: *:* /java
udp ::ffff:192.168.: ::ffff:192.168.9.120:ndmp ESTABLISHED /java
udp ::ffff:192.168.: ::ffff:192.168.9.120:ndmp ESTABLISHED /java
udp ::ffff:192.168.: ::ffff:192.168.9.120:ndmp ESTABLISHED /java
udp ::ffff:192.168.: ::ffff:192.168.9.120:ndmp ESTABLISHED /java
udp *: *:* /java
udp *: *:* /java
udp *: *:* /java
udp *: *:* /java
[root@andy ~]#
复制代码
说明: 实例5:显示网卡列表 命令:
netstat -i
输出:
复制代码
[root@andy ~]# netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 BMRU
lo LRU
[root@andy ~]#
复制代码
说明: 实例6:显示组播组的关系 命令:
netstat -g
输出:
复制代码
[root@andy ~]# netstat -g
IPv6/IPv4 Group Memberships
Interface RefCnt Group
--------------- ------ ---------------------
lo all-systems.mcast.net
eth0 all-systems.mcast.net
lo ff02::
eth0 ff02:::ffff:9b0c
eth0 ff02::
[root@andy ~]#
复制代码
说明: 实例7:显示网络统计信息 命令:
netstat -s
输出:
复制代码
[root@localhost ~]# netstat -s
Ip:
total packets received
forwarded
incoming packets discarded
incoming packets delivered
requests sent out
dropped because of missing route
Icmp:
ICMP messages received
input ICMP message failed.
ICMP input histogram:
destination unreachable:
echo requests:
echo replies:
ICMP messages sent
ICMP messages failed
ICMP output histogram:
destination unreachable:
echo request:
echo replies:
IcmpMsg:
InType0:
InType3:
InType8:
OutType0:
OutType3:
OutType8:
Tcp:
active connections openings
passive connection openings
failed connection attempts
connection resets received
connections established
segments received
segments send out
segments retransmited
bad segments received.
resets sent
Udp:
packets received
packets to unknown port received.
packet receive errors
packets sent
TcpExt:
invalid SYN cookies received
TCP sockets finished time wait in fast timer
delayed acks sent
Quick ack mode was activated times
packets directly queued to recvmsg prequeue.
packets directly received from backlog
packets directly received from prequeue
packets header predicted
packets header predicted and directly queued to user
acknowledgments not containing data received
predicted acknowledgments
TCP data loss events
timeouts after reno fast retransmit
retransmits in slow start
other TCP timeouts
connections aborted due to timeout
IpExt:
InBcastPkts:
复制代码
说明:
按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web
页之类的数据,那么我们就可以用本选项来查看一下所显示的信息。我们需要仔细查看统计数据的各行,找到
出错的关键字,进而确定问题所在。 实例8:显示监听的套接口 命令:
netstat -l
输出:
复制代码
[root@localhost ~]# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp localhost:smux *:* LISTEN
tcp *:svn *:* LISTEN
tcp *:ssh *:* LISTEN
udp localhost:syslog *:*
udp *:snmp *:*
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
unix [ ACC ] STREAM LISTENING /tmp/ssh-yKnDB15725/agent.
unix [ ACC ] STREAM LISTENING /var/run/audispd_events
[root@localhost ~]#
复制代码 说明: 实例9:显示所有已建立的有效连接 命令:
netstat -n
输出:
复制代码
[root@localhost ~]# netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 192.168.120.204: 10.2.0.68: ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix [ ] DGRAM @/org/kernel/udev/udevd
unix [ ] DGRAM /dev/log
unix [ ] DGRAM
unix [ ] DGRAM
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED
[root@localhost ~]#
复制代码 说明: 实例10:显示关于以太网的统计数据 命令:
netstat -e
输出:
复制代码
[root@localhost ~]# netstat -e
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode
tcp 192.168.120.204:ssh 10.2.0.68: ESTABLISHED root
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix [ ] DGRAM @/org/kernel/udev/udevd
unix [ ] DGRAM /dev/log
unix [ ] DGRAM
unix [ ] DGRAM
unix [ ] STREAM CONNECTED
unix [ ] STREAM CONNECTED
[root@localhost ~]#
复制代码 说明:
用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数
量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些
基本的网络流量) 实例11:显示关于路由表的信息 命令:
netstat -r
输出:
复制代码
[root@localhost ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.120.0 * 255.255.255.0 U eth0
192.168.0.0 192.168.120.1 255.255.0.0 UG eth0
10.0.0.0 192.168.120.1 255.0.0.0 UG eth0
default 192.168.120.240 0.0.0.0 UG eth0
[root@localhost ~]#
复制代码 说明: 实例12:列出所有 tcp 端口 命令:
netstat -at
输出:
复制代码
[root@localhost ~]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp localhost:smux *:* LISTEN
tcp *:svn *:* LISTEN
tcp *:ssh *:* LISTEN
tcp 192.168.120.204:ssh 10.2.0.68: ESTABLISHED
[root@localhost ~]#
复制代码 说明: 实例13:统计机器中网络连接各个状态个数 命令:
netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
输出:
[root@localhost ~]# netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
ESTABLISHED
LISTEN
[root@localhost ~]# 说明: 实例14:把状态全都取出来后使用uniq -c统计后再进行排序 命令:
netstat -nat |awk '{print $6}'|sort|uniq -c
输出:
复制代码
[root@andy ~]# netstat -nat |awk '{print $6}'|sort|uniq -c
CLOSE_WAIT
established)
ESTABLISHED
Foreign
LISTEN
TIME_WAIT
[root@andy ~]# netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
ESTABLISHED
LISTEN
CLOSE_WAIT
TIME_WAIT
Foreign
established)
[root@andy ~]#
复制代码 说明: 实例15:查看连接某服务端口最多的的IP地址 命令:
netstat -nat | grep "192.168.120.20:16067" |awk '{print $5}'|awk -F: '{print $4}'|sort|uniq -c|sort
-nr|head -
输出:
复制代码
[root@andy ~]# netstat -nat | grep "192.168.120.20:16067" |awk '{print $5}'|awk -F:
'{print $4}'|sort|uniq -c|sort -nr|head -
10.2.1.68
192.168.119.13
192.168.119.201
192.168.119.20
192.168.119.10
10.2.1.199
10.2.1.207
192.168.120.20
192.168.120.15
192.168.119.197
192.168.119.11
10.2.1.206
10.2.1.203
10.2.1.189
10.2.1.173
192.168.120.18
192.168.119.19
10.2.2.227
10.2.2.138
10.2.1.208
[root@andy ~]#
复制代码 说明: 实例16:找出程序运行的端口 命令:
netstat -ap | grep ssh
输出:
复制代码
[root@andy ~]# netstat -ap | grep ssh
tcp *:ssh *:* LISTEN /sshd
tcp ::ffff:192.168.120.206:ssh ::ffff:10.2.1.205: ESTABLISHED /
tcp ::ffff:192.168.120.206:ssh ::ffff:10.2.0.68: ESTABLISHED /
tcp ::ffff:192.168.120.206:ssh ::ffff:10.2.2.131: ESTABLISHED /sshd: root@no
unix [ ACC ] STREAM LISTENING / /tmp/ssh-cXIJj20900/agent.
unix [ ] STREAM CONNECTED /sshd: root@no
unix [ ] STREAM CONNECTED /sshd: root@no
[root@andy ~]#
复制代码 说明: 实例17:在 netstat 输出中显示 PID 和进程名称 命令:
netstat -pt
输出:
复制代码
[root@localhost ~]# netstat -pt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 192.168.120.204:ssh 10.2.0.68: ESTABLISHED /
[root@localhost ~]#
复制代码 说明:
netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候
可以很方便的发现特定端口运行的程序。 实例18:找出运行在指定端口的进程 命令:
netstat -anpt | grep ':16064'
输出:
复制代码
[root@andy ~]# netstat -anpt | grep ':16064'
tcp ::: :::* LISTEN /java
tcp ::ffff:192.168.120.20: ::ffff:192.168.119.201: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:192.168.119.20: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:192.168.119.20: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:192.168.119.20: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:10.2.1.68: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:10.2.1.68: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:10.2.1.68: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:10.2.1.68: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:10.2.1.68: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:10.2.1.68: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:10.2.1.68: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:10.2.1.68: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:10.2.1.68: ESTABLISHED /java
tcp ::ffff:192.168.120.20: ::ffff:10.2.1.68: ESTABLISHED /java
[root@andy ~]#
复制代码 说明:
运行在端口16064的进程id为24596,再通过ps命令就可以找到具体的应用程序了。
linux命令学习笔记(56):netstat命令的更多相关文章
- linux命令学习笔记( 2 ) : cd 命令
Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. . 命 ...
- linux命令学习笔记( 7 ) : mv 命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令, 经常用来备份文件或者目录. .命令格式: mv [选项] 源文件或目 ...
- Linux基础学习笔记以及常用命令
1.windows自带命令进入mysql所在磁盘 2.进入mysql安装目录的bin文件 D:\>cd D:\Program Files (x86)\mysql-5.5.25-winx64\ ...
- linux命令学习笔记(62)-curl命令-url下载工具
linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合 传输工具,但按传统,习惯称url为下载工具. 一,curl命令参数,有好多我没有用过,也不知道 ...
- Linux命令学习笔记目录
Linux命令学习笔记目录 最近正在使用,linux,顺便将用到的命令整理了一下. 一. 文件目录操作命令: 0.linux命令学习笔记(0):man 命令 1.linux命令学习笔记(1):ls命令 ...
- linux基础命令学习笔记(二)
linux基础命令学习笔记(二) 1.kill :终止进程 kill pid (唯一标示一个进程) kill -9 强制终止 kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...
- linux命令学习笔记(25):linux文件属性详解
Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组. 最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [root@loc ...
- 【Redis】命令学习笔记——键(key)(20个超全字典版)
安装完redis和redis-desktop-manager后,开始学习命令啦!本篇基于redis 4.0.11版本,从对键(key)开始挖坑! 准备工作,使用db1(默认db0,由于之前练习用db0 ...
- 学习笔记之shell命令
linux shell命令学习笔记:~这里只是对自己一些常用但是不熟悉的的命令进行记录 -------------------------------------------------------- ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
随机推荐
- [c++]对象指针,引用的操作
1.time类保存在"htime.h"中.要求: ⑴ 数据成员包括时(hour).分(minute).秒(second),为私有成员: ⑵ 能给数据成员提供值的成员函数(默认值为0 ...
- C语言基础知识【运算符】
C 运算符1.运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C 语言内置了丰富的运算符,并提供了以下类型的运算符:算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符2.杂项运算符 ↦ ...
- Lumen Repository(仓储)
在 Laravel 5 中使用 Repository 模式实现业务逻辑和数据访问的分离:http://laravelacademy.org/post/3063.html Eloquent: 集合:ht ...
- Android 适配(一)
一.Android适配基础参数 1.常见分辨率(px) oppx 2340x1080 oppR15 2280x1080 oppor11sp 2160*1080 ...
- git介绍和常用指令
Git介绍和常用指令 介绍:Git和SVN一样都是版本控制工具.不同的是Git是分布式的,SVN是集中式的.Git开始用可能感觉难点,等你用习惯了你就会觉得svn是有点恐怖.(如果一个项目有好多人一起 ...
- TP的分页加查询
1.查询显示数据库的内容 控制器里的内容 public function shouye() { $n = M("car"); $arr = $n->select(); $th ...
- 【CodeM初赛B轮】F 期望DP
[CodeM初赛B轮]F 题目大意:有n个景点,m条无向边,经过每条边的时间需要的时间是li,在第i个景点游览花费的时间是ti,游览完第i个景点可以获得的满意度是hi.你的总时间为k,起初你等概率的选 ...
- 【BZOJ3698】XWW的难题 有上下界的最大流
[BZOJ3698]XWW的难题 Description XWW是个影响力很大的人,他有很多的追随者.这些追随者都想要加入XWW教成为XWW的教徒.但是这并不容易,需要通过XWW的考核.XWW给你出了 ...
- Java编码规范之数据对象命名
数据对象分多种,为方便阅读并区分各数据对象的用途,习惯将数据对象分为以下几类,供参考: 持久对象 PO(persistant object)对象关系映射(ORM)概念的产物,基本上对象的成员变量对应了 ...
- PoC简介
无线一键通功能,POC(PTT Over Cellular)也称PTT(Push To Talk)功能.PTT:一键通(Push-to-Talk)功能是一种全新的移动技术,可以快速地进行"一 ...