关注 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:没有任何连接状态

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
使用netstat -at列出所有tcp端口
# 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
使用netstat -au列出所有UDP端口
# 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列出监听中的ports
# 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                 *:*
使用netstat -lt列出监听中的TCP ports
# 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
使用netstat -lu列出监听中的UDP ports
# 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                  *:*
使用netstat -lx列出监听中的UNIX ports
# 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 -s列出所有使用中的端口【协议】详情
# netstat -s
Ip:
   11150 total packets received
   1 with invalid addresses
   0 forwarded
   0 incoming packets discarded
   11149 incoming packets delivered
   11635 requests sent out
Icmp:
   0 ICMP messages received
   0 input ICMP message failed.
Tcp:
   582 active connections openings
   2 failed connection attempts
   25 connection resets received
Udp:
   1183 packets received
   4 packets to unknown port received.
.....
使用 netstat -st / -su列出所有TCP/ UDP的端口详情
# netstat -st

# netstat -su4.  使用netstat -p,在输出中显示PID和程序名

netstat -p 可以和其他netstat 选项组合使用. 它将在netstat输出中显示 “PID/Program Name” . 对于在调试中需要确认哪个程序使用特定的端口,这将非常有用。
# netstat -pt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        1      0 ramesh-laptop.loc:47212 192.168.185.75:www        CLOSE_WAIT  2109/firefox
tcp        0      0 ramesh-laptop.loc:52750 lax:www ESTABLISHED 2109/firefox

5. 在netstat输出中不显示主机名、端口号和用户名
当你不想在netstat输出中不显示主机名、端口号和用户名时,你可以使用netstat -n 选项. 它将显示一个numbers来代替主机名、端口和用户名.当然他也会加快输出信息。
# netstat -an

如果你只是不想显示主机名、端口号和用户名之间的一个,你可以使用如下命令:
# netsat -a --numeric-ports

# netsat -a --numeric-hosts

# netsat -a --numeric-users6. 周期性输出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
^C7. 找出你的系统所不支持的协议族(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.8. 使用netstat -r显示核心路由信息#netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     *               255.255.255.0   U         0 0          0 eth2
link-local      *               255.255.0.0     U         0 0          0 eth2
default         192.168.1.1     0.0.0.0         UG        0 0          0 eth2

注意:
使用netstat -rn 以数字格式显示路由信息而不显示主机名
9. 找出程序运行使用的哪个
Port# netstat -ap | grep ssh
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
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  -

Find out which process is using a particular port:
# netstat -an | grep ':80'10.
显示网络接口列表
# 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         0      0      0 0             0      0      0      0 BMU
eth2       1500 0     26196      0      0 0         26883      6      0      0 BMRU
lo        16436 0         4      0      0 0             4      0      0      0 LRU

使用netstat -ie显示某个接口的扩展信息(类似于ifconfig):
# netstat -ie
Kernel Interface table
eth0      Link encap:Ethernet  HWaddr 00:10:40:11:11:11
         UP BROADCAST MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
         Memory:f6ae0000-f6b00000

转载于:https://blog.51cto.com/misliang/1379760

linux的Netstat命令详解相关推荐

  1. 【linux】循序渐进学运维-基础篇-netstat命令详解

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-基础篇的第62篇文章 文章目录 前言 一. netstat命令详解 作用 1. 常用参数 2. 命令使用 1) 参数作用详解 2) 网络连接状 ...

  2. linux中jstack命令详解,Linux jstack命令详解

    jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息. 如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack ...

  3. linux中mkdir命令含义,Linux中mkdir命令详解

    Linux中mkdir命令详解 linux mkdir用来创建目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1. 新建一个文件夹 one 2. 新建三个 ...

  4. Linux中iptraf命令详解(IP局域网监控工具)

    2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03   作者:佚名    ...

  5. linux ln(link) 命令详解

    linux ln(link) 命令详解 功能说明:连接文件或目录. 语 法:ln [-bdfinsv][-S <字尾备份字符串>][-V <备份方式>][--help][--v ...

  6. [老男孩笔记系列]-之linux定时任务crontab命令详解

    linux定时任务crontab命令详解 1.1指令语法 crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } 1.2指令说明 通 ...

  7. linux rm(remove) 命令详解

    linux rm(remove) 命令详解 功能说明:删除文件或目录. 语 法:rm [-dfirv][--help][--version][文件或目录...] 补充说明:执行rm指令可删除文件或目录 ...

  8. linux下dd命令详解

    linux下dd命令详解    名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果 ...

  9. linux性能测试命令h,Linux性能测试 pmap命令详解

    Linux性能测试 pmap命令详解 这里有新鲜出炉的Linux常用命令,程序狗速度看过来! Linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户 ...

最新文章

  1. OpenCV中的立体图像创建深度图
  2. PyQt5 技术篇-透明窗口设置方法,窗口透明度的设置
  3. VTK:Utilities之CameraModifiedEvent
  4. 考试用计算机反思800字,考试反思作文800字
  5. Java日历的getMinimalDaysInFirstWeek()方法和示例
  6. oracle重置sys密码
  7. 转:金牌网管师初级网络实验手册
  8. 51CTO首页改版上线 欢迎大家拍砖!
  9. Bootstrap固定导航条
  10. FMS Dev Guide学习笔记(SharedBall)
  11. cocostudio 在VS模拟器中加载资源显示混乱问题
  12. linux压缩文件命令_Linux基础篇(二)--Linux常用命令
  13. centos7 Samba服务安装和配置
  14. dos盘启动计算机,u盘制作dos启动盘方法
  15. 苹果CMSV10红色自适应网站模板
  16. mcgs rtu方式通讯两台施耐德ATV312变频器示例 ,通讯实现触摸屏控制监控变频器,中间不需要plc
  17. 法向量变换矩阵的推导
  18. 微信认证小程序如何绑定微信支付商户平台
  19. SAR信号处理之窗函数8——布莱克曼(Blackman)窗
  20. 戴尔台式计算机键盘,dell键盘失灵怎么解决【图文教程】

热门文章

  1. 宝塔邮局邮箱设置成功后能发送不能接收问题处理
  2. oracle之汉字转拼音
  3. 令我难忘的DB2数据库之路
  4. 最简单的方式获取ELMo得到的词向量
  5. 使用VC++通过QQ邮箱发邮件
  6. 手工雕刻图纸_手工玉石雕刻图样大全
  7. Bluedroid协议栈BTU线程处理HCI数据流程分析
  8. utf8ascii编码
  9. Sth about Gospel||Soul Rock||Punk||RnB||Hip-Hop
  10. 系统配置:CentOS8时间同步