netstat命令详解

netstat命令详解


在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

    Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

    一般用netstat -antp来显示所有连接的端口并用数字表示。
   netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。使用时如果不带参数,netstat显示活动的 TCP 连接。

格式
该命令的一般格式为 :
netstat [-a][-e][-n][-o][-p Protocol][-r][-s][Interval]
命令中各选项的含义如下:

-a 显示所有socket,包括正在监听的。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式“netstat -i”。
-n 以网络IP地址代替名称,显示出网络连接情形。
-r 显示核心路由表,格式同“route -e”。
-t 显示TCP协议的连接情况
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。

常用选项
netstat -s
——本选项能够按照各个协议分别显示其统计数据。如果你的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么你就可以用本选项来查看一下所显示的信息。你需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
netstat -e
——本选项用于显示关于以太网的统计数据,它列出的项目包括传送数据报的总字节数、错误数、删除数,包括发送和接收量(如发送和接收的字节数、数据包数),或有广播的数量。可以用来统计一些基本的网络流量。
netstat -r
——本选项可以显示关于路由表的信息,类似于后面所讲使用route print命令时看到的信息。除了显示有效路由外,还显示当前有效的连接。
netstat -a
——本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。
netstat -n
——显示所有已建立的有效连接。

常见状态
即连接状态。在原模式中没有状态,在用户数据报协议中也经常没有状态,于是状态列可以空出来。若有状态,通常取值为:
LISTEN
侦听来自远方的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
没有任何连接状态
 

实用命令实例
(1)列出所有端口 (包括监听和未监听的)

  列出所有端口 netstat -a

# netstat -a | more

 Active Internet connections (servers and established)

 Proto Recv-Q Send-Q Local Address           Foreign Address         State

 tcp        0      0 localhost:30037         *:*                     LISTEN

 udp        0      0 *:bootpc                *:*

 

Active UNIX domain sockets (servers and established)

 Proto RefCnt Flags       Type       State         I-Node   Path

 unix  2      [ ACC ]     STREAM     LISTENING     6135     /tmp/.X11-unix/X0

 unix  2      [ ACC ]     STREAM     LISTENING     5140     /var/run/acpid.socket

  列出所有 tcp 端口 netstat -at

# netstat -at

 Active Internet connections (servers and established)

 Proto Recv-Q Send-Q Local Address           Foreign Address         State

 tcp        0      0 localhost:30037         *:*                     LISTEN

 tcp        0      0 localhost:ipp           *:*                     LISTEN

 tcp        0      0 *:smtp                  *:*                     LISTEN

 tcp6       0      0 localhost:ipp           [::]:*                  LISTEN

  列出所有 udp 端口 netstat -au

# netstat -au

 Active Internet connections (servers and established)

 Proto Recv-Q Send-Q Local Address           Foreign Address         State

 udp        0      0 *:bootpc                *:*

 udp        0      0 *:49119                 *:*

 udp        0      0 *:mdns                  *:*

(2)列出所有处于监听状态的 Sockets

  只显示监听端口 netstat -l

# netstat -l

 Active Internet connections (only servers)

 Proto Recv-Q Send-Q Local Address           Foreign Address         State

 tcp        0      0 localhost:ipp           *:*                     LISTEN

 tcp6       0      0 localhost:ipp           [::]:*                  LISTEN

 udp        0      0 *:49119                 *:*

  只列出所有监听 tcp 端口 netstat -lt

# netstat -lt

 Active Internet connections (only servers)

 Proto Recv-Q Send-Q Local Address           Foreign Address         State

 tcp        0      0 localhost:30037         *:*                     LISTEN

 tcp        0      0 *:smtp                  *:*                     LISTEN

 tcp6       0      0 localhost:ipp           [::]:*                  LISTEN

  只列出所有监听 udp 端口 netstat -lu

# netstat -lu

 Active Internet connections (only servers)

 Proto Recv-Q Send-Q Local Address           Foreign Address         State

 udp        0      0 *:49119                 *:*

 udp        0      0 *:mdns                  *:*

  只列出所有监听 UNIX 端口 netstat -lx

# netstat -lx

 Active UNIX domain sockets (only servers)

 Proto RefCnt Flags       Type       State         I-Node   Path

 unix  2      [ ACC ]     STREAM     LISTENING     6294     private/maildrop

 unix  2      [ ACC ]     STREAM     LISTENING     6203     public/cleanup

 unix  2      [ ACC ]     STREAM     LISTENING     6302     private/ifmail

 unix  2      [ ACC ]     STREAM     LISTENING     6306     private/bsmtp

(3)持续输出 netstat 信息

netstat 将每隔一秒输出网络信息。

# netstat -c

 Active Internet connections (w/o servers)

 Proto Recv-Q Send-Q Local Address           Foreign Address         State

 tcp        0      0 ramesh-laptop.loc:36130 101-101-181-225.ama:www ESTABLISHED

 tcp        1      1 ramesh-laptop.loc:52564 101.11.169.230:www      CLOSING

 tcp        0      0 ramesh-laptop.loc:43758 server-101-101-43-2:www ESTABLISHED

 tcp        1      1 ramesh-laptop.loc:42367 101.101.34.101:www      CLOSING

 ^C

(7)显示系统不支持的地址族 (Address Families)

netstat --verbose

在输出的末尾,会有如下的信息

netstat: no support for `AF IPX' on this system.
netstat: no support for `AF AX25' on this system.
netstat: no support for `AF X25' on this system.
netstat: no support for `AF NETROM' on this system.

(4)找出程序运行的端口

并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。

# netstat -ap | grep ssh

 tcp        1      0 dev-db:ssh           101.174.100.22:39213        CLOSE_WAIT  -

 tcp        1      0 dev-db:ssh           101.174.100.22:57643        CLOSE_WAIT  -

  找出运行在指定端口的进程

# netstat -an | grep ':80'


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值