关注Linux的系统状态,主要从两个角度出发,一个角度是系统正在运行什么服务(ps命令);另外一个就是有什么连接或服务可用(netstat命令)。netstat还可以显示ps无法显示的、从inetd或xinetd中运行的服务,比如telnet等。

1.功能与说明

netstat 用于显示linux中各种网络相关信息。如网络链接、路由表、接口状态链接、多播成员等等。

2.参数含义介绍

-a (all)显示所有选项,默认不显示LISTEN相关(本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请(LISTENING)的那些连接。)
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

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

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

3.常用实例

3.1  列出所有端口

 netstat -a
[root@zhz jiehun]# netstat -a|more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:webcache *:* LISTEN
tcp 0 0 *:http *:* LISTEN
tcp 0 0 192.168.122.1:domain *:* LISTEN
tcp 0 0 localhost.localdomain:d-s-n *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost.loc:simplifymedia *:* LISTEN

上述显示中,

"Proto"是 Protocol 的简称,它可以是 TCP 或 UDP。

"Recv-Q"和"Send-Q"指的是接收队列和发送队列,这些数字一般都应该是 0,如果不是,则表示软件包正在队列中堆积。这种情况只能在非常短的时间内存在,比如在 KMail 中单击检查邮件按钮时,有如下显示是正常现象:

tcp 0 593 192.168.1.5:34321 venus.euao.com:smtp ESTABLISHED

  如果接收队列持续处于阻塞状态,那么很有可能受到了拒绝式服务的攻击。如果发送队列不能被快速清除,则可能是因为有一个应用程序不能将所要发送的东西传送完。

"Local Address" 指本机的 IP 和端口号。

"Foreign Address"指所要连接的主机名称和服务。

"State"指现在连接的状态。

三种常见的 TCP 状态如下所示:

a) LISTEN 等待接收连接;

b) ESTABLISHED 一个处于活跃状态的连接;

c) TIME_WAIT 一个刚被终止的连接。它只持续 1 至 2 分钟,然后就会变成 LISTEN 状态。

由于 UDP 是无状态的,所以其 State 栏总是空白。

持续获取有用信息

使用"netstat -a"命令,显示结果可能会有数百行。其实,在这些结果中可以忽略所有"Active Unix domain sockets"以后的内容。因为这些内容是本地内部进程之间的通信,而不是网络连接。使用以下命令可以避免显示无用信息:

$ netstat --inet -a

" netstat --inet -a" 命令的显示结果将只有网络连接,包括所有正处在"LISTEN"状态和"ESTABLISHED"状态的。需要特别注意的是,对于普通用户而言,一般不需要使用 telnet 或 SMTP 服务。因此需要将其关闭,以提高系统安全性;并且要重新配置启动文件,以保证它们不会在下次系统启动时自动重新启动。要想持续不断地查看随时都在更改的网络信息,可以使用 netstat 命令的"-c"参数,并且将结果存入文件中:

$ netstat --inet -a -c > netstat.txt

这时,查看 netstat.txt 文件即可检查邮件服务、Web 服务和 telnet 服务等的状态变化。

3.2  列出所有tcp端口

[root@zhz jiehun]# netstat -at|more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:webcache *:* LISTEN
tcp 0 0 *:http *:* LISTEN
tcp 0 0 192.168.122.1:domain *:* LISTEN
tcp 0 0 localhost.localdomain:d-s-n *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost.loc:simplifymedia *:* LISTEN

3.3 列出所有udp端口

 netstat -au
[root@zhz jiehun]# netstat -au|more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:ideafarm-panic *:*
udp 0 0 *:47005 *:*
udp 0 0 localhost.loca:memcache *:*
udp 0 0 *:55276 *:*
udp 0 0 192.168.122.1:domain *:*
udp 0 0 *:bootps *:*
udp 0 0 *:bootpc *:*
udp 0 0 *:sunrpc *:*
udp 0 0 *:ipp *:*
udp 0 0 *:44236 *:*
udp 0 0 *:722 *:*

3.4 只显示正在处于监听状态的端口 netstat -l

[root@zhz jiehun]# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:webcache *:* LISTEN
tcp 0 0 *:http *:* LISTEN
tcp 0 0 192.168.122.1:domain *:* LISTEN
tcp 0 0 localhost.localdomain:d-s-n *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost.loc:simplifymedia *:* LISTEN
tcp 0 0 localhost.localdomain:ipp *:* LISTEN
tcp 0 0 *:44343 *:* LISTEN
tcp 0 0 localhost.localdomain:smtp *:* LISTEN

3.5 只显示监听的tcp端口 netstat -lt

