今天在使用linux的时候,要查看端口号,但是不知道要使用哪一个命令所以就学习了一下,原来是使用netstat,接下来给大家一起来学习。

一、netstat介绍

  1.1、简介

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

  Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。

    如果你想确认系统上的 Web 服务有没有起来,你可以查看80端口有没有打开。以上功能使 netstat 成为网管和系统管理员的必备利器。

  在linux终端中输入netstat:

        

    分析: 从上面可以看出,可以分为两个部分:   

          一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

          另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

            Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

  1.2、常用的参数   

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态 -p 查看进程信息
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。 提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

二、netstat使用实例

  2.1、显示所有的端口(包括监听未监听)

  1) 列出所有端口 netstat -a

  

  当我们加上-n的时候就禁止端口使用别名了,比如上面的mysql它的端口号是3306

  

  2) 列出所有 tcp 端口 netstat -at

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp localhost:mysql 0.0.0.0:* LISTEN
tcp 0.0.0.0:hostmon 0.0.0.0:* LISTEN
tcp 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp udzyh1:domain 0.0.0.0:* LISTEN
tcp 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp localhost:ipp 0.0.0.0:* LISTEN
tcp 0.0.0.0: 0.0.0.0:* LISTEN
tcp udzyh1: 1.0.0.3:nfs SYN_SENT
tcp udzyh1: 1.0.0.3:nfs SYN_SENT
tcp6 [::]:hostmon [::]:* LISTEN
tcp6 [::]:sunrpc [::]:* LISTEN
tcp6 [::]:ssh [::]:* LISTEN
tcp6 ip6-localhost:ipp [::]:* LISTEN
tcp6 [::]: [::]:* LISTEN

看一下我的

    3)列出所有 udp 端口 netstat -au

 Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0.0.0.0:ipp 0.0.0.0:*
udp 0.0.0.0: 0.0.0.0:*
udp udzyh1:domain 0.0.0.0:*
udp localhost:domain 0.0.0.0:*
udp 0.0.0.0:bootps 0.0.0.0:*
udp 0.0.0.0:bootpc 0.0.0.0:*
udp 0.0.0.0: 0.0.0.0:*
udp 0.0.0.0:sunrpc 0.0.0.0:*
udp 0.0.0.0:mdns 0.0.0.0:*
udp 0.0.0.0:hostmon 0.0.0.0:*
udp6 [::]: [::]:*
udp6 [::]:sunrpc [::]:*
udp6 [::]: [::]:*
udp6 [::]:mdns [::]:*
udp6 [::]:hostmon [::]:*

看一下我的

  2.2、列出所有处于监听状态的Sockets

    1)只显示监听端口 netstat -l

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

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

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

  2.3、显示每个协议的统计信息

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

      打印出网络统计数据,包括某个协议下的收发包数量。   

Ip:
Forwarding:
total packets received
with invalid addresses
forwarded
incoming packets discarded
incoming packets delivered
requests sent out
outgoing packets dropped
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 requests:
echo replies:
IcmpMsg:
InType0:
InType3:
InType8:
OutType0:
OutType3:
OutType8:
Tcp:
active connection openings
passive connection openings
failed connection attempts
connection resets received
connections established
segments received
segments sent out
segments retransmitted
bad segments received
resets sent
Udp:
packets received
packets to unknown port received
packet receive errors
packets sent
receive buffer errors
send buffer errors
IgnoredMulti:
UdpLite:
TcpExt:
ICMP packets dropped because they were out-of-window
ICMP packets dropped because socket was locked
TCP sockets finished time wait in fast timer
delayed acks sent
delayed acks further delayed because of locked socket
Quick ack mode was activated times
packets directly queued to recvmsg prequeue
TCPDirectCopyFromPrequeue:
packet headers predicted
acknowledgments not containing data payload received
predicted acknowledgments
congestion windows recovered without slow start after partial ack
TCPTimeouts:
connections aborted due to timeout
TCPRetransFail:
TCPRcvCoalesce:
TCPSpuriousRtxHostQueues:
TCPAutoCorking:
TCPSynRetrans:
TCPOrigDataSent:
TCPKeepAlive:
IpExt:
InNoRoutes:
InMcastPkts:
OutMcastPkts:
InBcastPkts:
OutBcastPkts:
InOctets:
OutOctets:
InMcastOctets:
OutMcastOctets:
InBcastOctets:
OutBcastOctets:
InNoECTPkts:
InECT0Pkts:

详情

      显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su

      使用netstat -st

IcmpMsg:
InType0:
InType3:
InType8:
OutType0:
OutType3:
OutType8:
Tcp:
active connection openings
passive connection openings
failed connection attempts
connection resets received
connections established
segments received
segments sent out
segments retransmitted
bad segments received
resets sent
UdpLite:
TcpExt:
ICMP packets dropped because they were out-of-window
ICMP packets dropped because socket was locked
TCP sockets finished time wait in fast timer
delayed acks sent
delayed acks further delayed because of locked socket
Quick ack mode was activated times
packets directly queued to recvmsg prequeue
TCPDirectCopyFromPrequeue:
packet headers predicted
acknowledgments not containing data payload received
predicted acknowledgments
congestion windows recovered without slow start after partial ack
TCPTimeouts:
connections aborted due to timeout
TCPRetransFail:
TCPRcvCoalesce:
TCPSpuriousRtxHostQueues:
TCPAutoCorking:
TCPSynRetrans:
TCPOrigDataSent:
TCPKeepAlive:
IpExt:
InNoRoutes:
InMcastPkts:
OutMcastPkts:
InBcastPkts:
OutBcastPkts:
InOctets:
OutOctets:
InMcastOctets:
OutMcastOctets:
InBcastOctets:
OutBcastOctets:
InNoECTPkts:
InECT0Pkts:

