关注 Linux 的系统状态,主要从两个角度出发,一个角度是系统正在运行什么服务;另外一个就是
有什么连接或服务可用。使用 ps 命令可以查看处于活跃状态的服务;使用 netstat 命令则可以显示所有
可用连接和服务,以及它们的状态。netstat 还可以显示 ps 无法显示的、从 inetd 或 xinetd 中运行的服
务,比如 telnet 等。
用 netstat 查看所有服务
以下命令可以显示所有的服务:
$ netstat -a
激活Internet连接 (服务器和已建立连接的)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp 0 0 192.168.1.5:32851 nest.anthill.echid:ircd ESTABLISHED
tcp 0 0 *:nfs *:* LISTEN
tcp 0 0 *:60966 *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:52694 *:* LISTEN
tcp 0 0 localhost:ipp *:* LISTEN
tcp 0 0 localhost:smtp *:* LISTEN
tcp 0 0 *:56445 *:* LISTEN
udp 0 0 *:ipp *:*
Active Unix domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
Unix 2 [ ACC ] STREAM LISTENING 1065 /tmp/ksocket-carla/klaunchertDCh2b.slave-socket
上述显示中,"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 服务等的状态变化。
检查网卡
使用 netstat 命令的"-i"参数还可以帮助检查网卡。该命令的显示结果如下所示:
Kernel Interface table
eth0 1500 0 86192 0 0 0 60005 0 0 0 BMRU
lo 16436 0 434 0 0 0 434 0 0 0 LRU
在"RX-OK (Received OK)"和"TX-OK (Transmitted OK)"栏应该看到很多数字,而其它地方的
数字应该非常小。如果在"RX-ERR"或"TX-ERR"栏看到很多数据,则很有可能是网卡或网线出现了
问题。
==================================================
可以是用命令:netstat -lnp来察看系统当前监听的端口。其中l选项表示显示正在被监听(listen)的端口;n选项表示直接显示端口数字而不是通过察看/etc/service来转换为端口名;p选项表示列出监听的程序。例如:
netsat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:mysql *:* LISTEN
tcp 0 0 *:netbios-ssn *:* LISTEN
tcp 0 0 *:swat *:* LISTEN
tcp 0 0 *:www *:* LISTEN
tcp 0 0 *:linuxconf *:* LISTEN
tcp 0 0 *:finger *:* LISTEN
tcp 0 0 *:login *:* LISTEN
tcp 0 0 *:shell *:* LISTEN
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
udp 0 0 radiusd.301:netbios-dgm *:*
udp 0 0 radiusd.301h:netbios-ns *:*
udp 0 0 *:netbios-dgm *:*
udp 0 0 *:netbios-ns *:*
udp 0 0 *:ntalk *:*
udp 0 0 *:talk *:*
raw 0 0 *:icmp *:* 7
raw 0 0 *:tcp *:* 7
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
unix 0 [ ACC ] STREAM LISTENING 40250 /tmp/mysql.sock
netstat -ln
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:901 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:98 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:79 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:513 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
udp 0 0 192.168.2.33:138 0.0.0.0:*
udp 0 0 192.168.2.33:137 0.0.0.0:*
udp 0 0 0.0.0.0:138 0.0.0.0:*
udp 0 0 0.0.0.0:137 0.0.0.0:*
udp 0 0 0.0.0.0:518 0.0.0.0:*
udp 0 0 0.0.0.0:517 0.0.0.0:*
raw 0 0 0.0.0.0:1 0.0.0.0:* 7
raw 0 0 0.0.0.0:6 0.0.0.0:* 7
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
unix 0 [ ACC ] STREAM LISTENING 40250 /tmp/mysql.sock
================
Netstat命令举例
请输入下面的命令:
# netstat -tulpn
或者是
# netstat -npl
请看输出结果::
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:6881 0.0.0.0:* LISTEN 6908/python
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 5562/cupsd
tcp 0 0 127.0.0.1:3128 0.0.0.0:* LISTEN 6278/(squid)
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 5854/exim4
udp 0 0 0.0.0.0:32769 0.0.0.0:* 6278/(squid)
udp 0 0 0.0.0.0:3130 0.0.0.0:* 6278/(squid)
udp 0 0 0.0.0.0:68 0.0.0.0:* 4583/dhclient3
udp 0 0 0.0.0.0:6881 0.0.0.0:* 6908/python
请注意,最后一栏给出了关于程序名称和端口的信息。在这里,我们解释一下各参数的含义:
-t : 指明显示TCP端口
-u : 指明显示UDP端口
-l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(
protocol
)与资料的程序)
-p : 显示
进程
标识符和程序名称,每一个套接字/端口都属于一个程序。
-n : 不进行DNS轮询(可以加速操作)
==========================================================
linux netstat 命令详解
功能说明:Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
语 法:netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
补充说明:利用netstat指令可让你得知整个Linux系统的网络情况。
参 数:
-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”参数相同
netstat 的一些常用选项
·netstat –s
本选项能够按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么我们就可以用本选项来查看一下所显示的信息。我们需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
·netstat –e
本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量)。
·netstat –r
本选项可以显示关于路由表的信息,类似于后面所讲使用route print命令时看到的 信息。除了显示有效路由外,还显示当前有效的连接。
·netstat –a
本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请(LISTENING)的那些连接。
·netstat –n
显示所有已建立的有效连接
----------------------------------------------------------------------------------------------------------------------------------------
LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态
分享到:
相关推荐
Linux netstat命令详解 Linux netstat命令是一种非常有用的网络命令,用于显示各种网络相关信息,如网络连接、路由表、接口状态、masquerade连接、多播成员等等。本文将详细介绍netstat命令的使用和输出结果的解释...
Linux中的Netstat命令是一个强大的工具,它用于显示与网络相关的统计数据,包括IP、TCP、UDP和ICMP协议。这些信息对于诊断和优化网络连接、排查问题以及监控系统状态至关重要。以下是对Netstat命令常用选项的详细...
Linux中的`netstat`命令是网络管理员和系统管理员的重要工具,它用于查看和分析网络连接、路由表、接口状态以及多种网络相关信息。这个命令能够帮助我们监控系统的网络活动,找出可能存在的问题,如端口占用、连接...
Linux netstat命令 Linux netstat命令用于显示网络状态。 利用netstat指令可让你得知整个Linux系统的网络情况。 语法netstat [-acCeFghilMnNoprstuvVwx][-A][--ip] 参数说明: -a或–all 显示所有连线中的Socket。 -...
Linux 命令之 netstat Netstat 命令是 Linux 系统中一个非常重要的命令,它可以用来查看 Linux 系统中正在使用的服务和端口情况。下面是 Netstat 命令的详细介绍。 Netstat 命令的基本用法 Netstat 命令的基本...
Linux中的`netstat`命令是网络管理员和开发者常用的工具,用于查看系统的网络状态,包括活动的网络连接、路由表、接口统计以及多播成员等信息。这个命令可以帮助诊断网络问题,监控服务器性能,查找可能的安全隐患。...
在深入探讨Linux中netstat命令的丰富功能与应用之前,我们先简要回顾一下netstat的基本定义:netstat是Linux系统中一个强大的网络诊断工具,主要用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,尤其适用于监测和...
Linux中的`netstat`命令是一个强大的工具,用于显示网络连接、路由表、接口统计等信息。在运维场景中,特别是对于运行Web服务器的系统,了解并发连接数是至关重要的,因为这有助于诊断性能瓶颈和资源利用率。以下是...
Linux 中的 netstat 命令使用教程 netstat 命令是 Linux 系统中一个非常有用的网络命令,用于显示与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。下面是对 netstat 命令的...
Netstat命令是Linux及类Unix系统中用于查看网络状态的强大工具。它可以帮助用户监控和管理网络连接、路由表、接口状态、多播成员等信息。Netstat对于网络管理员来说非常重要,能够帮助他们诊断网络问题并了解系统的...
**Linux网络管理命令——netstat命令详解** 在Linux操作系统中,`netstat`是一个非常重要的网络管理工具,它能够提供关于TCP/IP网络连接、路由表、接口统计等丰富的信息。理解并熟练掌握`netstat`命令,对于系统...
本篇课件“Linux基础课件网络管理命令netstat命令共12页”将深入讲解这个实用的命令,帮助用户更好地理解和掌握Linux网络管理。 `netstat`,全称Network Statistics,它提供了对TCP/IP协议栈的统计信息,包括网络...
"常用Linux命令rpm包"指的是包含了若干常用Linux命令的RPM软件包,这些命令在日常系统管理和故障排查中非常实用。以下是对这些命令的详细解释: 1. **netstat**:网络状态工具,用于查看网络连接、路由表、接口统计...
#### 四、Linux系统下的Netstat命令使用 ##### 1. 基本语法 ``` netstat [-veenNcCF] [] netstat [-vnNcaeol] [] netstat {[-veenNac]-i [] | [-cnNe]-M | -s} [delay] ``` ##### 2. 参数详解 - `-r` 或 `--routed...
### Netstat命令详解 #### 一、概述 `netstat`命令是计算机系统中一个非常重要的工具,主要用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,可以帮助用户检查网络连接的状态以及诊断网络问题。通过`netstat`,...