[root@zhz jiehun]# netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:webcache *:* LISTEN
tcp 0 0 *:http *:* LISTEN
tcp 0 0 192.168.122.1:domain *:* LISTEN
tcp 0 0 localhost.localdomain:d-s-n *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost.loc:simplifymedia *:* LISTEN
tcp 0 0 localhost.localdomain:ipp *:* LISTEN
tcp 0 0 *:44343 *:* LISTEN
tcp 0 0 localhost.localdomain:smtp *:* LISTEN

3.6 只显示所有监听udp端口 netstat -lu

[root@zhz jiehun]# netstat -lu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:ideafarm-panic *:*
udp 0 0 *:47005 *:*
udp 0 0 *:47551 *:*
udp 0 0 localhost.loca:memcache *:*
udp 0 0 *:55276 *:*
udp 0 0 192.168.122.1:domain *:*
udp 0 0 *:bootps *:*
udp 0 0 *:bootpc *:*
udp 0 0 *:sunrpc *:*

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

[root@zhz jiehun]# netstat -lx
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 21941 /tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 34096 /tmp/orbit-haozheng/linc-cd2-0-5b33fa1ecf0c9
unix 2 [ ACC ] STREAM LISTENING 22263 @/tmp/gdm-greeter-cBlQsyRF
unix 2 [ ACC ] STREAM LISTENING 32728 /tmp/.ICE-unix/3103
unix 2 [ ACC ] STREAM LISTENING 36866 @/tmp/dbus-AcJrBlWF
unix 2 [ ACC ] STREAM LISTENING 20454 /tmp/mysql.sock

3.8  显示所有端口的统计信息 netstat -s

[root@zhz jiehun]# netstat -s
Ip:
1943780 total packets received
2 forwarded
0 incoming packets discarded
1769532 incoming packets delivered
1121573 requests sent out
132 outgoing packets dropped
45867 dropped because of missing route
Tcp:
64002 active connections openings
7632 passive connection openings
2309 failed connection attempts
498 connection resets received
8 connections established
1018564 segments received
1022700 segments send out
16835 segments retransmited
2 bad segments received.
552 resets sent
Udp:
133420 packets received
7845 packets to unknown port received.
0 packet receive errors
74841 packets sent
0 receive buffer errors
0 send buffer errors

3.9 显示所有tcp(netstat -st)或udp(netstat -su)的统计信息

[root@zhz jiehun]# netstat -su
IcmpMsg:
InType0: 11
InType3: 13506
OutType3: 13679
OutType8: 11
Udp:
133462 packets received
7869 packets to unknown port received.
0 packet receive errors
74888 packets sent
0 receive buffer errors
0 send buffer errors
UdpLite:
IpExt:
InNoRoutes: 991
InMcastPkts: 24308
OutMcastPkts: 2353
InBcastPkts: 630615
OutBcastPkts: 1546
InOctets: 755319900
OutOctets: 296705252
InMcastOctets: 2908748
OutMcastOctets: 93173
InBcastOctets: 99500419
OutBcastOctets: 299980

3.10 显示pid/进程名称 netstat -p   -p可以与其他参数一起使用 比如 显示tcp的进程id信息

[root@zhz jiehun]# netstat -pt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.0.52:44784 123.150.49.20:http FIN_WAIT2 4207/VirtualBox
tcp 0 0 192.168.0.52:46715 ie-in-f125.1e100.net:https ESTABLISHED 4207/VirtualBox
tcp 0 0 192.168.0.52:43415 geotrust-ocsp-mtv.veri:http FIN_WAIT2 4207/VirtualBox

3.11  在 netstat 输出中不显示主机,端口和用户名 (host, port or user)当你不想让主机,端口和用户名显示,使用 netstat -n,将会使用数字代替那些名称,同样可以加速输出,因为不用进行DNS轮询。netstat -ntpl  显示tcp的监听端口 不显示主机端口用户名 用数字代替

[root@zhz jiehun]# netstat -ptnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 971/rpcbind
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1526/nginx: master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1526/nginx: master
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1248/dnsmasq
tcp 0 0 127.0.0.1:8086 0.0.0.0:* LISTEN 1553/python
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1163/sshd
tcp 0 0 127.0.0.1:8087 0.0.0.0:* LISTEN 1553/python
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1140/cupsd
tcp 0 0 0.0.0.0:44343 0.0.0.0:* LISTEN 1151/rpc.statd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 18573/sendmail: acc
tcp 0 0 127.0.0.1:3002 0.0.0.0:* LISTEN 1004/ruby
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 1526/nginx: master

3.12  一秒钟输出一次tcp监听端口信息 netstat -ntplc

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 971/rpcbind
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1526/nginx: master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1526/nginx: master
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1248/dnsmasq
tcp 0 0 127.0.0.1:8086 0.0.0.0:* LISTEN 1553/python
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1163/sshd