详细

  2.4、在netstat输出中显示PID和进程名称netstat -p

    netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。

    注意:使用 -p 选项时,netstat 必须运行在 root 权限之下,不然它就不能得到运行在 root 权限下的进程名,而很多服务包括 http 和 ftp 都运行在 root 权限之下。

        相比进程名和进程号而言,查看进程的拥有者会更有用。使用 -ep 选项可以同时查看进程名和用户名。

      

  2.5、找出程序运行的端口(服务)

      netstat -ap|grep -i ssh

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

  

  2.6、显示网络接口列表

    netstat -i

    

  显示详细信息,像是 ifconfig 使用 netstat -ie。输出信息与 ifconfig 输出的信息一样。

  

觉得不错的大佬点个“推荐”哦!

  

    

  

  

  

    

linux命令详解之netstat的更多相关文章

  1. Linux命令详解之—tail命令

    tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...

  2. Linux命令详解之—less命令

    Linux下还有一个与more命令非常类似的命令--less命令,相比于more命令,less命令更加灵活强大一些,今天就给大家介绍下Linux下的less命令. 更多Linux命令详情请看:Linu ...

  3. Linux命令详解之—more命令

    Linux more命令同cat命令一样,多用来查看文件内容,本文就为大家介绍下Linux more命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux的more命令类似 ca ...

  4. 【转】linux命令详解:md5sum命令

    [转]linux命令详解:md5sum命令 转自:http://blog.itpub.net/29320885/viewspace-1710218/ 前言 在网络传输.设备之间转存.复制大文件等时,可 ...

  5. Linux命令详解之—cat命令

    cat命令的功能是连接文件或标准输入并打印,今天就为大家介绍下Linux中的cat命令. 更多Linux命令详情请看:Linux命令速查手册 Linux 的cat命令通常用来显示文件内容,也可以用来将 ...

  6. Linux命令详解之—pwd命令

    Linux的pwd命令也是一个非常常用的命令,本文为大家介绍下Linux中pwd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux pwd命令用于显示工作目录. 执行pwd指 ...

  7. Linux命令详解之–cd命令

    cd命令是linux实际使用当中另一个非常重要的命令,本文就为大家介绍下Linux中cd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux cd命令用于切换当前工作目录至 d ...

  8. Linux命令详解之–ls命令

    今天开始为大家介绍下Linux中常用的命令,首先给大家介绍下Linux中使用频率最高的命令--ls命令. 更多Linux命令详情请看:Linux命令速查手册 linux ls命令用于显示指定工作目录下 ...

  9. (转)linux命令详解之useradd命令使用方法

    linux命令详解之useradd命令使用方法 原文:http://blog.csdn.net/u011537073/article/details/51987121 Linux 系统是一个多用户多任 ...

随机推荐

  1. iOS: 让键盘消失的的4种方法

    转自:http://leopard168.blog.163.com/blog/static/168471844201422121310352/ 在iOS app中,只要用到编辑框(UITextFiel ...

  2. java动态代理的两种方法

    动态代理,有两种情况,第一种是有接口的情况下,你可以选择为jdk自带的动态代理的方式来编写程序,但你想要为一个实在的类编写动态代理的方式的话,这时候就必须选择一些开源的lib包,如cglib包,同时还 ...

  3. codeBlocks编译undefined reference to错误

    是没有把c文件编译进去的原因. 右键项目,选择属性,弹出窗体 然后选择build targets 在最下面有个build target files:中把c文件勾选.点击ok重新编译即可. Code:: ...

  4. 一次执行批量sql的方法

    在javaweb开发中,免不了一次业务操作会设计到几个表之间的添加,获取主键插入子表 1.主表使用单条插入,获取id,自表获取id进行批量插入最后完成操作 SimpleJdbcTemplateDaoI ...

  5. python学习笔记(16)--django的安装

    说明: 1. 直接在cmd输入: pip install Django==1.10.6前提是安装了python,pip并添加了环境变量 2. http://www.lfd.uci.edu/~gohlk ...

  6. 使用Windows防火墙禁止Ping入

    前言: 不知道安全比赛是咋样的,但是肯定是日来日去的,那么故事来了,大牛们肯定会狂ip,刚开始肯定是一个段的狂扫.咋让他不扫到你呢?就是这篇文章了.其实这一切都是ICMP在作祟 windows2003 ...

  7. C#创建资源文件

    资源文件顾名思义就是存放资源的文件.资源文件在程序设计中有着自身独特的优势,他独立于源程序,这样资源文件就可以被多个程序使用.同时在程序设计的时候,有时出于安全或者其他方面因素的考虑,把重要东西存放在 ...

  8. 【Unity笔记】Awake()和Start()的区别

    Awake在MonoBehavior创建后就立刻调用,Start将在MonoBehavior创建后在该帧Update之前,在该Monobehavior.enabled == true的情况下执行. v ...

  9. Activiti 获取定义

    ProcessDefinitionEntity d = (ProcessDefinitionEntity)((RepositoryServiceImpl)repositoryService).getD ...

  10. ramdisk文件系统制作

    1.  确保内核支持ramdisk启动.2.  创建根文件系统(应用busybox或拷贝现有文件系统).3.  利用脚本mkroot.sh创建内核镜像:root.img.gz.4.  uboot通过t ...