一份菜单

UNIX / Linux:10个Netstat命令示例

Netstat命令显示各种与网络相关的信息,例如网络连接,路由表,接口统计信息,伪装连接,多播成员身份等,

在本文中,让我们回顾10个实用的unix netstat命令 例子。

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.处于监听状态的列表套接字

使用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                 *:*

使用netstat -lt仅列出正在侦听的TCP端口

# 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端口

# 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端口

# 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 -su

4.使用netstat -p在netstat输出中显示PID和程序名称

netstat -p选项可以与任何其他netstat选项结合使用。这将添加“PID/Program 名称”到netstat输出。这在调试以确定特定端口上正在运行的程序时非常有用。

# 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 -n选项。这将以数字显示,而不是解析主机名,端口名,用户名。

由于netstat不执行任何查找,因此这也加快了输出速度。

# netstat -an

如果你不这样做’如果只想解决这三个项目(端口,主机或用户)中的任何一项,请使用以下命令。

# netsat -a --numeric-ports

# netsat -a --numeric-hosts

# netsat -a --numeric-users

6.连续打印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.查找系统中不支持的地址族

netstat --verbose

最后,您将获得类似的内容。

	netstat: no support for `AF IPX' 上 this system.
	netstat: no support for `AF AX25' 上 this system.
	netstat: no support for `AF X25' 上 this system.
	netstat: no support for `AF NETROM' 上 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.找出程序在哪个端口上运行

# 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  -

找出哪个进程正在使用特定端口:

# 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      链接 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 通过tes:0 (0.0 B)  TX 通过tes:0 (0.0 B)
          Memory:f6ae0000-f6b00000

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 43 评论… 加一 }

  • 注销 2010年3月29日,上午2:31

    我最喜欢的netstat组合是sudo netstat -pnutl

    它需要sudo来查看所有应用程序名称,但是没有它就可以工作,但是显示的信息较少

  • 阿瑟尔 2010年3月29日,上午3:06

    拉梅什

    好东西 。我想尝试的东西,但懒得读那个男人。

  • 康美 2010年4月6日,上午12:21

    很棒的东西,使用netstat可以实现很多事情,即‘netstat -ie’可以代替‘ifconfig ethX’ and ‘netstat -r’ in the place of ‘route -n’.

    Thanx Ramesh。

  • 皮塔努 2010年4月6日,上午1:25

    网络文章的优秀文章,特别是netsatat -pt和netstat -c。
    但是还想知道(如果可能的话)netstat中的timer的含义以及如何解释它的含义..在手册页中它的显示(需要编写)
    再次感谢大家

  • 英秋 2010年5月6日,下午4:32

    netstat非常古老。您应该在Linux上使用/ sbin / ss。

  • 普拉奇 2010年11月9日,晚上11:33

    以下命令的输出是什么:
    netstat -anp

  • 维玛什 2011年1月17日,上午11:05

    netstat -l和netstat -p在AIX上不起作用。不确定其他口味

  • 维玛什 2011年1月17日,上午11:05

    $ netstat -p
    netstat:标志需要参数:p
    用法:netstat [-Aan] [-f address_family] [core unix netinet addr]
    [-D]
    [-cCgimnrsPv] [-f address_family] [-p proto] [core unix netinet addr]
    [-n] [-I接口] [间隔] [核心unix netinet addr]
    $ uname
    艾克斯
    $ netstat -l
    netstat:无法识别的标志:l
    用法:netstat [-Aan] [-f address_family] [core unix netinet addr]
    [-D]
    [-cCgimnrsPv] [-f address_family] [-p proto] [core unix netinet addr]
    [-n] [-I接口] [间隔] [核心unix netinet addr]
    $

  • 里昂 2011年2月7日,下午3:02

    我有时会使用以下命令查看所有活动的连接

    $netstat -atnp | grep ESTA

    或实时

    $ watch -d -n0“netstat -atnp | grep ESTA”

    干杯

  • 阿图尔·卡尚内尔(Atul Khachanel) 2011年5月5日,上午9:14

    关于netstatðŸ™,的很好的解释

  • 普拉哈梅什 2011年6月14日,晚上8:46

    如何在netstat中添加系统时间?像系统时间.. netstat输出..

  • 维比 2011年6月29日,上午6:38

    解释netstat -plten

  • 迪利普·巴普卡(Dilip Bhapkar) 2011年9月13日,上午8:37

    总体不错的网站刷技能!好信息的门铃!!!

  • 阿比吉特 2012年1月3日,下午2:39

    很棒的东西!继续写更多Ramesh ..

  • 阿德里安 2012年1月9日,上午9:20

    对于基本用法,这比阅读手册页要好得多。十分感谢!

  • 穆萨布 2012年3月6日,上午10:07

    亲爱的拉梅什
    我不能向您表达我的感谢和问候,您正在做我的朋友的美好工作。
    唐’无话可说
    多谢您的协助

  • 米娜 2012年4月22日,上午6:00

    太好了。谢谢

  • 文卡塔 2012年4月26日,下午3:13

    关于Netstat的详细说明。

    谢谢

  • 穆罕默德 2012年4月30日,上午3:04

    好东西,谢谢分享

    非常感谢

  • imtiyaj 2012年5月2日,上午4:51

    感谢您的完美解释

  • j 2012年5月2日,上午10:38

    很棒的东西,非常有用。
    我有一个问题,有人可以帮忙吗?

    我们如何找出港口的历史用途。
    例如,我想知道过去24小时内所有连接到特定端口的进程/ pid是什么?

  • Cven 2012年6月28日,上午4:40

    Pentastic,非常有用

  • 2012年7月1日,晚上10:41

    以下是带有-n的netstat命令的输出&-r选项,其中目标字段显示压缩地址(127.1 / 16)。我想知道netstat命令有什么方法或选项可用来显示整个目标IP(127.1.0.0/16)而不是(127.1 / 16)吗?

    #netstat -r -n
    目标网关标志引用使用Mtu接口
    127.0.0.1 127.0.0.1 UH 110 296172 33212 lo0
    127.1 / 16链接#7 UC 2 0– vlan10

    建议….

  • 伊朗娜G 2012年10月27日,上午1:43

    非常翔实的文章。谢谢。

  • 斯里 2012年12月8日,下午2:20

    我有netstat -nr的输出,如下所示
    161.129 / 28 161.131.208.1 UG 0 534925 en1– –
    161.129 / 28是什么意思?请澄清

  • 凯尔 2012年12月30日,晚上9:12

    您好文章,但是您能解释一下netstat的输出吗?
    例如,netstat -tunlp
    有一些端口没有pid和程序名,所以,告诉我为什么
    谢谢〜

  • 毒气的 2013年1月2日,上午10:21

    很棒的Unix东西……Superb……

  • 桑杰·K 2013年1月20日,下午11:14

    netstat输出中的TIME_WAIT是多少?

  • 2013年2月4日,晚上11:26

    非常感谢您为撰写这样的文章所做的努力。

  • 史蒂夫 2013年3月22日,上午2:00

    很好,但是错过了关键点…仅仅知道命令或可视化这些命令的输出是不够的。关键是要能够解释其含义&智力的影响

    问:有关于此的教程吗?

  • VasudevanRao 2013年4月8日,晚上11:44

    你好

    精彩绝妙的Linux-Unix示例。

    瓦苏饶

  • 马约尔 2013年4月19日,上午6:09

    我在名为dir1的目录中有数千个压缩的tarfiles(ab.tar.gz,km.tar.gz等)。现在,我想在压缩的tar文件中查找所有文件(以及路径),其中特定的话说‘mayur’ is existing.

    我们应该使用哪个命令!

  • 阿什什 2013年6月16日,下午6:15

    @Mayur

    You can just zgrep 马约尔 /path

  • ish 2013年8月18日,晚上10:50

    很好的东西…….Thank u..

  • 黄昏科西嘉 2013年12月6日,上午6:22

    有趣的故事,但是在Windows中,某些隐藏的东西可能超出了netstat的作用。
    Linux的情况如何。

  • 香丹 2014年1月26日,上午9:28

    我使用netstat检查python脚本是否已完全停止,检查端口是否正在侦听并获取流量,我需要在启动脚本之前确保流量为零。如果没有,我将无法正常启动。
    netatat -l | grep 1000 | wc -l
    1000是端口,而wc -l计算流量。

  • 匿名 2014年6月25日,上午3:33

    上帝保佑你拉梅什

  • 任何 2014年7月3日,晚上11:50

    netstat -tunap | grep vsftpd

    要么

    netstat -tunap | grep端口

  • 拉鲁 2015年7月30日,上午4:45

    关于netstat的很棒的文章。非常感谢

  • 里卡多·阿尔塔雷斯(Ricardo Altares) 2016年5月19日,下午4:49

    很棒且有用的提示

  • 米纳 2017年3月15日,上午7:30

    大家好,
    如何在Linux盒中检查数据包丢失?

  • 西瓦 2017年5月9日,上午8:57

    有一个问题在这里!

    如何在Linux和AIX中使用端口号检查进程ID?

    cat / proc / sys / kernel / threads-max这个文件有什么需要,如果我更改该值,是否需要重新启动才能反映该作业?

  • Madhavi ala 2017年7月28日,上午11:49

    Netstat命令的优秀教程

发表评论