3.13  显示路由信息 netstat -r

[root@zhz jiehun]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default vrouter 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.122.0 * 255.255.255.0 U 0 0 0 virb

3.14 显示网络接口列表,检查网卡 netstat -i

[root@zhz jiehun]# 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 1500 0 4943885 0 0 0 901773 0 0 0 BMRU
lo 16436 0 236931 0 0 0 236931 0 0 0 LRU
virbr0 1500 0 0 0 0 0 0 0 0 0 BMU

  在"RX-OK (Received OK)"和"TX-OK (Transmitted OK)"栏应该看到很多数字,而其它地方的数字应该非常小。如果在"RX-ERR"或"TX-ERR"栏看到很多数据,则很有可能是网卡或网线出现了问题。

Linux netstat命令介绍的更多相关文章

  1. linux netstat 命令详解

    linux netstat 命令详解 1.功能与说明 netstat 用于显示linux中各种网络相关信息.如网络链接 路由表  接口状态链接 多播成员等等. 2.参数含义介绍 -a (all)显示所 ...

  2. Linux netstat命令详解

    Linux netstat命令详解 一  简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多 ...

  3. Linux useradd 命令介绍

    Linux useradd 命令介绍 作者: Alan Formy-duval 译者: LCTT Brooke Lau | 2020-01-06 22:58 使用 useradd 命令来添加用户(并且 ...

  4. Linux netstat命令具体解释

    简单介绍 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表.接口状态 (Interface Statistics).masquerade 连接,多播成员 (Multicast Memb ...

  5. [linux]netstat命令详解-显示linux中各种网络相关信息

    1.功能与说明 netstat 用于显示linux中各种网络相关信息.如网络链接 路由表  接口状态链接 多播成员等等. 2.参数含义介绍 -a (all)显示所有选项,默认不显示LISTEN相关-t ...

  6. netstat命令介绍-要用熟

    这篇文章写的不错: http://www.cnblogs.com/CheeseZH/p/5169498.html 关注Linux的系统状态,主要从两个角度出发,一个角度是系统正在运行什么服务(ps命令 ...

  7. (转)Linux netstat命令详解

    简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Member ...

  8. linux netstat 命令简解

    Netstat 简介: Netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告.常见参数-a (all)显示所有选项,默认不显示LISTEN相 ...

  9. linux netstat命令使用详解

    快速应用 netstat -lnp | more 显示监听的端口 简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),mas ...

随机推荐

  1. WebStorm中使用ES6的几种方式

    本篇总结几种在WebStorm下使用ES6的方式. 首先要选择Javascript的版本.依次点击"File","Settings","Languag ...

  2. 在ASP.NET MVC中使用Castle Windsor

    平常用Inject比较多,今天接触到了Castle Windsor.本篇就来体验其在ASP.NET MVC中的应用过程. Visual Studio 2012创建一个ASP.NET MVC 4网站. ...

  3. delphi时间日期函数

    unit DateProcess; interface const DayOfWeekStrings: ..] of String = ('SUNDAY', 'MONDAY', 'TUESDAY', ...

  4. 【Devops】【docker】【CI/CD】docker启动的Jenkins容器 - 系统管理 - 全局工具配置 - 自动安装JDK、Maven、Git、Docker

    本篇适用于jenkins是启动的docker容器,自动安装JDK  Maven  Git   Docker等全局工具 ========================================= ...

  5. jquery 实现table的行列选中效果改进

    行列都可以多选,也可对相应数据进行统计: 行选中效果 列选中效果

  6. ios之CABasicAnimation

    博主:最近iOS开发中用到CoreAnimation的framework来做动画效果,虽然以前也用过,但一直没有系统学习过,今天看到一篇非常详细的博文(虽然是日语,但真的写的很好),在此翻译出来供大家 ...

  7. [Web 前端] CSS篇之2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法

    cp: https://blog.csdn.net/zengyonglan/article/details/53304487 2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法 ? 一.什么时 ...

  8. CATEGORICAL, ORDINAL AND INTERVAL VARIABLES

    WHAT IS THE DIFFERENCE BETWEEN CATEGORICAL, ORDINAL AND INTERVAL VARIABLES? In talking about variabl ...

  9. MySQL global Log

    mysql> show variables like "%general_log%"; +------------------+----------------------- ...

  10. SharePoint 2013 开启访问请求 链接丢失

    关于SharePoint 2013 开启访问请求的做法其实很简单,比如http://www.cnblogs.com/jianyus/archive/2014/06/21/3799386.html 这篇 ...